001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements. See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership. The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License. You may obtain a copy of the License at
009 *
010 * http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing,
013 * software distributed under the License is distributed on an
014 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015 * KIND, either express or implied. See the License for the
016 * specific language governing permissions and limitations
017 * under the License.
018 *
019 */
020 package org.apache.directory.shared.ldap.schema;
021
022 import org.apache.directory.shared.ldap.constants.SchemaConstants;
023
024 /**
025 * The SchemaObject types
026 *
027 * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
028 * @version $Rev$, $Date$
029 */
030 public enum SchemaObjectType
031 {
032 ATTRIBUTE_TYPE(0),
033 COMPARATOR(1),
034 DIT_CONTENT_RULE(2),
035 DIT_STRUCTURE_RULE(3),
036 LDAP_SYNTAX(4),
037 MATCHING_RULE(5),
038 MATCHING_RULE_USE(6),
039 NAME_FORM(7),
040 NORMALIZER(8),
041 OBJECT_CLASS(9),
042 SYNTAX_CHECKER(10);
043
044 /** The inner value*/
045 private int value;
046
047 /**
048 * A private constructor to associated a number to the type
049 */
050 private SchemaObjectType( int value )
051 {
052 this.value = value;
053 }
054
055 /**
056 * @return The numeric value for this type
057 */
058 public int getValue()
059 {
060 return value;
061 }
062
063
064 /**
065 * Get the RDN associated with a schemaObjectType
066 *
067 * @param schemaObjectType The type we want the RDN for
068 * @return The associated RDN
069 */
070 public String getRdn()
071 {
072 String schemaObjectPath = null;
073
074 switch ( this )
075 {
076 case ATTRIBUTE_TYPE :
077 schemaObjectPath = SchemaConstants.ATTRIBUTES_TYPE_PATH;
078 break;
079
080 case COMPARATOR :
081 schemaObjectPath = SchemaConstants.COMPARATORS_PATH;
082 break;
083
084 case DIT_CONTENT_RULE :
085 schemaObjectPath = SchemaConstants.DIT_CONTENT_RULES_PATH;
086 break;
087
088 case DIT_STRUCTURE_RULE :
089 schemaObjectPath = SchemaConstants.DIT_STRUCTURE_RULES_PATH;
090 break;
091
092 case LDAP_SYNTAX :
093 schemaObjectPath = SchemaConstants.SYNTAXES_PATH;
094 break;
095
096 case MATCHING_RULE :
097 schemaObjectPath = SchemaConstants.MATCHING_RULES_PATH;
098 break;
099
100 case MATCHING_RULE_USE :
101 schemaObjectPath = SchemaConstants.MATCHING_RULE_USE_PATH;
102 break;
103
104 case NAME_FORM :
105 schemaObjectPath = SchemaConstants.NAME_FORMS_PATH;
106 break;
107
108 case NORMALIZER :
109 schemaObjectPath = SchemaConstants.NORMALIZERS_PATH;
110 break;
111
112 case OBJECT_CLASS :
113 schemaObjectPath = SchemaConstants.OBJECT_CLASSES_PATH;
114 break;
115
116 case SYNTAX_CHECKER :
117 schemaObjectPath = SchemaConstants.SYNTAX_CHECKERS_PATH;
118 break;
119 }
120
121 return schemaObjectPath;
122 }
123 }