
net.sf.qualitytest.blueprint.configuration.DefaultBlueprintConfiguration Maven / Gradle / Ivy
/*******************************************************************************
* Copyright 2013 André Rouél and Dominik Seichter
*
* Licensed 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 net.sf.qualitytest.blueprint.configuration;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import net.sf.qualitycheck.Check;
import net.sf.qualitytest.blueprint.strategy.creation.BlueprintCreationStrategy;
import net.sf.qualitytest.blueprint.strategy.creation.DefaultArrayCreationStrategy;
import net.sf.qualitytest.blueprint.strategy.creation.DefaultEnumCreationStrategy;
import net.sf.qualitytest.blueprint.strategy.creation.SingleValueCreationStrategy;
import net.sf.qualitytest.blueprint.strategy.matching.ArrayTypeMatchingStrategy;
import net.sf.qualitytest.blueprint.strategy.matching.InterfaceOfTypeMatchingStrategy;
import net.sf.qualitytest.blueprint.strategy.matching.SetterMethodMatchingStrategy;
import net.sf.qualitytest.blueprint.strategy.matching.TypeMatchingStrategy;
/**
* Default {@code BlueprintConfiguration} which assigns all primitive types and their corresponding object types which a
* default value, which is usually {@code 0}.
*
* Additionally, support for the interfaces {@code java.util.List}, {@code java.util.Set} and {@code java.util.list} is
* added. If these interface are encountered, empty lists, lists and sets are created.
*
* @author Dominik Seichter
*
*/
public final class DefaultBlueprintConfiguration extends ImmutableBlueprintConfiguration {
private static final String STRING_DEFAULT = "";
private static final Long LONG_DEFAULT = Long.valueOf(0l);
private static final Integer INTEGER_DEFAULT = Integer.valueOf(0);
private static final Boolean BOOLEAN_DEFAULT = Boolean.FALSE;
private static final Character CHARACTER_DEFAULT = Character.valueOf((char) 0);
private static final Short SHORT_DEFAULT = Short.valueOf((short) 0);
private static final Byte BYTE_DEFAULT = Byte.valueOf((byte) 0);
private static final Float FLOAT_DEFAULT = Float.valueOf(0.0f);
private static final Double DOUBLE_DEFAULT = Double.valueOf(0.0);
/**
* Add the default array handling to a list.
*
* @param list
*/
public static void addDefaultArrayStrategy(final List list) {
list.add(new StrategyPair(new ArrayTypeMatchingStrategy(), new DefaultArrayCreationStrategy(
DefaultArrayCreationStrategy.DEFAULT_LENGTH)));
}
/**
* Add the default implementations for collection interfaces to a list.
*
* @param list
*/
public static void addDefaultCollections(final List list) {
Check.notNull(list, "list");
list.add(new StrategyPair(new TypeMatchingStrategy(Map.class), new SingleValueCreationStrategy
© 2015 - 2025 Weber Informatics LLC | Privacy Policy