001 /*
002 * CDDL HEADER START
003 *
004 * The contents of this file are subject to the terms of the
005 * Common Development and Distribution License, Version 1.0 only
006 * (the "License"). You may not use this file except in compliance
007 * with the License.
008 *
009 * You can obtain a copy of the license at
010 * trunk/opends/resource/legal-notices/OpenDS.LICENSE
011 * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
012 * See the License for the specific language governing permissions
013 * and limitations under the License.
014 *
015 * When distributing Covered Code, include this CDDL HEADER in each
016 * file and include the License file at
017 * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
018 * add the following below this CDDL HEADER, with the fields enclosed
019 * by brackets "[]" replaced with your own identifying information:
020 * Portions Copyright [yyyy] [name of copyright owner]
021 *
022 * CDDL HEADER END
023 *
024 *
025 * Copyright 2008 Sun Microsystems, Inc.
026 */
027
028 package org.opends.server.authorization.dseecompat;
029
030 /**
031 * This class provides an enumeration of the allowed bind rule booelan types.
032 */
033 public enum EnumBooleanTypes {
034
035 /**
036 * The enumeration type when the bind rule has specified boolean type of
037 * "AND".
038 */
039 AND_BOOLEAN_TYPE ("and"),
040 /**
041 * The enumeration type when the bind rule has specified boolean type of
042 * "OR".
043 */
044 OR_BOOLEAN_TYPE ("or"),
045 /**
046 * The enumeration type when the bind rule has specified boolean type of
047 * "NOT".
048 */
049 NOT_BOOLEAN_TYPE ("not");
050
051 /*
052 * The bind rule boolean type name.
053 */
054 private final String booleanType;
055
056 /**
057 * Creates a new enumeration type for the specified bind rule boolean type.
058 * @param booleanType The boolean type name.
059 */
060 EnumBooleanTypes(String booleanType){
061 this.booleanType = booleanType;
062 }
063
064 /**
065 * Checks to see if the boolean type string is equal to the enumeration type
066 * name.
067 * @param booleanType The type name to check equality for.
068 * @return True if the keyword is equal to the specified name.
069 */
070 public boolean isBindRuleBooleanOperand(String booleanType){
071 return booleanType.equalsIgnoreCase(this.booleanType);
072 }
073
074 /**
075 * Create a new enumeration type for the specified boolean type name.
076 * @param booleanType The name of the enumeration to create.
077 * @return A new enumeration type for the name or null if the name is
078 * not valid.
079 */
080 public static
081 EnumBooleanTypes createBindruleOperand(String booleanType) {
082 if (booleanType != null){
083 for (EnumBooleanTypes t : EnumBooleanTypes.values()) {
084 if (t.isBindRuleBooleanOperand(booleanType)) {
085 return t;
086 }
087 }
088 }
089 return null;
090 }
091 }