package com.feedly.cassandra.entity.enhance;
import java.lang.reflect.Field;
import java.util.List;
import java.util.Map;
import com.feedly.cassandra.anno.Column;
import com.feedly.cassandra.anno.EmbeddedEntity;
import com.feedly.cassandra.anno.UnmappedColumnHandler;
import com.feedly.cassandra.entity.EntityUtils;
@EmbeddedEntity
public class EmbeddedBean
{
@Column(name="l")
private List<Integer> listProp;
@Column(name="m")
private Map<String, Integer> mapProp;
@Column(name="s", ttl=2)
private String strProp;
@Column(name="d")
private double doubleProp;
@UnmappedColumnHandler
Map<String, Object> unmappedHandler;
public List<Integer> getListProp()
{
return listProp;
}
public void setListProp(List<Integer> listProp)
{
this.listProp = listProp;
}
public Map<String, Integer> getMapProp()
{
return mapProp;
}
public void setMapProp(Map<String, Integer> mapProp)
{
this.mapProp = mapProp;
}
public String getStrProp()
{
return strProp;
}
public void setStrProp(String strProp)
{
this.strProp = strProp;
}
@Override
public boolean equals(Object obj)
{
if(obj instanceof EmbeddedBean)
return EntityUtils.beanFieldsEqual(this, obj);
return false;
}
@Override
public String toString()
{
StringBuilder b = new StringBuilder();
for(Field f : getClass().getDeclaredFields())
{
try
{
b.append(f.getName() + ":" + f.get(this)).append(" ");
}
catch(Exception e)
{
return "error";
}
}
return b.toString();
}
public Map<String, Object> getUnmappedHandler()
{
return unmappedHandler;
}
public void setUnmappedHandler(Map<String, Object> unmappedHandler)
{
this.unmappedHandler = unmappedHandler;
}
public double getDoubleProp()
{
return doubleProp;
}
public void setDoubleProp(double doubleProp)
{
this.doubleProp = doubleProp;
}
}