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 }