View Javadoc
1   /*
2     (C) Copyright IBM Corp. 2006, 2009
3   
4     THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
5     ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
6     CONSTITUTES RECIPIENTS ACCEPTANCE OF THE AGREEMENT.
7   
8     You can obtain a current copy of the Eclipse Public License from
9     http://www.opensource.org/licenses/eclipse-1.0.php
10  
11    @author : Endre Bak, ebak@de.ibm.com
12   * 
13   * Flag       Date        Prog         Description
14   * -------------------------------------------------------------------------------
15   * 1565892    2006-11-05  ebak         Make SBLIM client JSR48 compliant
16   * 2003590    2008-06-30  blaschke-oss Change licensing from CPL to EPL
17   * 2524131    2009-01-21  raman_arora  Upgrade client to JDK 1.5 (Phase 1)
18   * 2823494    2009-08-03  rgummada     Change Boolean constructor to static
19   */
20  
21  package org.metricshub.wbem.sblim.cimclient.internal.uri;
22  
23  /*-
24   * ╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲
25   * WBEM Java Client
26   * ჻჻჻჻჻჻
27   * Copyright 2023 - 2025 MetricsHub
28   * ჻჻჻჻჻჻
29   * Licensed under the Apache License, Version 2.0 (the "License");
30   * you may not use this file except in compliance with the License.
31   * You may obtain a copy of the License at
32   *
33   *      http://www.apache.org/licenses/LICENSE-2.0
34   *
35   * Unless required by applicable law or agreed to in writing, software
36   * distributed under the License is distributed on an "AS IS" BASIS,
37   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
38   * See the License for the specific language governing permissions and
39   * limitations under the License.
40   * ╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱
41   */
42  
43  import org.metricshub.wbem.sblim.cimclient.internal.util.MOF;
44  
45  /**
46   * Class BooleanValue parses and encapsulates a boolean value.
47   */
48  public class BooleanValue extends Value {
49  	private boolean iValue;
50  
51  	/**
52  	 * parse
53  	 *
54  	 * @param pUriStr
55  	 * @param pThrow
56  	 * @return <code>Value</code> or <code>null</code> if <code>pThrow</code> is
57  	 *         <code>false</code> and parsing failed
58  	 * @throws IllegalArgumentException
59  	 *             if parsing failed and <code>pThrow</code> is
60  	 *             <code>true</code>
61  	 */
62  	public static Value parse(URIString pUriStr, boolean pThrow) throws IllegalArgumentException {
63  		URIString uriStr = pUriStr.deepCopy();
64  		boolean value;
65  		if (uriStr.cutStarting("true", true)) value = true; else if (uriStr.cutStarting("false", true)) value =
66  			false; else {
67  			if (pThrow) {
68  				String msg = "Boolean value not found!\n" + uriStr.markPosition();
69  				throw new IllegalArgumentException(msg);
70  			}
71  			return null;
72  		}
73  		// next char must be ',' or nothing
74  		if (uriStr.length() != 0 && uriStr.charAt(0) != ',') return null;
75  		pUriStr.set(uriStr);
76  		return new BooleanValue(value);
77  	}
78  
79  	/**
80  	 * Parses an untyped boolean value.
81  	 *
82  	 * @param pUriStr
83  	 * @return Value
84  	 */
85  	public static Value parse(URIString pUriStr) {
86  		return parse(pUriStr, false);
87  	}
88  
89  	private BooleanValue(boolean pValue) {
90  		this.iValue = pValue;
91  	}
92  
93  	/**
94  	 * getValue
95  	 *
96  	 * @return the <code>boolean</code> value.
97  	 */
98  	public boolean getValue() {
99  		return this.iValue;
100 	}
101 
102 	/**
103 	 * getBoolean
104 	 *
105 	 * @return Boolean
106 	 */
107 	public Boolean getBoolean() {
108 		return Boolean.valueOf(this.iValue);
109 	}
110 
111 	/**
112 	 * @see java.lang.Object#toString()
113 	 */
114 	@Override
115 	public String toString() {
116 		return Boolean.toString(this.iValue);
117 	}
118 
119 	/**
120 	 * @see Value#getTypeInfo()
121 	 */
122 	@Override
123 	public String getTypeInfo() {
124 		return MOF.DT_BOOL;
125 	}
126 }