DataArrayJavaImpl.java
package eu.javaexperience.datareprez.javaImpl;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import eu.javaexperience.collection.CollectionTools;
import eu.javaexperience.datareprez.abstractImpl.DataArrayAbstractImpl;
import eu.javaexperience.datareprez.abstractImpl.DataProtocol;
import eu.javaexperience.io.SerializationTools;
public class DataArrayJavaImpl extends DataArrayAbstractImpl
{
/**
*
*/
private static final long serialVersionUID = 1L;
protected List<Object> arr;
public DataArrayJavaImpl()
{
this.arr = new ArrayList<>();
}
public DataArrayJavaImpl(List<Object> objects)
{
this.arr = objects;
}
@Override
public String toString()
{
return "DataArrayJavaImpl: "+CollectionTools.toString(arr);
}
@Override
public Class getCommonsClass()
{
return DataCommonJavaImpl.PROTOTYPE.getCommonsClass();
}
@Override
protected <T> void setSubjectValue(int index, Class<T> cls, T value)
{
if(null == value && null == cls)
{
arr.remove(index);
}
else
{
arr.add(index, DataCommonJavaImpl.wrapObjectToStore(value, cls));
}
}
@Override
protected <T> T getValueAs(int index, Class<T> cls)
{
return DataCommonJavaImpl.castToType(arr.get(index), cls);
}
@Override
protected DataProtocol getProtocolHandler()
{
return DataCommonJavaImpl.PROTOCOL;
}
@Override
public Object getImpl()
{
return arr;
}
@Override
public byte[] toBlob()
{
return SerializationTools.serializeIntoBlob((Serializable) arr);
}
@Override
public Iterator<Object> iterator()
{
return arr.iterator();
}
@Override
public int size()
{
return arr.size();
}
}