001/* 002 * JKNIV, utils - Helper utilities for jdk code. 003 * 004 * Copyright (C) 2017, the original author or authors. 005 * 006 * This library is free software; you can redistribute it and/or 007 * modify it under the terms of the GNU Lesser General Public 008 * License as published by the Free Software Foundation; either 009 * version 2.1 of the License. 010 * 011 * This library is distributed in the hope that it will be useful, 012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 014 * Lesser General Public License for more details. 015 * 016 * You should have received a copy of the GNU Lesser General Public 017 * License along with this library; if not, write to the Free Software Foundation, Inc., 018 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 019 */ 020package net.sf.jkniv.asserts; 021 022/** 023 * Assertion enable the programmer to validate arguments, useful for catch error at runtime 024 * when the developer broke a contract. 025 * 026 * <p>For example, if a public method does not allow {@code null} arguments 027 * or must return not null values, asserts can be used to protect against 028 * contract violations or class's invariants, ensuring preconditions and postconditions. 029 * 030 * @author Alisson Gomes 031 * @since 0.6 032 */ 033public interface Assertable 034{ 035 /** 036 * Verify if a set objects assure the assertion. 037 * @param args set object must assure the assertion. 038 * throws Throw a {@code RuntimeException} exception or subclass when the the assertion fails. 039 */ 040 void verify(Object...args); 041 042 /** 043 * 044 * @param e The exception must be throw when arguments the assertion fails. 045 * @param args Arguments to verify against the assertion 046 * throws Throw a specific {@code RuntimeException} exception when the the assertion fails. 047 */ 048 void verify(RuntimeException e, Object...args); 049 050 /** 051 * Verify if a the array assure the assertion. 052 * @param args the array to check the assertion. 053 * throws Throw a {@code RuntimeException} exception or subclass when the the assertion fails. 054 */ 055 void verifyArray(Object[] args); 056 057 /** 058 * 059 * @param e The exception must be throw when arguments the assertion fails. 060 * @param args the array to check the assertion. 061 * throws Throw a specific {@code RuntimeException} exception when the the assertion fails. 062 */ 063 void verifyArray(RuntimeException e, Object[] args); 064 065}