/*
* Copyright (c) 2016. Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file 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 com.amazonaws.codegen.customization.processors;
import com.amazonaws.codegen.customization.CodegenCustomizationProcessor;
import com.amazonaws.codegen.customization.CodegenCustomizationProcessorChain;
import com.amazonaws.codegen.model.config.customization.CustomizationConfig;
public final class DefaultCustomizationProcessor {
public static CodegenCustomizationProcessor getProcessorFor(
CustomizationConfig config) {
return new CodegenCustomizationProcessorChain(
new MetadataModifiersProcessor(config.getCustomServiceMetadata()),
new ShapeModifiersProcessor(config.getShapeModifiers()),
new ShapeSubstitutionsProcessor(config.getShapeSubstitutions()),
new OperationModifiersProcessor(config.getOperationModifiers()),
new CustomConstructorsProcessor(config),
new SimpleMethodsProcessor(config.getSimpleMethods()),
new RemoveExceptionMessagePropertyProcessor(),
new RenameShapesProcessor(config.getRenameShapes()),
new SendEmptyAutoConstructedListAsEmptyListProcessor(config.getSendEmptyAutoConstructedListAsEmptyList()),
new SendEmptyNonAutoConstructedListAsEmptyListProcessor(config)
);
}
}