KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > mr > api > jms > selector > syntax > MantaBoolean


1 /*
2  * Copyright 2002 by
3  * <a HREF="http://www.coridan.com">Coridan</a>
4  * <a HREF="mailto: support@coridan.com ">support@coridan.com</a>
5  *
6  * The contents of this file are subject to the Mozilla Public License Version
7  * 1.1 (the "License"); you may not use this file except in compliance with the
8  * License. You may obtain a copy of the License at
9  * http://www.mozilla.org/MPL/
10  *
11  * Software distributed under the License is distributed on an "AS IS" basis,
12  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13  * for the specific language governing rights and limitations under the
14  * License.
15  *
16  * The Original Code is "MantaRay" (TM).
17  *
18  * The Initial Developer of the Original Code is Coridan.
19  * Portions created by the Initial Developer are Copyright (C) 2006
20  * Coridan Inc. All Rights Reserved.
21  *
22  * Contributor(s): all the names of the contributors are added in the source
23  * code where applicable.
24  *
25  * Alternatively, the contents of this file may be used under the terms of the
26  * LGPL license (the "GNU LESSER GENERAL PUBLIC LICENSE"), in which case the
27  * provisions of LGPL are applicable instead of those above. If you wish to
28  * allow use of your version of this file only under the terms of the LGPL
29  * License and not to allow others to use your version of this file under
30  * the MPL, indicate your decision by deleting the provisions above and
31  * replace them with the notice and other provisions required by the LGPL.
32  * If you do not delete the provisions above, a recipient may use your version
33  * of this file under either the MPL or the GNU LESSER GENERAL PUBLIC LICENSE.
34  
35  *
36  * This library is free software; you can redistribute it and/or modify it
37  * under the terms of the MPL as stated above or under the terms of the GNU
38  * Lesser General Public License as published by the Free Software Foundation;
39  * either version 2.1 of the License, or any later version.
40  *
41  * This library is distributed in the hope that it will be useful, but WITHOUT
42  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
43  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
44  * License for more details.
45  */

46 package org.mr.api.jms.selector.syntax;
47
48
49 /**
50  * This class is an adapter for the Boolean type.
51  *
52  */

53 class MantaBoolean extends MantaObject {
54
55     /**
56      * Boolean true
57      */

58     public static final MantaBoolean TRUE = new MantaBoolean(Boolean.TRUE);
59
60     /**
61      * Boolean false
62      */

63     public static final MantaBoolean FALSE = new MantaBoolean(Boolean.FALSE);
64
65     /**
66      * The wrapped value
67      */

68     private Boolean JavaDoc value;
69
70
71     /**
72      * Construct a new MantaBoolean
73      *
74      * @param value the boolean value
75      */

76     public MantaBoolean(final Boolean JavaDoc value) {
77         this.value = value;
78     }//MantaBoolean
79

80
81     /**
82      * Returns the value of this, wrapped in a Boolean
83      *
84      * @return the value of this, wrapped in a Boolean
85      */

86     public final Object JavaDoc getObject() {
87         return value;
88     }//getObject
89

90     
91     /**
92      * Returns the value of this
93      *
94      * @return the value of this
95      */

96     public final boolean value() {
97         return value.booleanValue();
98     }//value
99

100
101     /**
102      * Evaluates this AND rhs
103      *
104      * @param rhs the right hand side of the expression. May be null
105      * @return MantaBoolean.TRUE if this and rightHand are true, MantaBoolean.FALSE
106      * if one is false, or null if rightHand is null
107      */

108     public final MantaBoolean and(final MantaBoolean rightHand) {
109         MantaBoolean result = null;
110         if (rightHand != null) {
111             
112             if (value() && rightHand.value()) {
113                 result = MantaBoolean.TRUE;
114             }//if
115
else {
116                 result = MantaBoolean.FALSE;
117             }//else
118
}//if
119
else if (!value()) {
120             result = MantaBoolean.FALSE;
121         }//elseif
122
return result;
123     }//and
124

125     
126     /**
127      * Evaluates this OR rightHand
128      *
129      * @param rightHand the right hand side of the expression. May be null
130      * @return MantaBoolean.TRUE if this is true, otherwise rightHand
131      *
132      */

133     public final MantaBoolean or(final MantaBoolean rightHand) {
134         MantaBoolean result = null;
135         if (value()) {
136             result = MantaBoolean.TRUE;
137         } //if
138
else {
139             result = rightHand;
140         }//else
141
return result;
142     }//or
143

144
145     /**
146      * Evaluates NOT this
147      *
148      * @return MantaBoolean.TRUE if this is false, otherwise MantaBoolean.FALSE
149      */

150     public final MantaBoolean not() {
151         MantaBoolean result = MantaBoolean.TRUE;
152         if (value()) {
153             result = MantaBoolean.FALSE;
154         }//if
155
return result;
156     }//not
157

158     /**
159      * Returns the type of this
160      *
161      * @return {@link Type#BOOLEAN}
162      */

163     public final Type type() {
164         return Type.BOOLEAN;
165     }//type
166
}//MantaBoolean
167
Popular Tags