@PublicAPI(stability=UNCOMMITTED, mayInstantiate=false, mayExtend=false, mayInvoke=true) public final class Schema extends Object
Constructor and Description |
---|
Schema()
Creates a new schema structure with all elements initialized but empty.
|
Modifier and Type | Method and Description |
---|---|
void |
addExtraAttribute(String name,
Attribute attr)
Add a new extra Attribute for this schema.
|
static void |
compareConcatenatedSchema(Set<String> oldElements,
Set<String> newElements,
AttributeType elementType,
List<Modification> mods)
Compares the provided sets of schema element definitions and
writes any differences found into the given list of
modifications.
|
void |
deregisterAttributeType(AttributeType attributeType)
Deregisters the provided attribute type definition with this
schema.
|
void |
deregisterDITContentRule(DITContentRule ditContentRule)
Deregisters the provided DIT content rule definition with this
schema.
|
void |
deregisterDITStructureRule(DITStructureRule ditStructureRule)
Deregisters the provided DIT structure rule definition with this
schema.
|
void |
deregisterLdapSyntaxDescription(LDAPSyntaxDescription syntax)
Deregisters the provided ldap syntax description with this
schema.
|
void |
deregisterMatchingRule(org.forgerock.opendj.ldap.schema.MatchingRule matchingRule)
Deregisters the provided matching rule definition with this
schema.
|
void |
deregisterMatchingRuleUse(MatchingRuleUse matchingRuleUse)
Deregisters the provided matching rule use definition with this
schema.
|
void |
deregisterNameForm(NameForm nameForm)
Deregisters the provided name form definition with this schema.
|
void |
deregisterObjectClass(ObjectClass objectClass)
Deregisters the provided objectclass definition with this schema.
|
void |
deregisterSyntax(org.forgerock.opendj.ldap.schema.Syntax syntax)
Deregisters the provided attribute syntax definition with this
schema.
|
void |
destroy()
Destroys the structures maintained by the schema so that they are
no longer usable.
|
Schema |
duplicate()
Creates a new
Schema object that is a duplicate of
this one. |
static void |
genConcatenatedSchema(Set<String> attributeTypes,
Set<String> objectClasses,
Set<String> nameForms,
Set<String> ditContentRules,
Set<String> ditStructureRules,
Set<String> matchingRuleUses,
Set<String> ldapSyntaxes)
Reads the files contained in the schema directory and generates a
concatenated view of their contents in the provided sets.
|
AttributeType |
getAttributeType(String lowerName)
Retrieves the attribute type definition with the specified name
or OID.
|
ConcurrentHashMap<String,AttributeType> |
getAttributeTypes()
Retrieves the attribute type definitions for this schema, as a
mapping between the lowercase names and OIDs for the attribute
type and the attribute type itself.
|
org.forgerock.opendj.ldap.schema.Syntax |
getDefaultSyntax()
Retrieves the default attribute syntax that should be used for attributes
that are not defined in the server schema.
|
DITContentRule |
getDITContentRule(ObjectClass objectClass)
Retrieves the DIT content rule definition for the specified
objectclass.
|
ConcurrentHashMap<ObjectClass,DITContentRule> |
getDITContentRules()
Retrieves the DIT content rule definitions for this schema, as a
mapping between the objectclass for the rule and the DIT content
rule itself.
|
DITStructureRule |
getDITStructureRule(int ruleID)
Retrieves the DIT structure rule definition with the provided
rule ID.
|
DITStructureRule |
getDITStructureRule(NameForm nameForm)
Retrieves the DIT structure rule definition for the provided name
form.
|
ConcurrentHashMap<Integer,DITStructureRule> |
getDITStructureRulesByID()
Retrieves the DIT structure rule definitions for this schema, as
a mapping between the rule ID for the rule and the DIT structure
rule itself.
|
ConcurrentHashMap<NameForm,DITStructureRule> |
getDITStructureRulesByNameForm()
Retrieves the DIT structure rule definitions for this schema, as
a mapping between the name form for the rule and the DIT
structure rule itself.
|
Map<String,Attribute> |
getExtraAttributes()
Get the extraAttributes stored in this schema.
|
LDAPSyntaxDescription |
getLdapSyntaxDescription(String lowerName)
Retrieves the ldap syntax definition with the OID.
|
ConcurrentHashMap<String,LDAPSyntaxDescription> |
getLdapSyntaxDescriptions()
Retrieves the ldap syntax definitions for this schema, as a
mapping between the OID for the syntax and the ldap syntax
definition itself.
|
org.forgerock.opendj.ldap.schema.MatchingRule |
getMatchingRule(String lowerName)
Retrieves the matching rule definition with the specified name or
OID.
|
ConcurrentHashMap<String,org.forgerock.opendj.ldap.schema.MatchingRule> |
getMatchingRules()
Retrieves the entire set of matching rule definitions for this
schema, as a mapping between the lowercase names and OIDs for the
matching rule and the matching rule itself.
|
MatchingRuleUse |
getMatchingRuleUse(org.forgerock.opendj.ldap.schema.MatchingRule matchingRule)
Retrieves the matching rule use definition for the specified
matching rule.
|
ConcurrentHashMap<org.forgerock.opendj.ldap.schema.MatchingRule,MatchingRuleUse> |
getMatchingRuleUses()
Retrieves the matching rule use definitions for this schema, as a
mapping between the matching rule for the matching rule use
definition and the matching rule use itself.
|
List<NameForm> |
getNameForm(ObjectClass objectClass)
Retrieves the name forms definition for the specified
objectclass.
|
NameForm |
getNameForm(String lowerName)
Retrieves the name form definition with the provided name or OID.
|
ConcurrentHashMap<String,NameForm> |
getNameFormsByNameOrOID()
Retrieves the name form definitions for this schema, as a mapping
between the names/OID for the name form and the name form itself.
|
ConcurrentHashMap<ObjectClass,List<NameForm>> |
getNameFormsByObjectClass()
Retrieves the name form definitions for this schema, as a mapping
between the objectclass for the name forms and the name forms
themselves.
|
ObjectClass |
getObjectClass(String lowerName)
Retrieves the objectclass definition with the specified name or
OID.
|
ConcurrentHashMap<String,ObjectClass> |
getObjectClasses()
Retrieves the objectclass definitions for this schema, as a
mapping between the lowercase names and OIDs for the objectclass
and the objectclass itself.
|
long |
getOldestModificationTime()
Retrieves the modification timestamp for the file in the schema
configuration directory with the oldest last modified time.
|
List<AttributeType> |
getSubTypes(AttributeType attributeType)
Retrieves the set of subtypes registered for the given attribute
type.
|
org.forgerock.opendj.ldap.schema.Syntax |
getSyntax(String lowerName)
Retrieves the attribute syntax definition with the OID.
|
org.forgerock.opendj.ldap.schema.Syntax |
getSyntax(String oid,
boolean allowDefault)
Retrieves the requested attribute syntax.
|
ConcurrentHashMap<String,org.forgerock.opendj.ldap.schema.Syntax> |
getSyntaxes()
Retrieves the attribute syntax definitions for this schema, as a
mapping between the OID for the syntax and the syntax itself.
|
long |
getYoungestModificationTime()
Retrieves the modification timestamp for the file in the schema
configuration directory with the youngest last modified time.
|
boolean |
hasAttributeType(String lowerName)
Indicates whether this schema definition includes an attribute
type with the provided name or OID.
|
boolean |
hasDITContentRule(ObjectClass objectClass)
Indicates whether this schema definition includes a DIT content
rule for the provided objectclass.
|
boolean |
hasDITStructureRule(int ruleID)
Indicates whether this schema definition includes a DIT structure
rule with the provided rule ID.
|
boolean |
hasDITStructureRule(NameForm nameForm)
Indicates whether this schema definition includes a DIT structure
rule for the provided name form.
|
boolean |
hasLdapSyntaxDescription(String lowerName)
Indicates whether this schema definition includes an ldap
syntax description with the provided name or OID.
|
boolean |
hasMatchingRule(String lowerName)
Indicates whether this schema definition includes a matching rule
with the provided name or OID.
|
boolean |
hasMatchingRuleUse(org.forgerock.opendj.ldap.schema.MatchingRule matchingRule)
Indicates whether this schema definition includes a matching rule
use for the provided matching rule.
|
boolean |
hasNameForm(ObjectClass objectClass)
Indicates whether this schema definition includes a name form for
the specified objectclass.
|
boolean |
hasNameForm(String lowerName)
Indicates whether this schema definition includes a name form
with the specified name or OID.
|
boolean |
hasObjectClass(String lowerName)
Indicates whether this schema definition includes an objectclass
with the provided name or OID.
|
boolean |
hasSyntax(String lowerName)
Indicates whether this schema definition includes an attribute
syntax with the provided name or OID.
|
static void |
readConcatenatedSchema(String concatSchemaFile,
Set<String> attributeTypes,
Set<String> objectClasses,
Set<String> nameForms,
Set<String> ditContentRules,
Set<String> ditStructureRules,
Set<String> matchingRuleUses,
Set<String> ldapSyntaxes)
Reads data from the specified concatenated schema file into the
provided sets.
|
void |
rebuildDependentElements(SchemaFileElement element)
Recursively rebuilds all schema elements that are dependent upon
the provided element.
|
void |
registerAttributeType(AttributeType attributeType,
boolean overwriteExisting)
Registers the provided attribute type definition with this
schema.
|
void |
registerDefaultSyntax(org.forgerock.opendj.ldap.schema.Syntax defaultSyntax)
Registers the defaut syntax for this schema.
|
void |
registerDITContentRule(DITContentRule ditContentRule,
boolean overwriteExisting)
Registers the provided DIT content rule definition with this
schema.
|
void |
registerDITStructureRule(DITStructureRule ditStructureRule,
boolean overwriteExisting)
Registers the provided DIT structure rule definition with this
schema.
|
void |
registerLdapSyntaxDescription(LDAPSyntaxDescription syntax,
boolean overwriteExisting)
Registers the provided ldap syntax description with this
schema.
|
void |
registerMatchingRule(org.forgerock.opendj.ldap.schema.MatchingRule matchingRule,
boolean overwriteExisting)
Registers the provided matching rule definition with this schema.
|
void |
registerMatchingRuleUse(MatchingRuleUse matchingRuleUse,
boolean overwriteExisting)
Registers the provided matching rule use definition with this
schema.
|
void |
registerNameForm(NameForm nameForm,
boolean overwriteExisting)
Registers the provided name form definition with this schema.
|
void |
registerObjectClass(ObjectClass objectClass,
boolean overwriteExisting)
Registers the provided objectclass definition with this schema.
|
void |
registerSyntax(org.forgerock.opendj.ldap.schema.Syntax syntax,
boolean overwriteExisting)
Registers the provided attribute syntax definition with this
schema.
|
void |
setOldestModificationTime(long oldestModificationTime)
Sets the modification timestamp for the oldest file in the schema
configuration directory.
|
void |
setYoungestModificationTime(long youngestModificationTime)
Sets the modification timestamp for the youngest file in the
schema configuration directory.
|
static void |
writeConcatenatedSchema()
Writes a single file containing all schema element definitions,
which can be used on startup to determine whether the schema
files were edited with the server offline.
|
public Schema()
public ConcurrentHashMap<String,AttributeType> getAttributeTypes()
public boolean hasAttributeType(String lowerName)
lowerName
- The name or OID for which to make the
determination, formatted in all lowercase
characters.true
if this schema contains an attribute type
with the provided name or OID, or false
if not.public AttributeType getAttributeType(String lowerName)
lowerName
- The name or OID of the attribute type to
retrieve, formatted in all lowercase
characters.null
if no
type is registered with the provided name or OID.public void registerAttributeType(AttributeType attributeType, boolean overwriteExisting) throws DirectoryException
attributeType
- The attribute type to register with
this schema.overwriteExisting
- Indicates whether to overwrite an
existing mapping if there are any
conflicts (i.e., another attribute
type with the same OID or name).DirectoryException
- If a conflict is encountered and the
overwriteExisting
flag
is set to false
public void deregisterAttributeType(AttributeType attributeType)
attributeType
- The attribute type to deregister with this
schema.public List<AttributeType> getSubTypes(AttributeType attributeType)
attributeType
- The attribute type for which to retrieve
the set of registered subtypes.public ConcurrentHashMap<String,ObjectClass> getObjectClasses()
public boolean hasObjectClass(String lowerName)
lowerName
- The name or OID for which to make the
determination, formatted in all lowercase
characters.true
if this schema contains an objectclass with
the provided name or OID, or false
if not.public ObjectClass getObjectClass(String lowerName)
lowerName
- The name or OID of the objectclass to
retrieve, formatted in all lowercase
characters.null
if no
class is registered with the provided name or OID.public void registerObjectClass(ObjectClass objectClass, boolean overwriteExisting) throws DirectoryException
objectClass
- The objectclass to register with this
schema.overwriteExisting
- Indicates whether to overwrite an
existing mapping if there are any
conflicts (i.e., another objectclass
with the same OID or name).DirectoryException
- If a conflict is encountered and the
overwriteExisting
flag
is set to false
.public void deregisterObjectClass(ObjectClass objectClass)
objectClass
- The objectclass to deregister with this
schema.public ConcurrentHashMap<String,org.forgerock.opendj.ldap.schema.Syntax> getSyntaxes()
public boolean hasSyntax(String lowerName)
lowerName
- The name or OID for which to make the
determination, formatted in all lowercase
characters.true
if this schema contains an attribute syntax
with the provided name or OID, or false
if not.public org.forgerock.opendj.ldap.schema.Syntax getSyntax(String oid, boolean allowDefault)
oid
- The OID of the syntax to retrieve.allowDefault
- Indicates whether to return the default attribute syntax if the
requested syntax is unknown.null
otherwise.public org.forgerock.opendj.ldap.schema.Syntax getSyntax(String lowerName)
lowerName
- The OID of the attribute syntax to retrieve,
formatted in all lowercase characters.null
if
no syntax is registered with the provided OID.public org.forgerock.opendj.ldap.schema.Syntax getDefaultSyntax()
public void registerDefaultSyntax(org.forgerock.opendj.ldap.schema.Syntax defaultSyntax)
defaultSyntax
- The defautl syntax to use.public void registerSyntax(org.forgerock.opendj.ldap.schema.Syntax syntax, boolean overwriteExisting) throws DirectoryException
syntax
- The attribute syntax to register with
this schema.overwriteExisting
- Indicates whether to overwrite an
existing mapping if there are any
conflicts (i.e., another attribute
syntax with the same OID).DirectoryException
- If a conflict is encountered and the
overwriteExisting
flag
is set to false
public void deregisterSyntax(org.forgerock.opendj.ldap.schema.Syntax syntax)
syntax
- The attribute syntax to deregister with this
schema.public ConcurrentHashMap<String,LDAPSyntaxDescription> getLdapSyntaxDescriptions()
public boolean hasLdapSyntaxDescription(String lowerName)
lowerName
- The OID for which to make the
determination, formatted in all lowercase
characters.true
if this schema contains an ldap syntax
with the provided name or OID, or false
if not.public LDAPSyntaxDescription getLdapSyntaxDescription(String lowerName)
lowerName
- The OID of the ldap syntax to retrieve,
formatted in all lowercase characters.null
if
no syntax is registered with the provided OID.public void registerLdapSyntaxDescription(LDAPSyntaxDescription syntax, boolean overwriteExisting) throws DirectoryException
syntax
- The ldap syntax description to register
with this schema.overwriteExisting
- Indicates whether to overwrite an
existing mapping if there are any
conflicts (i.e., another ldap
syntax with the same OID).DirectoryException
- If a conflict is encountered and
overwriteExisting
flag
is set to false
public void deregisterLdapSyntaxDescription(LDAPSyntaxDescription syntax)
syntax
- The ldap syntax to deregister with this
schema.public ConcurrentHashMap<String,org.forgerock.opendj.ldap.schema.MatchingRule> getMatchingRules()
public boolean hasMatchingRule(String lowerName)
lowerName
- The name or OID for which to make the
determination, formatted in all lowercase
characters.true
if this schema contains a matching rule
with the provided name or OID, or false
if not.public org.forgerock.opendj.ldap.schema.MatchingRule getMatchingRule(String lowerName)
lowerName
- The name or OID of the matching rule to
retrieve, formatted in all lowercase
characters.null
if no
rule is registered with the provided name or OID.public void registerMatchingRule(org.forgerock.opendj.ldap.schema.MatchingRule matchingRule, boolean overwriteExisting) throws DirectoryException
matchingRule
- The matching rule to register with
this schema.overwriteExisting
- Indicates whether to overwrite an
existing mapping if there are any
conflicts (i.e.,
another matching rule with the same
OID or name).DirectoryException
- If a conflict is encountered and the
overwriteExisting
flag
is set to false
public void deregisterMatchingRule(org.forgerock.opendj.ldap.schema.MatchingRule matchingRule)
matchingRule
- The matching rule to deregister with this
schema.public ConcurrentHashMap<org.forgerock.opendj.ldap.schema.MatchingRule,MatchingRuleUse> getMatchingRuleUses()
public boolean hasMatchingRuleUse(org.forgerock.opendj.ldap.schema.MatchingRule matchingRule)
matchingRule
- The matching rule for which to make the
determination.true
if this schema contains a matching rule use
for the provided matching rule, or false
if not.public MatchingRuleUse getMatchingRuleUse(org.forgerock.opendj.ldap.schema.MatchingRule matchingRule)
matchingRule
- The matching rule for which to retrieve the
matching rule use definition.null
if none exists for the specified matching rule.public void registerMatchingRuleUse(MatchingRuleUse matchingRuleUse, boolean overwriteExisting) throws DirectoryException
matchingRuleUse
- The matching rule use definition to
register.overwriteExisting
- Indicates whether to overwrite an
existing mapping if there are any
conflicts (i.e., another matching rule
use with the same matching rule).DirectoryException
- If a conflict is encountered and the
overwriteExisting
flag
is set to false
public void deregisterMatchingRuleUse(MatchingRuleUse matchingRuleUse)
matchingRuleUse
- The matching rule use to deregister with
this schema.public ConcurrentHashMap<ObjectClass,DITContentRule> getDITContentRules()
public boolean hasDITContentRule(ObjectClass objectClass)
objectClass
- The objectclass for which to make the
determination.true
if this schema contains a DIT content rule
for the provided objectclass, or false
if not.public DITContentRule getDITContentRule(ObjectClass objectClass)
objectClass
- The objectclass for the DIT content rule to
retrieve.null
if
no DIT content rule is registered with the provided
objectclass.public void registerDITContentRule(DITContentRule ditContentRule, boolean overwriteExisting) throws DirectoryException
ditContentRule
- The DIT content rule to register.overwriteExisting
- Indicates whether to overwrite an
existing mapping if there are any
conflicts (i.e., another DIT content
rule with the same objectclass).DirectoryException
- If a conflict is encountered and the
overwriteExisting
flag
is set to false
public void deregisterDITContentRule(DITContentRule ditContentRule)
ditContentRule
- The DIT content rule to deregister with
this schema.public ConcurrentHashMap<Integer,DITStructureRule> getDITStructureRulesByID()
public ConcurrentHashMap<NameForm,DITStructureRule> getDITStructureRulesByNameForm()
public boolean hasDITStructureRule(int ruleID)
ruleID
- The rule ID for which to make the determination.true
if this schema contains a DIT structure
rule with the provided rule ID, or false
if not.public boolean hasDITStructureRule(NameForm nameForm)
nameForm
- The name form for which to make the
determination.true
if this schema contains a DIT structure
rule for the provided name form, or false
if
not.public DITStructureRule getDITStructureRule(int ruleID)
ruleID
- The rule ID for the DIT structure rule to
retrieve.null
if no DIT structure rule is registered with the provided
rule ID.public DITStructureRule getDITStructureRule(NameForm nameForm)
nameForm
- The name form for the DIT structure rule to
retrieve.null
if no DIT structure rule is registered with the provided
name form.public void registerDITStructureRule(DITStructureRule ditStructureRule, boolean overwriteExisting) throws DirectoryException
ditStructureRule
- The DIT structure rule to register.overwriteExisting
- Indicates whether to overwrite an
existing mapping if there are any
conflicts (i.e., another DIT structure
rule with the same name form).DirectoryException
- If a conflict is encountered and the
overwriteExisting
flag
is set to false
public void deregisterDITStructureRule(DITStructureRule ditStructureRule)
ditStructureRule
- The DIT structure rule to deregister
with this schema.public ConcurrentHashMap<ObjectClass,List<NameForm>> getNameFormsByObjectClass()
public ConcurrentHashMap<String,NameForm> getNameFormsByNameOrOID()
public boolean hasNameForm(ObjectClass objectClass)
objectClass
- The objectclass for which to make the
determination.true
if this schema contains a name form for the
provided objectclass, or false
if not.public boolean hasNameForm(String lowerName)
lowerName
- The name or OID for which to make the
determination, formatted in all lowercase
characters.true
if this schema contains a name form with
the provided name or OID, or false
if not.public List<NameForm> getNameForm(ObjectClass objectClass)
objectClass
- The objectclass for the name form to
retrieve.null
if no
name forms are registered with the provided
objectClass.public NameForm getNameForm(String lowerName)
lowerName
- The name or OID of the name form to retrieve,
formatted in all lowercase characters.null
if no name
form is registered with the provided name or OID.public void registerNameForm(NameForm nameForm, boolean overwriteExisting) throws DirectoryException
nameForm
- The name form definition to register.overwriteExisting
- Indicates whether to overwrite an
existing mapping if there are any
conflicts (i.e., another name form
with the same objectclass).DirectoryException
- If a conflict is encountered and the
overwriteExisting
flag
is set to false
public void deregisterNameForm(NameForm nameForm)
nameForm
- The name form definition to deregister.public long getOldestModificationTime()
public void setOldestModificationTime(long oldestModificationTime)
oldestModificationTime
- The modification timestamp for
the oldest file in the schema
configuration directory.public long getYoungestModificationTime()
public void setYoungestModificationTime(long youngestModificationTime)
youngestModificationTime
- The modification timestamp for
the youngest file in the schema
configuration directory.public void rebuildDependentElements(SchemaFileElement element) throws DirectoryException
element
- The element for which to recursively rebuild all
dependent elements.DirectoryException
- If a problem occurs while rebuilding
any of the schema elements.public Schema duplicate()
Schema
object that is a duplicate of
this one. It elements may be added and removed from the
duplicate without impacting this version.Schema
object that is a duplicate of
this one.public Map<String,Attribute> getExtraAttributes()
public void addExtraAttribute(String name, Attribute attr)
name
- The identifier of the extra Attribute.attr
- The extra attribute that must be added to
this Schema.public static void writeConcatenatedSchema()
public static void genConcatenatedSchema(Set<String> attributeTypes, Set<String> objectClasses, Set<String> nameForms, Set<String> ditContentRules, Set<String> ditStructureRules, Set<String> matchingRuleUses, Set<String> ldapSyntaxes) throws IOException
attributeTypes
- The set into which to place the
attribute types read from the schema
files.objectClasses
- The set into which to place the object
classes read from the schema files.nameForms
- The set into which to place the name
forms read from the schema files.ditContentRules
- The set into which to place the DIT
content rules read from the schema
files.ditStructureRules
- The set into which to place the DIT
structure rules read from the schema
files.matchingRuleUses
- The set into which to place the
matching rule uses read from the
schema files.ldapSyntaxes
- The set into which to place the
ldap syntaxes read from the
schema files.IOException
- If a problem occurs while reading the
schema file elements.public static void readConcatenatedSchema(String concatSchemaFile, Set<String> attributeTypes, Set<String> objectClasses, Set<String> nameForms, Set<String> ditContentRules, Set<String> ditStructureRules, Set<String> matchingRuleUses, Set<String> ldapSyntaxes) throws IOException
concatSchemaFile
- The path to the concatenated schema
file to be read.attributeTypes
- The set into which to place the
attribute types read from the
concatenated schema file.objectClasses
- The set into which to place the object
classes read from the concatenated
schema file.nameForms
- The set into which to place the name
forms read from the concatenated
schema file.ditContentRules
- The set into which to place the DIT
content rules read from the
concatenated schema file.ditStructureRules
- The set into which to place the DIT
structure rules read from the
concatenated schema file.matchingRuleUses
- The set into which to place the
matching rule uses read from the
concatenated schema file.ldapSyntaxes
- The set into which to place the
ldap syntaxes read from the
concatenated schema file.IOException
- If a problem occurs while reading the
schema file elements.public static void compareConcatenatedSchema(Set<String> oldElements, Set<String> newElements, AttributeType elementType, List<Modification> mods)
oldElements
- The set of elements of the specified type
read from the previous concatenated schema
files.newElements
- The set of elements of the specified type
read from the server's current schema.elementType
- The attribute type associated with the
schema element being compared.mods
- The list of modifications into which any
identified differences should be written.@PublicAPI(stability=PRIVATE, mayInstantiate=false, mayExtend=false, mayInvoke=true) public void destroy()
Copyright © 2010-2015 ForgeRock AS. All Rights Reserved.