/*
|
* The contents of this file are subject to the terms of the Common Development and
|
* Distribution License (the License). You may not use this file except in compliance with the
|
* License.
|
*
|
* You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
|
* specific language governing permission and limitations under the License.
|
*
|
* When distributing Covered Software, include this CDDL Header Notice in each file and include
|
* the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
|
* Header, with the fields enclosed by brackets [] replaced by your own identifying
|
* information: "Portions Copyright [year] [name of copyright owner]".
|
*
|
* Copyright 2008-2010 Sun Microsystems, Inc.
|
*/
|
package org.forgerock.opendj.config;
|
|
|
/**
|
* A mock LDAP profile wrapper for testing purposes.
|
*/
|
public final class MockLDAPProfile extends LDAPProfile.Wrapper {
|
|
/**
|
* Creates a new mock LDAP profile.
|
*/
|
public MockLDAPProfile() {
|
// No implementation required.
|
}
|
|
/** {@inheritDoc} */
|
@Override
|
public String getAttributeName(AbstractManagedObjectDefinition<?, ?> d, PropertyDefinition<?> pd) {
|
|
if (d == TestParentCfgDefn.getInstance()) {
|
TestParentCfgDefn td = TestParentCfgDefn.getInstance();
|
|
if (pd == (PropertyDefinition<?>) td.getMandatoryBooleanPropertyPropertyDefinition()) {
|
return "ds-cfg-enabled";
|
} else if (pd == (PropertyDefinition<?>) td.getMandatoryClassPropertyPropertyDefinition()) {
|
return "ds-cfg-java-class";
|
} else if (pd == (PropertyDefinition<?>) td.getMandatoryReadOnlyAttributeTypePropertyPropertyDefinition()) {
|
return "ds-cfg-attribute-type";
|
} else if (pd == (PropertyDefinition<?>) td.getOptionalMultiValuedDNPropertyPropertyDefinition()) {
|
return "ds-cfg-base-dn";
|
} else {
|
throw new RuntimeException("Unexpected test-parent property" + pd.getName());
|
}
|
} else if (d == TestChildCfgDefn.getInstance()) {
|
TestChildCfgDefn td = TestChildCfgDefn.getInstance();
|
|
if (pd == (PropertyDefinition<?>) td.getMandatoryBooleanPropertyPropertyDefinition()) {
|
return "ds-cfg-enabled";
|
} else if (pd == (PropertyDefinition<?>) td.getMandatoryClassPropertyPropertyDefinition()) {
|
return "ds-cfg-java-class";
|
} else if (pd == (PropertyDefinition<?>) td.getMandatoryReadOnlyAttributeTypePropertyPropertyDefinition()) {
|
return "ds-cfg-attribute-type";
|
} else if (pd == (PropertyDefinition<?>) td.getOptionalMultiValuedDNProperty1PropertyDefinition()) {
|
return "ds-cfg-base-dn";
|
} else if (pd == (PropertyDefinition<?>) td.getOptionalMultiValuedDNProperty2PropertyDefinition()) {
|
return "ds-cfg-group-dn";
|
} else if (pd.getName().equals("aggregation-property")) {
|
return "ds-cfg-rotation-policy";
|
} else {
|
throw new RuntimeException("Unexpected test-child property" + pd.getName());
|
}
|
}
|
|
// Not known.
|
return null;
|
}
|
|
/** {@inheritDoc} */
|
@Override
|
public String getRelationChildRDNType(InstantiableRelationDefinition<?, ?> r) {
|
if (r == TestCfg.getTestOneToManyParentRelationDefinition()
|
|| r == TestParentCfgDefn.getInstance().getTestChildrenRelationDefinition()) {
|
return "cn";
|
}
|
return null;
|
}
|
|
/** {@inheritDoc} */
|
@Override
|
public String getObjectClass(AbstractManagedObjectDefinition<?, ?> d) {
|
if (d == TestParentCfgDefn.getInstance()) {
|
return "ds-cfg-test-parent-dummy";
|
} else if (d == TestChildCfgDefn.getInstance()) {
|
return "ds-cfg-test-child-dummy";
|
} else {
|
// Not known.
|
return null;
|
}
|
}
|
|
/** {@inheritDoc} */
|
@Override
|
public String getRelationRDNSequence(RelationDefinition<?, ?> r) {
|
if (r == TestCfg.getTestOneToManyParentRelationDefinition()) {
|
return "cn=test parents,cn=config";
|
} else if (r == TestCfg.getTestOneToZeroOrOneParentRelationDefinition()) {
|
return "cn=optional test parent,cn=config";
|
} else if (r == TestParentCfgDefn.getInstance().getTestChildrenRelationDefinition()) {
|
return "cn=test children";
|
} else if (r == TestParentCfgDefn.getInstance().getOptionalTestChildRelationDefinition()) {
|
return "cn=optional test child";
|
} else {
|
return null;
|
}
|
}
|
|
}
|