1 /*
   2  * CDDL HEADER START
   3  *
   4  * The contents of this file are subject to the terms of the
   5  * Common Development and Distribution License, Version 1.0 only
   6  * (the "License").  You may not use this file except in compliance
   7  * with the License.
   8  *
   9  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
  10  * or http://www.opensolaris.org/os/licensing.
  11  * See the License for the specific language governing permissions
  12  * and limitations under the License.
  13  *
  14  * When distributing Covered Code, include this CDDL HEADER in each
  15  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  16  * If applicable, add the following below this CDDL HEADER, with the
  17  * fields enclosed by brackets "[]" replaced with your own identifying
  18  * information: Portions Copyright [yyyy] [name of copyright owner]
  19  *
  20  * CDDL HEADER END
  21  */
  22 /*
  23  * ident        "%Z%%M% %I%     %E% SMI"
  24  *
  25  * Copyright 2002 Sun Microsystems, Inc.  All rights reserved.
  26  * Use is subject to license terms.
  27  */
  28 
  29 package com.sun.dhcpmgr.data.qualifier;
  30 
  31 /**
  32  * An implementation of the qualifier type that provide a boolean type.
  33  * The symbolic values for true and false can be set in two ways during
  34  * object construction. Either no arguments are given the constructor and the
  35  * Java Boolean.TRUE and Boolean.FALSE are used. Alternatively a pair of
  36  * Strings can be passed to the constructor, the first representing true
  37  * and the second false.
  38  */
  39 public class QualifierBoolean extends QualifierStringEnum {
  40 
  41     /**
  42      * True value.
  43      */
  44     protected String trueValue;
  45 
  46     /**
  47      * False value.
  48      */
  49     protected String falseValue;
  50 
  51     /**
  52      * Contruct a boolean qualifier type using the Java string representations
  53      * of true and false.
  54      */
  55     public QualifierBoolean() {
  56         this(Boolean.TRUE.toString(), Boolean.FALSE.toString());
  57     }
  58 
  59     /**
  60      * Contruct a boolean qualifier using the supplied string representations
  61      * of true and false.
  62      *
  63      * @param trueValue
  64      *   True value.
  65      * @param falseValue
  66      *   False value.
  67      */
  68     public QualifierBoolean(String trueValue, String falseValue) {
  69         super(new String[] {trueValue, falseValue});
  70 
  71         this.trueValue = trueValue;
  72         this.falseValue = falseValue;
  73     }
  74 
  75     /**
  76      * Get the string representing true.
  77      *
  78      * @return
  79      *   True value.
  80      */
  81     public String getTrue() {
  82         return trueValue;
  83     }
  84 
  85     /**
  86      * Get the string representing false.
  87      *
  88      * @return
  89      *   False value.
  90      */
  91     public String getFalse() {
  92         return falseValue;
  93     }
  94 
  95     public Object parseValue(String value) {
  96         if (value == null) {
  97             return null;
  98         }
  99 
 100         value = value.trim();
 101 
 102         if (value.equals(trueValue) || value.equals(falseValue)) {
 103             return new Boolean(value);
 104         } else {
 105             return null;
 106         }
 107     }
 108 
 109     public String formatValue(String value) {
 110         if (value == null || parseValue(value) == null) {
 111             return null;
 112         }
 113 
 114         return value.trim();
 115     }
 116 
 117     public Class getJavaType() {
 118         return Boolean.class;
 119     }
 120 
 121 }