1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 */
18 package org.apache.giraph.conf;
19
20 import org.apache.hadoop.conf.Configuration;
21
22 /**
23 * Boolean configuration option
24 */
25 public class BooleanConfOption extends AbstractConfOption {
26 /** Default value */
27 private final boolean defaultValue;
28
29 /**
30 * Constructor
31 *
32 * @param key configuration key
33 * @param defaultValue default value
34 * @param description configuration description
35 */
36 public BooleanConfOption(String key, boolean defaultValue,
37 String description) {
38 super(key, description);
39 this.defaultValue = defaultValue;
40 }
41
42 /**
43 * Get the default value of this option
44 *
45 * @return default value
46 */
47 public boolean getDefaultValue() {
48 return defaultValue;
49 }
50
51 @Override public boolean isDefaultValue(Configuration conf) {
52 return get(conf) == defaultValue;
53 }
54
55 @Override public String getDefaultValueStr() {
56 return Boolean.toString(defaultValue);
57 }
58
59 @Override public ConfOptionType getType() {
60 return ConfOptionType.BOOLEAN;
61 }
62
63 /**
64 * Lookup value in Configuration
65 *
66 * @param conf Configuration
67 * @return value for key in conf, or defaultValue if not present
68 */
69 public boolean get(Configuration conf) {
70 return conf.getBoolean(getKey(), defaultValue);
71 }
72
73 /**
74 * Check if value is true
75 *
76 * @param conf Configuration
77 * @return true if value is set and true, false otherwise
78 */
79 public boolean isFalse(Configuration conf) {
80 return !get(conf);
81 }
82
83 /**
84 * Check if value is false
85 *
86 * @param conf Configuration
87 * @return true if value is set and true, false otherwise
88 */
89 public boolean isTrue(Configuration conf) {
90 return get(conf);
91 }
92
93 /**
94 * Set value in configuration for this key
95 *
96 * @param conf Configuration
97 * @param value to set
98 */
99 public void set(Configuration conf, boolean value) {
100 conf.setBoolean(getKey(), value);
101 }
102
103 /**
104 * Set value in configuration if it hasn't been set already
105 *
106 * @param conf Configuration
107 * @param value to set
108 */
109 public void setIfUnset(Configuration conf, boolean value) {
110 conf.setBooleanIfUnset(getKey(), value);
111 }
112 }