/**
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright (c) 2011-2014 ForgeRock AS. All Rights Reserved
*
* 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
* See the License for the specific language governing
* permission and limitations under the License.
*
* When distributing Covered Code, include this CDDL
* Header Notice in each file and include the License file
* If applicable, add the following below the CDDL Header,
* with the fields enclosed by brackets [] replaced by
* your own identifying information:
* "Portions Copyrighted [year] [name of copyright owner]"
*
*/
/**
*
* @author steve
*/
protected AttributeSchemaImpl updateDefaultValues(AttributeSchemaImpl attribute, Set<String> defaultValues)
throws UpgradeException {
}
Node attributeNode = updateNode(doc, SMSUtils.ATTRIBUTE_DEFAULT_ELEMENT, attribute.getAttributeSchemaNode());
return attribute;
}
// NB. This method will only replace an existing child element,
// it does not create one if one didn't exist before
}
}
return node;
}
public AttributeSchemaImpl addNewAttribute(Set<AttributeSchemaImpl> existingAttrs, AttributeSchemaImpl newAttr)
throws UpgradeException {
return newAttr;
}
/**
* Implement this method to perform modifications to an existing attribute based on custom logic. In order to
* create a hook for a certain attribute, during upgradehelper initialization the attribute name should be
* captured in {@link AbstractUpgradeHelper#attributes}.
*
* @param oldAttr The attribute schema definition currently specified.
* @param newAttr The attribute schema definition we are planning to upgrade to.
* @return If there is nothing to upgrade (i.e. there is no real difference between old and new attribute),
* implementations MUST return <code>null</code>, otherwise either the amended attribute or the newAttr can be
* returned directly.
* @throws UpgradeException If there was an error while performing the attribute upgrade.
*/
public abstract AttributeSchemaImpl upgradeAttribute(AttributeSchemaImpl oldAttr, AttributeSchemaImpl newAttr)
throws UpgradeException;
/**
* Implement this method to perform modifications to a newly added attribute. In order to create a hook for
* a certain attribute, during upgradehelper initialization the attribute name should be captured in
* {@link AbstractUpgradeHelper#attributes}.
*
* @param newAttr The attribute schema definition we are planning to upgrade to.
* @return If there is nothing to upgrade, implementations MUST return <code>null</code>,
* otherwise the amended attribute can be returned directly.
* @throws UpgradeException If there was an error while performing the attribute upgrade.
*/
return null;
}
return attributes;
}
}