blob: f79ae219343419516e433b088b6bd39408249072 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.directory.server.core.api;
import org.apache.directory.api.ldap.model.constants.SchemaConstants;
import org.apache.directory.api.ldap.model.schema.AttributeType;
import org.apache.directory.api.ldap.model.schema.SchemaManager;
import org.apache.directory.server.constants.ApacheSchemaConstants;
/**
* Provides commonly used {@link AttributeType}s.
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
public class AttributeTypeProvider
{
private final AttributeType accessControlSubentries;
private final AttributeType administrativeRole;
private final AttributeType collectiveAttributeSubentries;
private final AttributeType collectiveExclusions;
private final AttributeType creatorsName;
private final AttributeType createTimestamp;
private final AttributeType entryACI;
private final AttributeType entryCSN;
private final AttributeType entryDN;
private final AttributeType entryUUID;
private final AttributeType hasSubordinates;
private final AttributeType member;
private final AttributeType modifiersName;
private final AttributeType modifyTimestamp;
private final AttributeType nbChildren;
private final AttributeType nbSubordinates;
private final AttributeType objectClass;
private final AttributeType prescriptiveACI;
private final AttributeType structuralObjectClass;
private final AttributeType subentryACI;
private final AttributeType subschemaSubentry;
private final AttributeType subtreeSpecification;
private final AttributeType triggerExecutionSubentries;
private final AttributeType uniqueMember;
private final AttributeType userPassword;
private final AttributeType[] subentryOperationalAttributes;
public AttributeTypeProvider( SchemaManager schemaManager )
{
accessControlSubentries = schemaManager.getAttributeType( ApacheSchemaConstants.ACCESS_CONTROL_SUBENTRIES_AT );
administrativeRole = schemaManager.getAttributeType( SchemaConstants.ADMINISTRATIVE_ROLE_AT );
collectiveAttributeSubentries = schemaManager
.getAttributeType( SchemaConstants.COLLECTIVE_ATTRIBUTE_SUBENTRIES_AT );
collectiveExclusions = schemaManager.getAttributeType( SchemaConstants.COLLECTIVE_EXCLUSIONS_AT );
creatorsName = schemaManager.getAttributeType( SchemaConstants.CREATORS_NAME_AT );
createTimestamp = schemaManager.getAttributeType( SchemaConstants.CREATE_TIMESTAMP_AT );
entryACI = schemaManager.getAttributeType( SchemaConstants.ENTRY_ACI_AT_OID );
entryCSN = schemaManager.getAttributeType( SchemaConstants.ENTRY_CSN_AT );
entryDN = schemaManager.getAttributeType( SchemaConstants.ENTRY_DN_AT );
entryUUID = schemaManager.getAttributeType( SchemaConstants.ENTRY_UUID_AT );
hasSubordinates = schemaManager.getAttributeType( SchemaConstants.HAS_SUBORDINATES_AT );
member = schemaManager.getAttributeType( SchemaConstants.MEMBER_AT );
modifiersName = schemaManager.getAttributeType( SchemaConstants.MODIFIERS_NAME_AT );
modifyTimestamp = schemaManager.getAttributeType( SchemaConstants.MODIFY_TIMESTAMP_AT );
nbChildren = schemaManager.getAttributeType( ApacheSchemaConstants.NB_CHILDREN_OID );
nbSubordinates = schemaManager.getAttributeType( ApacheSchemaConstants.NB_SUBORDINATES_OID );
objectClass = schemaManager.getAttributeType( SchemaConstants.OBJECT_CLASS_AT );
prescriptiveACI = schemaManager.getAttributeType( SchemaConstants.PRESCRIPTIVE_ACI_AT );
structuralObjectClass = schemaManager.getAttributeType( SchemaConstants.STRUCTURAL_OBJECT_CLASS_AT );
subentryACI = schemaManager.getAttributeType( SchemaConstants.SUBENTRY_ACI_AT_OID );
subschemaSubentry = schemaManager.getAttributeType( SchemaConstants.SUBSCHEMA_SUBENTRY_AT );
subtreeSpecification = schemaManager.getAttributeType( SchemaConstants.SUBTREE_SPECIFICATION_AT );
triggerExecutionSubentries = schemaManager
.getAttributeType( ApacheSchemaConstants.TRIGGER_EXECUTION_SUBENTRIES_AT );
uniqueMember = schemaManager.getAttributeType( SchemaConstants.UNIQUE_MEMBER_AT_OID );
userPassword = schemaManager.getAttributeType( SchemaConstants.USER_PASSWORD_AT_OID );
subentryOperationalAttributes = new AttributeType[]
{
accessControlSubentries,
subschemaSubentry,
collectiveAttributeSubentries,
triggerExecutionSubentries
};
}
/**
* @return the <code>accessControlSubentries</code> {@link AttributeType}.
*/
public AttributeType getAccessControlSubentries()
{
return accessControlSubentries;
}
/**
* @return the <code>administrativeRole</code> {@link AttributeType}.
*/
public AttributeType getAdministrativeRole()
{
return administrativeRole;
}
/**
* @return the <code>collectiveAttributeSubentries</code> {@link AttributeType}.
*/
public AttributeType getCollectiveAttributeSubentries()
{
return collectiveAttributeSubentries;
}
/**
* @return the <code>collectiveExclusions</code> {@link AttributeType}.
*/
public AttributeType getCollectiveExclusions()
{
return collectiveExclusions;
}
/**
* @return the <code>creatorsName</code> {@link AttributeType}.
*/
public AttributeType getCreatorsName()
{
return creatorsName;
}
/**
* @return the <code>createTimestamp</code> {@link AttributeType}.
*/
public AttributeType getCreateTimestamp()
{
return createTimestamp;
}
/**
* @return the <code>entryACI</code> {@link AttributeType}.
*/
public AttributeType getEntryACI()
{
return entryACI;
}
/**
* @return the <code>entryCSN</code> {@link AttributeType}.
*/
public AttributeType getEntryCSN()
{
return entryCSN;
}
/**
* @return the <code>entryDN</code> {@link AttributeType}.
*/
public AttributeType getEntryDN()
{
return entryDN;
}
/**
* @return the <code>entryUUID</code> {@link AttributeType}.
*/
public AttributeType getEntryUUID()
{
return entryUUID;
}
/**
* @return the <code>hasSubordinates</code> {@link AttributeType}.
*/
public AttributeType getHasSubordinates()
{
return hasSubordinates;
}
/**
* @return the <code>member</code> {@link AttributeType}.
*/
public AttributeType getMember()
{
return member;
}
/**
* @return the <code>modifiersName</code> {@link AttributeType}.
*/
public AttributeType getModifiersName()
{
return modifiersName;
}
/**
* @return the <code>modifyTimestamp</code> {@link AttributeType}.
*/
public AttributeType getModifyTimestamp()
{
return modifyTimestamp;
}
/**
* @return the <code>nbChildren</code> {@link AttributeType}.
*/
public AttributeType getNbChildren()
{
return nbChildren;
}
/**
* @return the <code>nbSubordinates</code> {@link AttributeType}.
*/
public AttributeType getNbSubordinates()
{
return nbSubordinates;
}
/**
* @return the <code>objectClass</code> {@link AttributeType}.
*/
public AttributeType getObjectClass()
{
return objectClass;
}
/**
* @return the <code>prescriptiveACI</code> {@link AttributeType}.
*/
public AttributeType getPrescriptiveACI()
{
return prescriptiveACI;
}
/**
* @return the <code>structuralObjectClass</code> {@link AttributeType}.
*/
public AttributeType getStructuralObjectClass()
{
return structuralObjectClass;
}
/**
* @return the <code>subentryACI</code> {@link AttributeType}.
*/
public AttributeType getSubentryACI()
{
return subentryACI;
}
/**
* @return the <code>subschemaSubentry</code> {@link AttributeType}.
*/
public AttributeType getSubschemaSubentry()
{
return subschemaSubentry;
}
/**
* @return the <code>subtreeSpecification</code> {@link AttributeType}.
*/
public AttributeType getSubtreeSpecification()
{
return subtreeSpecification;
}
/**
* @return the <code>triggerExecutionSubentries</code> {@link AttributeType}.
*/
public AttributeType getTriggerExecutionSubentries()
{
return triggerExecutionSubentries;
}
/**
* @return the <code>uniqueMember</code> {@link AttributeType}.
*/
public AttributeType getUniqueMember()
{
return uniqueMember;
}
/**
* @return the <code>userPassword</code> {@link AttributeType}.
*/
public AttributeType getUserPassword()
{
return userPassword;
}
/**
* @return the operational attributes of an subentry
*/
public AttributeType[] getSubentryOperationalAttributes()
{
return subentryOperationalAttributes;
}
}