|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.directory.server.core.interceptor.BaseInterceptor
org.apache.directory.server.core.schema.SchemaService
An Interceptor
that manages and enforces schemas.
Constructor Summary | |
SchemaService()
Creates a schema service interceptor. |
Method Summary | |
void |
add(NextInterceptor next,
LdapDN normName,
javax.naming.directory.Attributes attrs)
Check that all the attributes exist in the schema for this entry. |
static void |
alterObjectClasses(javax.naming.directory.Attribute objectClassAttr,
ObjectClassRegistry registry)
Given the objectClasses for an entry, this method adds missing ancestors in the hierarchy except for top which it removes. |
void |
destroy()
Destroy the Schema Service |
void |
init(DirectoryServiceConfiguration factoryCfg,
InterceptorConfiguration cfg)
Initialize the Schema Service |
boolean |
isBinary(java.lang.String id)
Check if an attribute stores binary values. |
javax.naming.NamingEnumeration |
list(NextInterceptor nextInterceptor,
LdapDN base)
Filters Partition#list(org.apache.directory.shared.ldap.name.LdapDN) call. |
javax.naming.directory.Attributes |
lookup(NextInterceptor nextInterceptor,
LdapDN name)
Filters Partition#lookup(org.apache.directory.shared.ldap.name.LdapDN) call. |
javax.naming.directory.Attributes |
lookup(NextInterceptor nextInterceptor,
LdapDN name,
java.lang.String[] attrIds)
Filters Partition#lookup(org.apache.directory.shared.ldap.name.LdapDN,String[]) call. |
void |
modify(NextInterceptor next,
LdapDN name,
int modOp,
javax.naming.directory.Attributes mods)
Check that the modify operations are allowed, and the conform to the schema. |
void |
modify(NextInterceptor next,
LdapDN name,
javax.naming.directory.ModificationItem[] mods)
Filters Partition#modify(org.apache.directory.shared.ldap.name.LdapDN,javax.naming.directory.ModificationItem[]) call. |
javax.naming.NamingEnumeration |
search(NextInterceptor nextInterceptor,
LdapDN base,
java.util.Map env,
ExprNode filter,
javax.naming.directory.SearchControls searchCtls)
Filters Partition#search(org.apache.directory.shared.ldap.name.LdapDN,java.util.Map,org.apache.directory.shared.ldap.filter.ExprNode,javax.naming.directory.SearchControls) call. |
Methods inherited from class org.apache.directory.server.core.interceptor.BaseInterceptor |
addContextPartition, bind, compare, delete, getContext, getMatchedName, getPrincipal, getRootDSE, getSuffix, hasEntry, isSuffix, listSuffixes, modifyRn, move, move, removeContextPartition, unbind |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public SchemaService()
Method Detail |
public void init(DirectoryServiceConfiguration factoryCfg, InterceptorConfiguration cfg) throws javax.naming.NamingException
init
in interface Interceptor
init
in class BaseInterceptor
factoryCfg
- cfg
-
javax.naming.NamingException
public boolean isBinary(java.lang.String id)
public void destroy()
destroy
in interface Interceptor
destroy
in class BaseInterceptor
public javax.naming.NamingEnumeration list(NextInterceptor nextInterceptor, LdapDN base) throws javax.naming.NamingException
Interceptor
Partition#list(org.apache.directory.shared.ldap.name.LdapDN)
call.
list
in interface Interceptor
list
in class BaseInterceptor
javax.naming.NamingException
public javax.naming.NamingEnumeration search(NextInterceptor nextInterceptor, LdapDN base, java.util.Map env, ExprNode filter, javax.naming.directory.SearchControls searchCtls) throws javax.naming.NamingException
Interceptor
Partition#search(org.apache.directory.shared.ldap.name.LdapDN,java.util.Map,org.apache.directory.shared.ldap.filter.ExprNode,javax.naming.directory.SearchControls)
call.
search
in interface Interceptor
search
in class BaseInterceptor
javax.naming.NamingException
public javax.naming.directory.Attributes lookup(NextInterceptor nextInterceptor, LdapDN name) throws javax.naming.NamingException
Interceptor
Partition#lookup(org.apache.directory.shared.ldap.name.LdapDN)
call.
lookup
in interface Interceptor
lookup
in class BaseInterceptor
javax.naming.NamingException
public javax.naming.directory.Attributes lookup(NextInterceptor nextInterceptor, LdapDN name, java.lang.String[] attrIds) throws javax.naming.NamingException
Interceptor
Partition#lookup(org.apache.directory.shared.ldap.name.LdapDN,String[])
call.
lookup
in interface Interceptor
lookup
in class BaseInterceptor
javax.naming.NamingException
public static void alterObjectClasses(javax.naming.directory.Attribute objectClassAttr, ObjectClassRegistry registry) throws javax.naming.NamingException
objectClassAttr
- the objectClass attribute to modify
javax.naming.NamingException
- if there are problemspublic void modify(NextInterceptor next, LdapDN name, int modOp, javax.naming.directory.Attributes mods) throws javax.naming.NamingException
modify
in interface Interceptor
modify
in class BaseInterceptor
next
- The next interceptor to call when we are done with the local operationname
- The DN on which the modification is being donemodOp
- The modification. One of :
DirContext.ADD_ATTRIBUTE
DirContext.REMOVE_ATTRIBUTE
DirContext.REPLACE_ATTRIBUTEmods
- The modifications to check. Each operation is atomic, and should
be applied to a copy of the entry, in order to check that the schema is not
violated at the end. For instance, we can't delete an attribute that does
not exist and add it later. The opposite is legal.
javax.naming.NamingException
- The generic exception we get if an illegal operation occurs
LdapNameNotFoundException
- If we don't find the entry, then this exception is thrown.
LdapInvalidAttributeIdentifierException
- The modified attribute is not known
by the schema, or the Entry is not extensible.
LdapNoSuchAttributeException
- The modified Attribute does not exist in the
current entry or is not added by a previous modification operation.
LdapSchemaViolationException
- Another schema violation occured.public void modify(NextInterceptor next, LdapDN name, javax.naming.directory.ModificationItem[] mods) throws javax.naming.NamingException
Interceptor
Partition#modify(org.apache.directory.shared.ldap.name.LdapDN,javax.naming.directory.ModificationItem[])
call.
modify
in interface Interceptor
modify
in class BaseInterceptor
javax.naming.NamingException
public void add(NextInterceptor next, LdapDN normName, javax.naming.directory.Attributes attrs) throws javax.naming.NamingException
add
in interface Interceptor
add
in class BaseInterceptor
javax.naming.NamingException
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |