/*
* GeoTools - The Open Source Java GIS Toolkit
* http://geotools.org
*
* (C) 2001-2006 Vivid Solutions
* (C) 2001-2008, Open Source Geospatial Foundation (OSGeo)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*/
package org.geotools.geometry.iso.util;
// TODO SJ: It has to be discussed whether the Implementation uses Asserts or Throwable Exceptions; probably the Exceptions are the better solutions.
/**
* A utility for making programming assertions.
*
* @source $URL$
*/
public class Assert {
/**
* Throws an <code>AssertionFailedException</code> if the given assertion
* is not true.
*
* @param assertion
* a condition that is supposed to be true
* @throws AssertionFailedException
* if the condition is false
*/
public static void isTrue(boolean assertion) {
isTrue(assertion, null);
}
/**
* Throws an <code>AssertionFailedException</code> with the given message
* if the given assertion is not true.
*
* @param assertion
* a condition that is supposed to be true
* @param message
* a description of the assertion
* @throws AssertionFailedException
* if the condition is false
*/
public static void isTrue(boolean assertion, String message) {
if (!assertion) {
if (message == null) {
throw new AssertionFailedException();
} else {
throw new AssertionFailedException(message);
}
}
}
/**
* Throws an <code>AssertionFailedException</code> if the given objects
* are not equal, according to the <code>equals</code> method.
*
* @param expectedValue
* the correct value
* @param actualValue
* the value being checked
* @throws AssertionFailedException
* if the two objects are not equal
*/
public static void equals(Object expectedValue, Object actualValue) {
equals(expectedValue, actualValue, null);
}
/**
* Throws an <code>AssertionFailedException</code> with the given message
* if the given objects are not equal, according to the <code>equals</code>
* method.
*
* @param expectedValue
* the correct value
* @param actualValue
* the value being checked
* @param message
* a description of the assertion
* @throws AssertionFailedException
* if the two objects are not equal
*/
public static void equals(Object expectedValue, Object actualValue,
String message) {
if (!actualValue.equals(expectedValue)) {
throw new AssertionFailedException("Expected " + expectedValue
+ " but encountered " + actualValue
+ (message != null ? ": " + message : ""));
}
}
/**
* Always throws an <code>AssertionFailedException</code>.
*
* @throws AssertionFailedException
* thrown always
*/
public static void shouldNeverReachHere() {
shouldNeverReachHere(null);
}
/**
* Always throws an <code>AssertionFailedException</code> with the given
* message.
*
* @param message
* a description of the assertion
* @throws AssertionFailedException
* thrown always
*/
public static void shouldNeverReachHere(String message) {
throw new AssertionFailedException("Should never reach here"
+ (message != null ? ": " + message : ""));
}
}