/* * RHQ Management Platform * Copyright (C) 2005-2008 Red Hat, Inc. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ package org.rhq.enterprise.gui.configuration.test; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import org.rhq.core.domain.configuration.Configuration; import org.rhq.core.domain.configuration.PropertyList; import org.rhq.core.domain.configuration.PropertyMap; import org.rhq.core.domain.configuration.PropertySimple; import org.rhq.core.domain.configuration.definition.ConfigurationDefinition; import org.rhq.core.domain.configuration.definition.ConfigurationTemplate; import org.rhq.core.domain.configuration.definition.PropertyDefinition; import org.rhq.core.domain.configuration.definition.PropertyDefinitionEnumeration; import org.rhq.core.domain.configuration.definition.PropertyDefinitionList; import org.rhq.core.domain.configuration.definition.PropertyDefinitionMap; import org.rhq.core.domain.configuration.definition.PropertyDefinitionSimple; import org.rhq.core.domain.configuration.definition.PropertyGroupDefinition; import org.rhq.core.domain.configuration.definition.PropertySimpleType; /** * @author Ian Springer */ public abstract class TestConfigurationFactory { public static ConfigurationDefinition createConfigurationDefinition() { ConfigurationDefinition configurationDefinition = new ConfigurationDefinition("TestConfig", "a test config"); ConfigurationTemplate defaultTemplate = new ConfigurationTemplate(ConfigurationTemplate.DEFAULT_TEMPLATE_NAME, "default template"); configurationDefinition.putTemplate(defaultTemplate); Configuration defaultConfiguration = new Configuration(); defaultTemplate.setConfiguration(defaultConfiguration); Map<String, PropertyDefinition> propertyDefinitions = new HashMap<String, PropertyDefinition>(); configurationDefinition.setPropertyDefinitions(propertyDefinitions); PropertyDefinitionSimple simplePropDef; simplePropDef = createStringPropDef1(); propertyDefinitions.put(simplePropDef.getName(), simplePropDef); simplePropDef = createStringPropDef2(); propertyDefinitions.put(simplePropDef.getName(), simplePropDef); simplePropDef = new PropertyDefinitionSimple("LongString", "a Long String simple prop", false, PropertySimpleType.LONG_STRING); simplePropDef.setDisplayName(simplePropDef.getName()); propertyDefinitions.put(simplePropDef.getName(), simplePropDef); simplePropDef = new PropertyDefinitionSimple("Password", "a Password simple prop", false, PropertySimpleType.PASSWORD); simplePropDef.setDisplayName(simplePropDef.getName()); propertyDefinitions.put(simplePropDef.getName(), simplePropDef); simplePropDef = new PropertyDefinitionSimple("Boolean", "a required Boolean simple prop", true, PropertySimpleType.BOOLEAN); simplePropDef.setDisplayName(simplePropDef.getName()); propertyDefinitions.put(simplePropDef.getName(), simplePropDef); simplePropDef.setRequired(true); simplePropDef = createIntegerPropDef(); propertyDefinitions.put(simplePropDef.getName(), simplePropDef); simplePropDef = new PropertyDefinitionSimple("Float", "a Float simple prop", false, PropertySimpleType.FLOAT); simplePropDef.setDisplayName(simplePropDef.getName()); propertyDefinitions.put(simplePropDef.getName(), simplePropDef); simplePropDef = new PropertyDefinitionSimple("StringEnum1", "a String enum prop with <=5 items - should be rendered as radio buttons", false, PropertySimpleType.STRING); simplePropDef.setDisplayName(simplePropDef.getName()); defaultConfiguration.put(new PropertySimple("StringEnum1", "NJ")); ArrayList<PropertyDefinitionEnumeration> propDefEnums = new ArrayList<PropertyDefinitionEnumeration>(); propDefEnums.add(new PropertyDefinitionEnumeration("NY", "NY")); propDefEnums.add(new PropertyDefinitionEnumeration("NJ", "NJ")); propDefEnums.add(new PropertyDefinitionEnumeration("PA", "PA")); simplePropDef.setEnumeratedValues(propDefEnums, false); propertyDefinitions.put(simplePropDef.getName(), simplePropDef); simplePropDef = new PropertyDefinitionSimple("StringEnum2", "a String enum prop with >5 items - should be rendered as a popup menu", false, PropertySimpleType.STRING); simplePropDef.setDisplayName(simplePropDef.getName()); defaultConfiguration.put(new PropertySimple("StringEnum2", "blue")); propDefEnums = new ArrayList<PropertyDefinitionEnumeration>(); propDefEnums.add(new PropertyDefinitionEnumeration("red", "red")); propDefEnums.add(new PropertyDefinitionEnumeration("orange", "orange")); propDefEnums.add(new PropertyDefinitionEnumeration("yellow", "yellow")); propDefEnums.add(new PropertyDefinitionEnumeration("green", "green")); propDefEnums.add(new PropertyDefinitionEnumeration("blue", "blue")); propDefEnums.add(new PropertyDefinitionEnumeration("purple", "purple")); simplePropDef.setEnumeratedValues(propDefEnums, false); propertyDefinitions.put(simplePropDef.getName(), simplePropDef); PropertyDefinitionMap mapPropDef = new PropertyDefinitionMap("MapOfSimples", "a map of simples", false); mapPropDef.put(createStringPropDef1()); mapPropDef.put(createStringPropDef2()); mapPropDef.put(createIntegerPropDef()); mapPropDef.setDisplayName(mapPropDef.getName()); propertyDefinitions.put(mapPropDef.getName(), mapPropDef); PropertyDefinitionMap openMapPropDef = new PropertyDefinitionMap("OpenMapOfSimples", "an open map of simples", false); openMapPropDef.setDisplayName(openMapPropDef.getName()); propertyDefinitions.put(openMapPropDef.getName(), openMapPropDef); PropertyDefinitionMap readOnlyOpenMapPropDef = new PropertyDefinitionMap("ReadOnlyOpenMapOfSimples", "a read-only open map of simples", false); readOnlyOpenMapPropDef.setDisplayName(readOnlyOpenMapPropDef.getName()); readOnlyOpenMapPropDef.setReadOnly(true); propertyDefinitions.put(readOnlyOpenMapPropDef.getName(), readOnlyOpenMapPropDef); PropertyDefinitionList listOfSimplesPropDef = new PropertyDefinitionList("ListOfStrings", "another list of Strings", true, new PropertyDefinitionSimple("note", "a note", false, PropertySimpleType.STRING)); listOfSimplesPropDef.setDisplayName(listOfSimplesPropDef.getName()); propertyDefinitions.put(listOfSimplesPropDef.getName(), listOfSimplesPropDef); PropertyDefinitionMap mapInListPropDef = new PropertyDefinitionMap("MapOfSimplesInList", "a map of simples in a list", false); mapInListPropDef.put(createStringPropDef1()); mapInListPropDef.put(createStringPropDef2()); mapInListPropDef.put(createIntegerPropDef()); mapInListPropDef.setDisplayName(mapInListPropDef.getName()); PropertyDefinitionList listPropDef = new PropertyDefinitionList("ListOfMaps", "a list of maps", true, mapInListPropDef); listPropDef.setDisplayName(listPropDef.getName()); propertyDefinitions.put(listPropDef.getName(), listPropDef); PropertyDefinitionMap mapInReadOnlyListPropDef = new PropertyDefinitionMap("MapOfSimplesInReadOnlyList", "a map of simples in a list", false); mapInReadOnlyListPropDef.put(createStringPropDef1()); mapInReadOnlyListPropDef.put(createStringPropDef2()); mapInReadOnlyListPropDef.put(createIntegerPropDef()); mapInReadOnlyListPropDef.setDisplayName(mapInReadOnlyListPropDef.getName()); PropertyDefinitionList readOnlyListPropDef = new PropertyDefinitionList("ReadOnlyListOfMaps", "a read-only list of maps", true, mapInReadOnlyListPropDef); readOnlyListPropDef.setDisplayName(readOnlyListPropDef.getName()); readOnlyListPropDef.setReadOnly(true); propertyDefinitions.put(readOnlyListPropDef.getName(), readOnlyListPropDef); PropertyGroupDefinition propertyGroupDefinition = new PropertyGroupDefinition("myGroup"); propertyGroupDefinition.setDisplayName(propertyGroupDefinition.getName()); propertyGroupDefinition.setDescription("this is an example group"); PropertyDefinitionSimple myString = new PropertyDefinitionSimple("myString1", "my little string", true, PropertySimpleType.STRING); myString.setDisplayName(myString.getName()); myString.setSummary(true); propertyDefinitions.put(myString.getName(), myString); myString.setPropertyGroupDefinition(propertyGroupDefinition); PropertyDefinitionSimple myString2 = new PropertyDefinitionSimple("myString2", "my other little string", true, PropertySimpleType.STRING); myString2.setDisplayName(myString2.getName()); myString2.setSummary(true); propertyDefinitions.put(myString2.getName(), myString2); myString2.setPropertyGroupDefinition(propertyGroupDefinition); PropertyGroupDefinition propertyGroupDefinition2 = new PropertyGroupDefinition("myGroup2"); propertyGroupDefinition2.setDisplayName(propertyGroupDefinition2.getName()); propertyGroupDefinition2.setDescription("this is another example group"); PropertyDefinitionSimple myString3 = new PropertyDefinitionSimple("myString3", "my third string", true, PropertySimpleType.STRING); myString3.setDisplayName((myString3.getName())); myString3.setSummary(true); propertyDefinitions.put(myString3.getName(), myString3); myString3.setPropertyGroupDefinition(propertyGroupDefinition2); PropertyDefinitionSimple enumExample = new PropertyDefinitionSimple("myEnum", "a grouped enum prop with <=5 items", false, PropertySimpleType.STRING); enumExample.setDisplayName(enumExample.getName()); defaultConfiguration.put(new PropertySimple("myEnum", "Burlington")); ArrayList<PropertyDefinitionEnumeration> myEnums = new ArrayList<PropertyDefinitionEnumeration>(); myEnums.add(new PropertyDefinitionEnumeration("Burlington", "Burlington")); myEnums.add(new PropertyDefinitionEnumeration("Camden", "Camden")); myEnums.add(new PropertyDefinitionEnumeration("Gloucester", "Gloucester")); enumExample.setEnumeratedValues(myEnums, false); propertyDefinitions.put(enumExample.getName(), enumExample); enumExample.setPropertyGroupDefinition(propertyGroupDefinition2); return configurationDefinition; } public static Configuration createConfiguration() { Configuration configuration = new Configuration(); configuration.setNotes("a test config"); configuration.setVersion(1); configuration.put(new PropertySimple("String1", "blah")); configuration.put(new PropertySimple("String2", "a really, really, really, really, really long value that won't fit in the text input box")); configuration.put(new PropertySimple("LongString", "blah blah blah\nblah blah blah")); configuration.put(new PropertySimple("Password", null)); configuration.put(new PropertySimple("Boolean", false)); configuration.put(new PropertySimple("Integer", 666)); configuration.put(new PropertySimple("Float", Math.PI)); configuration.put(new PropertySimple("StringEnum1", "PA")); configuration.put(new PropertySimple("StringEnum2", "blue")); PropertyMap propMap1 = new PropertyMap("MapOfSimples"); propMap1.put(new PropertySimple("String1", "One")); propMap1.put(new PropertySimple("String2", "Two")); propMap1.put(new PropertySimple("Integer", 11)); configuration.put(propMap1); PropertyMap openPropMap1 = new PropertyMap("OpenMapOfSimples"); openPropMap1.put(new PropertySimple("PROCESSOR_ARCHITECTURE", "x86")); openPropMap1.put(new PropertySimple("PROCESSOR_IDENTIFIER", "x86 Family 6 Model 15 Stepping 6, GenuineIntel")); openPropMap1.put(new PropertySimple("PROCESSOR_LEVEL", "6")); openPropMap1.put(new PropertySimple("PROCESSOR_REVISION", "0f06")); configuration.put(openPropMap1); PropertyMap openPropMap2 = new PropertyMap("ReadOnlyOpenMapOfSimples"); openPropMap2.put(new PropertySimple("ANT_HOME", "C:\\opt\\ant-1.6.5")); openPropMap2.put(new PropertySimple("ANT_OPTS", "-Xms128M -Xmx256M")); configuration.put(openPropMap2); configuration.put(new PropertyList("ListOfStrings", new PropertySimple("note", "Do"), new PropertySimple( "note", "Re"), new PropertySimple("note", "Mi"), new PropertySimple("note", "Fa"), new PropertySimple( "note", "So"), new PropertySimple("note", "La"), new PropertySimple("note", "Ti"))); PropertyMap propMap2 = new PropertyMap("MapOfSimples"); propMap2.put(new PropertySimple("String1", "Uno")); propMap2.put(new PropertySimple("String2", "Dos")); propMap2.put(new PropertySimple("Integer", Integer.MIN_VALUE)); PropertyMap propMap3 = new PropertyMap("MapOfSimples"); propMap3.put(new PropertySimple("String1", "Un")); propMap3.put(new PropertySimple("String2", "Deux")); propMap3.put(new PropertySimple("Integer", Integer.MAX_VALUE)); configuration.put(new PropertyList("ListOfMaps", propMap2, propMap3)); PropertyMap propMap4 = new PropertyMap("MapOfSimplesInReadOnlyList"); propMap4.put(new PropertySimple("String1", "A")); propMap4.put(new PropertySimple("String2", "B")); propMap4.put(new PropertySimple("Integer", 999)); PropertyMap propMap5 = new PropertyMap("MapOfSimplesInReadOnlyList"); propMap5.put(new PropertySimple("String1", "a")); propMap5.put(new PropertySimple("String2", "b")); propMap5.put(new PropertySimple("Integer", 0)); configuration.put(new PropertyList("ReadOnlyListOfMaps", propMap4, propMap5)); configuration.put(new PropertySimple("myString1", "grouped String 1")); configuration.put(new PropertySimple("myString2", "grouped String 2")); configuration.put(new PropertySimple("myString3", "strings are cool")); configuration.put(new PropertySimple("myEnum", "Burlington")); return configuration; } private static PropertyDefinitionSimple createStringPropDef1() { PropertyDefinitionSimple stringPropDef1; stringPropDef1 = new PropertyDefinitionSimple("String1", "an optional String simple prop", false, PropertySimpleType.STRING); stringPropDef1.setDisplayName(stringPropDef1.getName()); return stringPropDef1; } private static PropertyDefinitionSimple createStringPropDef2() { PropertyDefinitionSimple stringPropDef2; stringPropDef2 = new PropertyDefinitionSimple("String2", "a read-only String simple prop", false, PropertySimpleType.STRING); stringPropDef2.setDisplayName(stringPropDef2.getName()); stringPropDef2.setReadOnly(true); return stringPropDef2; } private static PropertyDefinitionSimple createIntegerPropDef() { PropertyDefinitionSimple integerPropDef; integerPropDef = new PropertyDefinitionSimple("Integer", "a required summary Integer simple prop", true, PropertySimpleType.INTEGER); integerPropDef.setDisplayName(integerPropDef.getName()); integerPropDef.setSummary(true); return integerPropDef; } }