1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.directory.api.ldap.model.schema.registries.helper;
21
22
23 import java.util.List;
24
25 import org.apache.directory.api.ldap.model.exception.LdapException;
26 import org.apache.directory.api.ldap.model.schema.DitContentRule;
27 import org.apache.directory.api.ldap.model.schema.registries.AttributeTypeRegistry;
28 import org.apache.directory.api.ldap.model.schema.registries.ObjectClassRegistry;
29 import org.apache.directory.api.ldap.model.schema.registries.Registries;
30
31
32
33
34
35
36
37
38 public final class DitContentRuleHelper
39 {
40 private DitContentRuleHelper()
41 {
42 }
43
44
45
46
47
48
49
50
51
52
53
54 public static void addToRegistries( DitContentRule ditContentRule, List<Throwable> errors, Registries registries )
55 throws LdapException
56 {
57 if ( registries != null )
58 {
59 try
60 {
61 ditContentRule.unlock();
62 AttributeTypeRegistry atRegistry = registries.getAttributeTypeRegistry();
63 ObjectClassRegistry ocRegistry = registries.getObjectClassRegistry();
64
65 if ( ditContentRule.getMayAttributeTypeOids() != null )
66 {
67 ditContentRule.getMayAttributeTypes().clear();
68
69 for ( String oid : ditContentRule.getMayAttributeTypeOids() )
70 {
71 ditContentRule.getMayAttributeTypes().add( atRegistry.lookup( oid ) );
72 }
73 }
74
75 if ( ditContentRule.getMustAttributeTypeOids() != null )
76 {
77 ditContentRule.getMustAttributeTypes().clear();
78
79 for ( String oid : ditContentRule.getMustAttributeTypeOids() )
80 {
81 ditContentRule.getMustAttributeTypes().add( atRegistry.lookup( oid ) );
82 }
83 }
84
85 if ( ditContentRule.getNotAttributeTypeOids() != null )
86 {
87 ditContentRule.getNotAttributeTypes().clear();
88
89 for ( String oid : ditContentRule.getNotAttributeTypeOids() )
90 {
91 ditContentRule.getNotAttributeTypes().add( atRegistry.lookup( oid ) );
92 }
93 }
94
95 if ( ditContentRule.getAuxObjectClassOids() != null )
96 {
97 ditContentRule.getAuxObjectClasses().clear();
98
99 for ( String oid : ditContentRule.getAuxObjectClassOids() )
100 {
101 ditContentRule.getAuxObjectClasses().add( ocRegistry.lookup( oid ) );
102 }
103 }
104 }
105 finally
106 {
107 ditContentRule.lock();
108 }
109 }
110 }
111 }