1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.directory.server.core.schema;
21
22
23 import javax.naming.NamingException;
24
25 import org.apache.directory.server.schema.registries.Registries;
26 import org.apache.directory.shared.ldap.schema.AbstractSchemaObject;
27 import org.apache.directory.shared.ldap.schema.DITStructureRule;
28 import org.apache.directory.shared.ldap.schema.MutableSchemaObject;
29 import org.apache.directory.shared.ldap.schema.NameForm;
30
31
32
33
34
35
36
37
38
39 public class DitStructureRuleImpl extends AbstractSchemaObject implements DITStructureRule, MutableSchemaObject
40 {
41 private static final long serialVersionUID = 1L;
42 private final Integer[] EMPTY_INT_ARRAY = new Integer[0];
43 private final DITStructureRule[] EMPTY_DSR_ARRAY = new DITStructureRule[0];
44
45 private final Registries registries;
46 private String nameFormOid;
47 private Integer[] superClassRuleIds;
48 private DITStructureRule[] superClasses;
49
50
51 public DitStructureRuleImpl( String nameFormOid, Integer ruleId, Registries registries )
52 {
53 super( nameFormOid + "." + ruleId.toString() );
54 this.nameFormOid = nameFormOid;
55 this.registries = registries;
56 }
57
58
59
60
61
62 public NameForm getNameForm() throws NamingException
63 {
64 return registries.getNameFormRegistry().lookup( nameFormOid );
65 }
66
67
68
69
70
71 public DITStructureRule[] getSuperClasses() throws NamingException
72 {
73 if ( this.superClassRuleIds == null )
74 {
75 return EMPTY_DSR_ARRAY;
76 }
77
78 for ( int ii = 0; ii < superClassRuleIds.length; ii++ )
79 {
80 superClasses[ii] = registries.getDitStructureRuleRegistry().lookup( superClassRuleIds[ii] );
81 }
82
83 return superClasses;
84 }
85
86
87 public void setSuperClassRuleIds( Integer[] superClassRuleIds )
88 {
89 if ( superClassRuleIds == null )
90 {
91 this.superClassRuleIds = EMPTY_INT_ARRAY;
92 this.superClasses = EMPTY_DSR_ARRAY;
93 }
94 else
95 {
96 this.superClassRuleIds = superClassRuleIds;
97 this.superClasses = new DITStructureRule[superClassRuleIds.length];
98 }
99 }
100
101
102 public void setObsolete( boolean obsolete )
103 {
104 super.setObsolete( obsolete );
105 }
106
107
108 public void setNames( String[] names )
109 {
110 super.setNames( names );
111 }
112
113
114 public void setSchema( String schema )
115 {
116 super.setSchema( schema );
117 }
118
119
120 public void setDescription( String description )
121 {
122 super.setDescription( description );
123 }
124
125
126 public Integer getRuleId()
127 {
128 return null;
129 }
130 }