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 class DitContentRuleHelper
39 {
40
41
42
43
44
45
46
47
48
49 public static void addToRegistries( DitContentRule ditContentRule, List<Throwable> errors, Registries registries )
50 throws LdapException
51 {
52 if ( registries != null )
53 {
54 try
55 {
56 ditContentRule.unlock();
57 AttributeTypeRegistry atRegistry = registries.getAttributeTypeRegistry();
58 ObjectClassRegistry ocRegistry = registries.getObjectClassRegistry();
59
60 if ( ditContentRule.getMayAttributeTypeOids() != null )
61 {
62 ditContentRule.getMayAttributeTypes().clear();
63
64 for ( String oid : ditContentRule.getMayAttributeTypeOids() )
65 {
66 ditContentRule.getMayAttributeTypes().add( atRegistry.lookup( oid ) );
67 }
68 }
69
70 if ( ditContentRule.getMustAttributeTypeOids() != null )
71 {
72 ditContentRule.getMustAttributeTypes().clear();
73
74 for ( String oid : ditContentRule.getMustAttributeTypeOids() )
75 {
76 ditContentRule.getMustAttributeTypes().add( atRegistry.lookup( oid ) );
77 }
78 }
79
80 if ( ditContentRule.getNotAttributeTypeOids() != null )
81 {
82 ditContentRule.getNotAttributeTypes().clear();
83
84 for ( String oid : ditContentRule.getNotAttributeTypeOids() )
85 {
86 ditContentRule.getNotAttributeTypes().add( atRegistry.lookup( oid ) );
87 }
88 }
89
90 if ( ditContentRule.getAuxObjectClassOids() != null )
91 {
92 ditContentRule.getAuxObjectClasses().clear();
93
94 for ( String oid : ditContentRule.getAuxObjectClassOids() )
95 {
96 ditContentRule.getAuxObjectClasses().add( ocRegistry.lookup( oid ) );
97 }
98 }
99 }
100 finally
101 {
102 ditContentRule.lock();
103 }
104 }
105 }
106 }