001    /*
002     * Copyright (c) 2011, Cloudera, Inc. All Rights Reserved.
003     *
004     * Cloudera, Inc. licenses this file to you under the Apache License,
005     * Version 2.0 (the "License"). You may not use this file except in
006     * compliance with the License. You may obtain a copy of the License at
007     *
008     *     http://www.apache.org/licenses/LICENSE-2.0
009     *
010     * This software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
011     * CONDITIONS OF ANY KIND, either express or implied. See the License for
012     * the specific language governing permissions and limitations under the
013     * License.
014     */
015    package com.cloudera.lib.wsrs;
016    
017    import java.text.MessageFormat;
018    
019    public abstract class BooleanParam extends Param<Boolean> {
020    
021      public BooleanParam(String name, String str) {
022        value = parseParam(name, str);
023      }
024    
025      protected Boolean parse(String str) throws Exception {
026        if (str.equalsIgnoreCase("true")) {
027          return true;
028        }
029        if (str.equalsIgnoreCase("false")) {
030          return false;
031        }
032        throw new IllegalArgumentException(MessageFormat.format("Invalid value [{0}], must be a boolean", str));
033      }
034    
035      @Override
036      protected String getDomain() {
037        return "a boolean";
038      }
039    }