OperationHelperBuilder.java revision 88f2d7061bb42999901dcff81c37089b000d32e0
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright © 2011 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]"
*
* $Id$
*/
/**
* @author $author$
* @version $Revision$ $Date$
*/
public class OperationHelperBuilder {
private final APIConfigurationImpl runtimeAPIConfiguration;
private Map<String, Map<Class<? extends APIOperation>, OperationOptionInfoHelper>> operationOptionHelpers;
private String systemName;
public OperationHelperBuilder(String system, JsonValue jsonConfiguration, APIConfiguration defaultAPIConfiguration) throws SchemaException, JsonValueException {
}
public OperationHelper build(String objectType, Map<String, Object> object, CryptoService cryptoService) throws ObjectSetException {
if (null == objectClassInfoHelper) {
}
// TODO Set custom runtimeAPIConfiguration properties
// if (null != object.get("_configuration")) {
// ConnectorUtil.configureDefaultAPIConfiguration(null, _configuration);
// }
return new OperationHelperImpl(_configuration, new Id(systemName, objectType), objectClassInfoHelper, operationOptionHelpers.get(objectType), cryptoService);
}
public APIConfiguration getRuntimeAPIConfiguration() {
//Assertions.nullCheck(runtimeAPIConfiguration,"runtimeAPIConfiguration");
//clone in case application tries to modify
//after the fact. this is necessary to
//ensure thread-safety of a ConnectorFacade
//also, runtimeAPIConfiguration is used as a key in the
//pool, so it is important that it not be modified.
APIConfigurationImpl _configuration = (APIConfigurationImpl) SerializerUtil.cloneObject(runtimeAPIConfiguration);
//parent ref not included in the clone
return _configuration;
}
}