KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > hivemind > schema > rules > BooleanTranslator


1 // Copyright 2004, 2005 The Apache Software Foundation
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14

15 package org.apache.hivemind.schema.rules;
16
17 import java.util.Map JavaDoc;
18
19 import org.apache.hivemind.ApplicationRuntimeException;
20 import org.apache.hivemind.HiveMind;
21 import org.apache.hivemind.Location;
22 import org.apache.hivemind.internal.Module;
23 import org.apache.hivemind.schema.Translator;
24
25 /**
26  * Translates a string value to a boolean value. "true" and "false" are acceptible values.
27  * Other values are logged as errors and treated as false. Null is simply considered false.
28  *
29  * @author Howard Lewis Ship
30  */

31 public class BooleanTranslator implements Translator
32 {
33     private Boolean JavaDoc _defaultValue = Boolean.FALSE;
34
35     public BooleanTranslator()
36     {
37     }
38
39     /**
40      * Initializes the translator, recognizing key "default" as the
41      * default value for the translator when the input is blank.
42      */

43
44     public BooleanTranslator(String JavaDoc initializer)
45     {
46         Map JavaDoc m = RuleUtils.convertInitializer(initializer);
47
48         String JavaDoc defaultInit = (String JavaDoc) m.get("default");
49
50         if (defaultInit != null)
51             _defaultValue = Boolean.valueOf(defaultInit);
52     }
53
54     public Object JavaDoc translate(
55         Module contributingModule,
56         Class JavaDoc propertyType,
57         String JavaDoc inputValue,
58         Location location)
59     {
60         if (HiveMind.isBlank(inputValue))
61             return _defaultValue;
62
63         if (inputValue.equals("true"))
64             return Boolean.TRUE;
65
66         if (inputValue.equals("false"))
67             return Boolean.FALSE;
68
69         throw new ApplicationRuntimeException(
70             RulesMessages.invalidBooleanValue(inputValue),
71             location,
72             null);
73     }
74
75 }
76
Popular Tags