/**
* 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 org.deephacks.confit.serialization;
import com.google.common.collect.Lists;
import org.deephacks.confit.Config;
import org.deephacks.confit.Id;
import org.deephacks.confit.Index;
import org.deephacks.confit.model.Bean;
import org.deephacks.confit.model.BeanId;
import java.io.File;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
public class ConfigTestData {
private static final Conversion CONVERSION = Conversion.get();
public static Grandfather getGrandfather(String id) {
try {
Grandfather gf = new Grandfather(id);
gf.id = id;
gf.prop1 = "value";
gf.prop2 = new HashSet<String>(Arrays.asList("c", "b", "a"));
gf.prop4 = new DateTime("2002-09-24-06:00");
gf.prop5 = new DurationTime("PT15H");
gf.prop8 = new Byte((byte) 1);
gf.prop9 = new Long(1000000000000L);
gf.prop10 = new Short((short) 123);
gf.prop11 = new Float(12313.13);
gf.prop12 = new Double(238.476238746834796);
gf.prop13 = new Boolean(true);
gf.prop14 = TimeUnit.NANOSECONDS;
gf.prop15 = new URL("http://www.deephacks.org");
gf.prop16 = new File(".").getAbsoluteFile();
gf.prop17 = Arrays.asList(new File(".").getAbsoluteFile(),
new File(".").getAbsoluteFile());
gf.prop18 = Arrays.asList(new URL("http://www.deephacks.org"), new URL(
"http://www.google.se"));
gf.prop19 = Arrays.asList(TimeUnit.DAYS, TimeUnit.HOURS);
gf.prop21 = 1;
return gf;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public static Parent getParent(String parentId) {
try {
Parent gf = new Parent(parentId);
gf.id = parentId;
gf.prop1 = "value";
gf.prop2 = new HashSet<String>(Arrays.asList("c", "b", "a"));
gf.prop4 = new DateTime("2002-09-24-06:00");
gf.prop5 = new DurationTime("PT15H");
gf.prop8 = new Byte((byte) 1);
gf.prop9 = new Long(1000000000000L);
gf.prop10 = new Short((short) 123);
gf.prop11 = new Float(12313.13);
gf.prop12 = new Double(238.476238746834796);
gf.prop13 = new Boolean(true);
gf.prop15 = new URL("http://www.deephacks.org");
gf.prop16 = new File(".").getAbsoluteFile();
gf.prop17 = Arrays.asList(new File(".").getAbsoluteFile(),
new File(".").getAbsoluteFile());
gf.prop18 = Arrays.asList(new URL("http://www.deephacks.org"), new URL(
"http://www.google.se"));
gf.prop19 = Arrays.asList(TimeUnit.DAYS, TimeUnit.HOURS);
return gf;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public static Child getChild(String childId) {
try {
Child gf = new Child(childId);
gf.id = childId;
gf.prop2 = new HashSet<String>(Arrays.asList("c", "b", "a"));
gf.prop4 = new DateTime("2002-09-24-06:00");
gf.prop5 = new DurationTime("PT15H");
gf.prop8 = new Byte((byte) 1);
gf.prop9 = new Long(1000000000000L);
gf.prop10 = new Short((short) 123);
gf.prop11 = new Float(12313.13);
gf.prop12 = new Double(238.476238746834796);
gf.prop13 = new Boolean(true);
gf.prop15 = new URL("http://www.deephacks.org");
gf.prop16 = new File(".").getAbsoluteFile();
gf.prop17 = Arrays.asList(new File(".").getAbsoluteFile(),
new File(".").getAbsoluteFile());
gf.prop18 = Arrays.asList(new URL("http://www.deephacks.org"), new URL(
"http://www.google.se"));
gf.prop19 = Arrays.asList(TimeUnit.DAYS, TimeUnit.HOURS);
return gf;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public static final String GRANDFATHER_SCHEMA_NAME = "GrandfatherSchemaName";
@Config(name = GRANDFATHER_SCHEMA_NAME, desc = "a test class")
public static class Grandfather {
@Id(name = "id", desc = "desc")
private String id;
@Config(desc = "prop1Desc")
@Index
private String prop1 = "defaultValue";
@Config(desc = "prop2Desc")
private Set<String> prop2;
@Config(desc = "prop3Desc")
@Index
private List<Integer> prop3 = Arrays.asList(1, 2, 3);
@Config(desc = "prop4Desc")
private DateTime prop4;
@Config(desc = "prop5Desc")
private DurationTime prop5;
@Config(desc = "prop7Desc")
@Index
private List<Parent> prop7;
@Config(desc = "prop8Desc")
private byte prop8;
@Config(desc = "prop9Desc")
private long prop9;
@Config(desc = "prop10Desc")
private short prop10;
@Config(desc = "prop11Desc")
private float prop11;
@Config(desc = "prop12Desc")
@Index
private double prop12;
@Config(desc = "prop13Desc")
private boolean prop13;
@Config(desc = "prop14Desc")
private TimeUnit prop14 = TimeUnit.MICROSECONDS;
@Config(desc = "prop15Desc")
private URL prop15;
@Config(desc = "prop16Desc")
private File prop16;
@Config(desc = "prop17Desc")
private List<File> prop17;
@Config(desc = "prop18Desc")
private List<URL> prop18;
@Config(desc = "prop19Desc")
private List<TimeUnit> prop19 = Arrays.asList(TimeUnit.HOURS, TimeUnit.SECONDS);
@Config(desc = "prop20Desc")
private Map<String, Parent> prop20;
@Config(desc = "prop21Desc")
private int prop21;
public Grandfather() {
}
public Grandfather(String id) {
this.id = id;
}
public BeanId getBeanId() {
return BeanId.create(id, GRANDFATHER_SCHEMA_NAME);
}
public String getId() {
return id;
}
public String getProp1() {
return prop1;
}
public Set<String> getProp2() {
return prop2;
}
public List<Integer> getProp3() {
return prop3;
}
public DateTime getProp4() {
return prop4;
}
public DurationTime getProp5() {
return prop5;
}
public List<Parent> getProp7() {
return prop7;
}
public byte getProp8() {
return prop8;
}
public long getProp9() {
return prop9;
}
public short getProp10() {
return prop10;
}
public float getProp11() {
return prop11;
}
public double getProp12() {
return prop12;
}
public boolean getProp13() {
return prop13;
}
public TimeUnit getProp14() {
return prop14;
}
public URL getProp15() {
return prop15;
}
public File getProp16() {
return prop16;
}
public List<File> getProp17() {
return prop17;
}
public List<URL> getProp18() {
return prop18;
}
public List<TimeUnit> getProp19() {
return prop19;
}
public Map<String, Parent> getProp20() {
return prop20;
}
public int getProp21() {
return prop21;
}
public void setId(String id) {
this.id = id;
}
public void setProp1(String prop1) {
this.prop1 = prop1;
}
public void setProp2(Set<String> prop2) {
this.prop2 = prop2;
}
public void setProp3(List<Integer> prop3) {
this.prop3 = prop3;
}
public void setProp4(DateTime prop4) {
this.prop4 = prop4;
}
public void setProp5(DurationTime prop5) {
this.prop5 = prop5;
}
public void setProp7(List<Parent> prop7) {
this.prop7 = prop7;
}
public void setProp8(byte prop8) {
this.prop8 = prop8;
}
public void setProp9(long prop9) {
this.prop9 = prop9;
}
public void setProp10(short prop10) {
this.prop10 = prop10;
}
public void setProp11(float prop11) {
this.prop11 = prop11;
}
public void setProp12(double prop12) {
this.prop12 = prop12;
}
public void setProp13(boolean prop13) {
this.prop13 = prop13;
}
public void setProp14(TimeUnit prop14) {
this.prop14 = prop14;
}
public void setProp15(URL prop15) {
this.prop15 = prop15;
}
public void setProp16(File prop16) {
this.prop16 = prop16;
}
public void setProp17(List<File> prop17) {
this.prop17 = prop17;
}
public void setProp18(List<URL> prop18) {
this.prop18 = prop18;
}
public void setProp19(List<TimeUnit> prop19) {
this.prop19 = prop19;
}
public void setProp20(Map<String, Parent> prop20) {
this.prop20 = prop20;
}
public void setProp21(int prop21) {
this.prop21 = prop21;
}
public void add(Parent... p) {
if (prop7 == null) {
prop7 = new ArrayList<>();
}
prop7.addAll(Arrays.asList(p));
}
public List<Parent> getParents() {
return prop7;
}
public void resetParents() {
prop7.clear();
}
public void put(Parent p) {
if (prop20 == null) {
prop20 = new HashMap<>();
}
prop20.put(p.id, p);
}
public Bean toBean() {
return ConfigTestData.toBean(this);
}
}
public static final String PARENT_SCHEMA_NAME = "ParentSchemaName";
@Config(name = PARENT_SCHEMA_NAME, desc = "a test class")
public static class Parent {
@Id(desc = "desc")
private String id;
private String prop1 = "defaultValue";
private Set<String> prop2;
private List<Integer> prop3 = Arrays.asList(1, 2, 3);
private DateTime prop4;
private DurationTime prop5;
private Child prop6;
private List<Child> prop7;
private Byte prop8;
private Long prop9;
private Short prop10;
private float prop11;
private Double prop12;
private Boolean prop13;
private TimeUnit prop14;
private URL prop15;
private File prop16;
private List<File> prop17;
private List<URL> prop18;
private List<TimeUnit> prop19;
private Map<String, Child> prop20;
public String getProp1() {
return prop1;
}
public Set<String> getProp2() {
return prop2;
}
public List<Integer> getProp3() {
return prop3;
}
public DateTime getProp4() {
return prop4;
}
public DurationTime getProp5() {
return prop5;
}
public Child getProp6() {
return prop6;
}
public List<Child> getProp7() {
return prop7;
}
public Byte getProp8() {
return prop8;
}
public Long getProp9() {
return prop9;
}
public Short getProp10() {
return prop10;
}
public float getProp11() {
return prop11;
}
public Double getProp12() {
return prop12;
}
public Boolean getProp13() {
return prop13;
}
public TimeUnit getProp14() {
return prop14;
}
public URL getProp15() {
return prop15;
}
public File getProp16() {
return prop16;
}
public List<File> getProp17() {
return prop17;
}
public List<URL> getProp18() {
return prop18;
}
public List<TimeUnit> getProp19() {
return prop19;
}
public Map<String, Child> getProp20() {
return prop20;
}
public void setId(String id) {
this.id = id;
}
public void setProp1(String prop1) {
this.prop1 = prop1;
}
public void setProp2(Set<String> prop2) {
this.prop2 = prop2;
}
public void setProp3(List<Integer> prop3) {
this.prop3 = prop3;
}
public void setProp4(DateTime prop4) {
this.prop4 = prop4;
}
public void setProp5(DurationTime prop5) {
this.prop5 = prop5;
}
public void setProp6(Child prop6) {
this.prop6 = prop6;
}
public void setProp7(List<Child> prop7) {
this.prop7 = prop7;
}
public void setProp8(Byte prop8) {
this.prop8 = prop8;
}
public void setProp9(Long prop9) {
this.prop9 = prop9;
}
public void setProp10(Short prop10) {
this.prop10 = prop10;
}
public void setProp11(float prop11) {
this.prop11 = prop11;
}
public void setProp12(Double prop12) {
this.prop12 = prop12;
}
public void setProp13(Boolean prop13) {
this.prop13 = prop13;
}
public void setProp14(TimeUnit prop14) {
this.prop14 = prop14;
}
public void setProp15(URL prop15) {
this.prop15 = prop15;
}
public void setProp16(File prop16) {
this.prop16 = prop16;
}
public void setProp17(List<File> prop17) {
this.prop17 = prop17;
}
public void setProp18(List<URL> prop18) {
this.prop18 = prop18;
}
public void setProp19(List<TimeUnit> prop19) {
this.prop19 = prop19;
}
public void setProp20(Map<String, Child> prop20) {
this.prop20 = prop20;
}
public void add(Child... c) {
if (prop7 == null) {
prop7 = new ArrayList<Child>();
}
prop7.addAll(Arrays.asList(c));
}
public List<Child> getChilds() {
return prop7;
}
public void resetChilds() {
prop7.clear();
}
public BeanId getBeanId() {
return BeanId.create(id, PARENT_SCHEMA_NAME);
}
public String getId() {
return id;
}
public void set(Child c) {
prop6 = c;
}
public void put(Child c) {
if (prop20 == null) {
prop20 = new HashMap<>();
}
prop20.put(c.id, c);
}
public Parent() {
}
public Parent(String id) {
this.id = id;
}
public Bean toBean() {
return ConfigTestData.toBean(this);
}
}
public static final String CHILD_SCHEMA_NAME = "ChildSchemaName";
@Config(name = CHILD_SCHEMA_NAME, desc = "a test class")
public static class Child {
@Id(desc = "desc")
private String id;
@Config(desc = "prop1Desc")
private String prop1;
@Config(desc = "prop2Desc")
private Set<String> prop2;
@Config(desc = "prop3Desc")
private List<Integer> prop3 = Arrays.asList(1, 2, 3);
@Config(desc = "prop4Desc")
private DateTime prop4;
@Config(desc = "prop5Desc")
private DurationTime prop5;
@Config(desc = "prop8Desc")
private Byte prop8;
@Config(desc = "prop9Desc")
private long prop9 = 100000000;
@Config(desc = "prop10Desc")
private Short prop10;
@Config(desc = "prop11Desc")
private Float prop11;
@Config(desc = "prop12Desc")
private Double prop12;
@Config(desc = "prop13Desc")
private Boolean prop13;
@Config(desc = "prop15Desc")
private URL prop15;
@Config(desc = "prop16Desc")
private File prop16;
@Config(desc = "prop17Desc")
private List<File> prop17;
@Config(desc = "prop18Desc")
private List<URL> prop18;
@Config(desc = "prop19Desc")
private List<TimeUnit> prop19;
public Child(String id) {
this.id = id;
}
public BeanId getBeanId() {
return BeanId.create(id, CHILD_SCHEMA_NAME);
}
public String getId() {
return id;
}
public Child() {
}
public Set<String> getProp2() {
return prop2;
}
public List<Integer> getProp3() {
return prop3;
}
public DateTime getProp4() {
return prop4;
}
public DurationTime getProp5() {
return prop5;
}
public Byte getProp8() {
return prop8;
}
public long getProp9() {
return prop9;
}
public Short getProp10() {
return prop10;
}
public Float getProp11() {
return prop11;
}
public Double getProp12() {
return prop12;
}
public Boolean getProp13() {
return prop13;
}
public URL getProp15() {
return prop15;
}
public File getProp16() {
return prop16;
}
public List<File> getProp17() {
return prop17;
}
public List<URL> getProp18() {
return prop18;
}
public List<TimeUnit> getProp19() {
return prop19;
}
public void setId(String id) {
this.id = id;
}
public void setProp1(String prop1) {
this.prop1 = prop1;
}
public void setProp2(Set<String> prop2) {
this.prop2 = prop2;
}
public void setProp3(List<Integer> prop3) {
this.prop3 = prop3;
}
public void setProp4(DateTime prop4) {
this.prop4 = prop4;
}
public void setProp5(DurationTime prop5) {
this.prop5 = prop5;
}
public void setProp8(Byte prop8) {
this.prop8 = prop8;
}
public void setProp9(long prop9) {
this.prop9 = prop9;
}
public void setProp10(Short prop10) {
this.prop10 = prop10;
}
public void setProp11(Float prop11) {
this.prop11 = prop11;
}
public void setProp12(Double prop12) {
this.prop12 = prop12;
}
public void setProp13(Boolean prop13) {
this.prop13 = prop13;
}
public void setProp15(URL prop15) {
this.prop15 = prop15;
}
public void setProp16(File prop16) {
this.prop16 = prop16;
}
public void setProp17(List<File> prop17) {
this.prop17 = prop17;
}
public void setProp18(List<URL> prop18) {
this.prop18 = prop18;
}
public void setProp19(List<TimeUnit> prop19) {
this.prop19 = prop19;
}
public Bean toBean() {
return ConfigTestData.toBean(this);
}
}
public static final String SINGLETON_SCHEMA_NAME = "SingletonSchemaName";
@Config(name = SINGLETON_SCHEMA_NAME, desc = "")
public static class Singleton {
@Config(desc = "")
private String property;
@Config(desc="")
private Parent parent;
public BeanId getBeanId() {
return BeanId.createSingleton(SINGLETON_SCHEMA_NAME);
}
public String getProperty() {
return property;
}
public Parent getParent() {
return parent;
}
public void setProperty(String property) {
this.property = property;
}
}
public static final String SINGLETON_PARENT_SCHEMA_NAME = "SingletonParentSchemaName";
@Config(name = SINGLETON_PARENT_SCHEMA_NAME, desc = "")
public static class SingletonParent {
@Config(desc = "")
private Singleton singleton;
@Config(desc = "")
private String property;
public SingletonParent() {
}
public String getProperty() {
return property;
}
public Singleton getSingleton() {
return singleton;
}
public void setSingleton(Singleton singleton) {
this.singleton = singleton;
}
}
public static Collection<Bean> toBeans(Object... objects) {
return CONVERSION.convert(Lists.newArrayList(objects), Bean.class);
}
public static Bean toBean(Object object) {
return CONVERSION.convert(object, Bean.class);
}
}