/*
* *************************************************************************************
* Copyright (C) 2008 EsperTech, Inc. All rights reserved. *
* http://esper.codehaus.org *
* http://www.espertech.com *
* ---------------------------------------------------------------------------------- *
* The software in this package is published under the terms of the GPL license *
* a copy of which has been included with this distribution in the license.txt file. *
* *************************************************************************************
*/
package com.espertech.esper.support.bean;
import java.util.*;
import java.io.Serializable;
public class SupportBeanComplexProps implements Serializable, SupportMarkerInterface
{
private String simpleProperty;
private Properties mappedProps;
private int[] indexedProps;
private SupportBeanSpecialGetterNested nested;
private Map<String, String> mapProperty;
private int[] arrayProperty;
private Object[] objectArray;
public static String[] PROPERTIES =
{ "simpleProperty", "mapped", "indexed", "mapProperty", "arrayProperty", "nested", "objectArray"};
public static SupportBeanComplexProps makeDefaultBean()
{
Properties properties = new Properties();
properties.put("keyOne", "valueOne");
properties.put("keyTwo", "valueTwo");
Map<String, String> mapProp = new HashMap<String, String>();
mapProp.put("xOne", "yOne");
mapProp.put("xTwo", "yTwo");
int[] arrayProp = new int[] {10, 20, 30};
return new SupportBeanComplexProps("simple", properties, new int[] {1, 2}, mapProp, arrayProp, "nestedValue", "nestedNestedValue");
}
public SupportBeanComplexProps()
{
}
public SupportBeanComplexProps(int[] indexedProps)
{
this.indexedProps = indexedProps;
}
public SupportBeanComplexProps(String simpleProperty, Properties mappedProps, int[] indexedProps, Map<String, String> mapProperty, int[] arrayProperty, String nestedValue, String nestedNestedValue)
{
this.simpleProperty = simpleProperty;
this.mappedProps = mappedProps;
this.indexedProps = indexedProps;
this.mapProperty = mapProperty;
this.arrayProperty = arrayProperty;
this.nested = new SupportBeanSpecialGetterNested(nestedValue, nestedNestedValue);
}
public String getSimpleProperty()
{
return simpleProperty;
}
public void setSimpleProperty(String simpleProperty)
{
this.simpleProperty = simpleProperty;
}
public Map<String, String> getMapProperty()
{
return mapProperty;
}
public String getMapped(String key)
{
return (String) mappedProps.get(key);
}
public int getIndexed(int index)
{
return indexedProps[index];
}
public SupportBeanSpecialGetterNested getNested()
{
return nested;
}
public int[] getArrayProperty()
{
return arrayProperty;
}
public void setIndexed(int index, int value)
{
indexedProps[index] = value;
}
public void setArrayProperty(int[] arrayProperty)
{
this.arrayProperty = arrayProperty;
}
public void setIndexedProps(int[] indexedProps)
{
this.indexedProps = indexedProps;
}
public void setMappedProps(Properties mappedProps)
{
this.mappedProps = mappedProps;
}
public void setMapProperty(Map<String, String> mapProperty)
{
this.mapProperty = mapProperty;
}
public void setNested(SupportBeanSpecialGetterNested nested)
{
this.nested = nested;
}
public Object[] getObjectArray()
{
return objectArray;
}
public void setObjectArray(Object[] objectArray)
{
this.objectArray = objectArray;
}
public static class SupportBeanSpecialGetterNested implements Serializable
{
private String nestedValue;
private SupportBeanSpecialGetterNestedNested nestedNested;
public SupportBeanSpecialGetterNested(String nestedValue, String nestedNestedValue)
{
this.nestedValue = nestedValue;
this.nestedNested = new SupportBeanSpecialGetterNestedNested(nestedNestedValue);
}
public String getNestedValue()
{
return nestedValue;
}
public void setNestedValue(String nestedValue)
{
this.nestedValue = nestedValue;
}
public SupportBeanSpecialGetterNestedNested getNestedNested()
{
return nestedNested;
}
public boolean equals(Object o)
{
if (this == o)
{
return true;
}
if (o == null || getClass() != o.getClass())
{
return false;
}
SupportBeanSpecialGetterNested that = (SupportBeanSpecialGetterNested) o;
if (!nestedValue.equals(that.nestedValue))
{
return false;
}
return true;
}
public int hashCode()
{
return nestedValue.hashCode();
}
}
public static class SupportBeanSpecialGetterNestedNested implements Serializable
{
private String nestedNestedValue;
public SupportBeanSpecialGetterNestedNested(String nestedNestedValue)
{
this.nestedNestedValue = nestedNestedValue;
}
public String getNestedNestedValue()
{
return nestedNestedValue;
}
public void setNestedNestedValue(String nestedNestedValue)
{
this.nestedNestedValue = nestedNestedValue;
}
}
}