Skip to main content
summaryrefslogtreecommitdiffstats
blob: b3758511547ec8a823fa8221e3c4b6a678941bb4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/*******************************************************************************
 * Copyright (c) 2003, 2004 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors:
 * IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.wst.common.internal.emf.utilities;

import org.eclipse.jem.util.logger.proxy.Logger;



/**
 * <code>Assert</code> is useful for for embedding runtime sanity checks in code. The predicate
 * methods all test a condition and throw some type of unchecked exception if the condition does not
 * hold.
 * <p>
 * Assertion failure exceptions, like most runtime exceptions, are thrown when something is
 * misbehaving. Assertion failures are invariably unspecified behavior; consequently, clients should
 * never rely on these being thrown (and certainly should not being catching them specifically).
 * </p>
 */
// This class was, originally, copied directly from com.ibm.itp.common.
// It was copied to our own package just to minimize minor dependencies
// on other packages and internal APIs.
public final class Assert {
	/* This class is not intended to be instantiated. */

	private Assert() {
	}

	/**
	 * Asserts that an argument is legal. If the given boolean is not <code>true</code>, an
	 * <code>IllegalArgumentException</code> is thrown.
	 * 
	 * @param expression
	 *            the outcode of the check
	 * @return <code>true</code> if the check passes (does not return if the check fails)
	 * @exception IllegalArgumentException
	 *                if the legality test failed
	 */
	public static boolean isLegal(boolean expression) {
		return isLegal(expression, "");//$NON-NLS-1$
	}

	/**
	 * Asserts that an argument is legal. If the given boolean is not <code>true</code>, an
	 * <code>IllegalArgumentException</code> is thrown. The given message is included in that
	 * exception, to aid debugging.
	 * 
	 * @param expression
	 *            the outcode of the check
	 * @param message
	 *            the message to include in the exception
	 * @return <code>true</code> if the check passes (does not return if the check fails)
	 * @exception IllegalArgumentException
	 *                if the legality test failed
	 */
	public static boolean isLegal(boolean expression, String message) {
		if (!expression)
			throw new IllegalArgumentException();
		return expression;
	}

	/**
	 * Asserts that the given object is not <code>null</code>. If this is not the case, some kind
	 * of unchecked exception is thrown.
	 * 
	 * @param object
	 *            the value to test
	 * @exception IllegalArgumentException
	 *                if the object is <code>null</code>
	 */
	public static void isNotNull(Object object) {
		isNotNull(object, "");//$NON-NLS-1$
	}

	/**
	 * Asserts that the given object is not <code>null</code>. If this is not the case, some kind
	 * of unchecked exception is thrown. The given message is included in that exception, to aid
	 * debugging.
	 * 
	 * @param object
	 *            the value to test
	 * @param message
	 *            the message to include in the exception
	 * @exception IllegalArgumentException
	 *                if the object is <code>null</code>
	 */
	public static void isNotNull(Object object, String message) {
		if (object == null) {
			Logger.getLogger().logError("null_argument: " + message);//$NON-NLS-1$
			throw new AssertionFailedException();
		}
	}

	/**
	 * Asserts that the given boolean is <code>true</code>. If this is not the case, some kind of
	 * unchecked exception is thrown.
	 * 
	 * @param expression
	 *            the outcode of the check
	 * @return <code>true</code> if the check passes (does not return if the check fails)
	 */
	public static boolean isTrue(boolean expression) {
		return isTrue(expression, "");//$NON-NLS-1$
	}

	/**
	 * Asserts that the given boolean is <code>true</code>. If this is not the case, some kind of
	 * unchecked exception is thrown. The given message is included in that exception, to aid
	 * debugging.
	 * 
	 * @param expression
	 *            the outcode of the check
	 * @param message
	 *            the message to include in the exception
	 * @return <code>true</code> if the check passes (does not return if the check fails)
	 */
	public static boolean isTrue(boolean expression, String message) {
		if (!expression) {
			Logger.getLogger().logError("assertion failed: " + message);//$NON-NLS-1$
			throw new AssertionFailedException();
		}
		return expression;
	}
}

Back to the top