001
002 package org.apache.directory.shared.ldap.schema;
003
004 import org.apache.directory.shared.ldap.entry.Entry;
005 import org.apache.directory.shared.ldap.exception.LdapException;
006 import org.apache.directory.shared.ldap.schema.parsers.LdapComparatorDescription;
007 import org.apache.directory.shared.ldap.schema.parsers.NormalizerDescription;
008 import org.apache.directory.shared.ldap.schema.parsers.SyntaxCheckerDescription;
009 import org.apache.directory.shared.ldap.schema.registries.Registries;
010 import org.apache.directory.shared.ldap.schema.registries.Schema;
011
012 public interface EntityFactory
013 {
014 /**
015 * Return an instance of the Schema associated to the entry
016 *
017 * @param entry The Schema entry
018 * @return An instance of a Schema
019 * @throws Exception If the instance can't be created
020 */
021 Schema getSchema( Entry entry ) throws Exception;
022
023
024 /**
025 * Construct an AttributeType from an entry representing an AttributeType.
026 *
027 * @param schemaManager The Schema Manager
028 * @param entry The entry containing all the informations to build an AttributeType
029 * @param targetRegistries The registries containing all the enabled SchemaObjects
030 * @param schemaName The schema this SchemaObject will be part of
031 * @return An AttributeType SchemaObject
032 * @throws LdapException If the AttributeType is invalid
033 */
034 AttributeType getAttributeType( SchemaManager schemaManager, Entry entry, Registries targetRegistries, String schemaName ) throws LdapException;
035
036
037 /**
038 * Construct a LdapComparator from a description of a comparator.
039 *
040 * @param schemaManager The Schema Manager
041 * @param comparatorDescription The LdapComparator description object
042 * @param targetRegistries The registries containing all the enabled SchemaObjects
043 * @param schemaName The schema this SchemaObject will be part of
044 * @return A new instance of a LdapComparator
045 * @throws Exception If the creation has failed
046 */
047 LdapComparator<?> getLdapComparator( SchemaManager schemaManager,
048 LdapComparatorDescription comparatorDescription,
049 Registries targetRegistries, String schemaName ) throws Exception;
050
051
052 /**
053 * Retrieve and load a Comparator class from the DIT.
054 *
055 * @param schemaManager The Schema Manager
056 * @param entry The entry containing all the informations to build a LdapComparator
057 * @param targetRegistries The registries containing all the enabled SchemaObjects
058 * @param schemaName The schema this SchemaObject will be part of
059 * @return the loaded Comparator
060 * @throws LdapException if anything fails during loading
061 */
062 LdapComparator<?> getLdapComparator( SchemaManager schemaManager, Entry entry,
063 Registries targetRegistries, String schemaName ) throws Exception;
064
065
066 /**
067 * Construct an MatchingRule from an entry get from the Dit
068 *
069 * @param schemaManager The Schema Manager
070 * @param entry The entry containing all the informations to build a MatchingRule
071 * @param targetRegistries The registries containing all the enabled SchemaObjects
072 * @param schemaName The schema this SchemaObject will be part of
073 * @return A MatchingRule SchemaObject
074 * @throws LdapException If the MatchingRule is invalid
075 */
076 MatchingRule getMatchingRule( SchemaManager schemaManager, Entry entry, Registries targetRegistries, String schemaName ) throws LdapException;
077
078
079 /**
080 * Create a new instance of a Normalizer
081 *
082 * @param schemaManager The Schema Manager
083 * @param normalizerDescription The Normalizer description object
084 * @param targetRegistries The registries containing all the enabled SchemaObjects
085 * @param schemaName The schema this SchemaObject will be part of
086 * @return A new instance of a normalizer
087 * @throws Exception If the creation has failed
088 */
089 Normalizer getNormalizer( SchemaManager schemaManager, NormalizerDescription normalizerDescription,
090 Registries targetRegistries, String schemaName ) throws Exception;
091
092
093 /**
094 * Retrieve and load a Normalizer class from the DIT.
095 *
096 * @param schemaManager The Schema Manager
097 * @param entry The entry containing all the informations to build a Normalizer
098 * @param targetRegistries The registries containing all the enabled SchemaObjects
099 * @param schemaName The schema this SchemaObject will be part of
100 * @return the loaded Normalizer
101 * @throws LdapException if anything fails during loading
102 */
103 Normalizer getNormalizer( SchemaManager schemaManager, Entry entry, Registries targetRegistries, String schemaName )
104 throws Exception;
105
106
107 /**
108 *
109 * @param schemaManager The Schema Manager
110 * @param entry The entry containing all the informations to build an ObjectClass
111 * @param targetRegistries The registries containing all the enabled SchemaObjects
112 * @param schemaName The schema this SchemaObject will be part of
113 * @return
114 * @throws Exception
115 */
116 ObjectClass getObjectClass( SchemaManager schemaManager, Entry entry, Registries targetRegistries, String schemaName ) throws Exception;
117
118
119 /**
120 *
121 * @param schemaManager The Schema Manager
122 * @param entry The entry containing all the informations to build a LdapSyntax
123 * @param targetRegistries The registries containing all the enabled SchemaObjects
124 * @param schemaName The schema this SchemaObject will be part of
125 * @return
126 * @throws LdapException
127 */
128 LdapSyntax getSyntax( SchemaManager schemaManager, Entry entry, Registries targetRegistries, String schemaName ) throws LdapException;
129
130
131 /**
132 * Retrieve and load a syntaxChecker class from the DIT.
133 *
134 * @param schemaManager The Schema Manager
135 * @param entry The entry containing all the informations to build a SyntaxChecker
136 * @param targetRegistries The registries containing all the enabled SchemaObjects
137 * @param schemaName The schema this SchemaObject will be part of
138 * @return the loaded SyntaxChecker
139 * @throws LdapException if anything fails during loading
140 */
141 SyntaxChecker getSyntaxChecker( SchemaManager schemaManager, Entry entry, Registries targetRegistries, String schemaName ) throws Exception;
142
143
144 /**
145 * Create a new instance of a SyntaxChecker
146 *
147 * @param schemaManager The Schema Manager
148 * @param syntaxCheckerDescription The SyntaxChecker description object
149 * @param targetRegistries The registries containing all the enabled SchemaObjects
150 * @param schemaName The schema this SchemaObject will be part of
151 * @return A new instance of a syntaxChecker
152 * @throws Exception If the creation has failed
153 */
154 SyntaxChecker getSyntaxChecker( SchemaManager schemaManager, SyntaxCheckerDescription syntaxCheckerDescription,
155 Registries targetRegistries, String schemaName ) throws Exception;
156 }