package com.googlecode.objectify.impl.save;
import java.lang.reflect.Field;
import java.util.Collection;
import com.googlecode.objectify.ObjectifyFactory;
import com.googlecode.objectify.impl.TypeUtils;
/**
* <p>Knows how to save an embedded collection.</p>
*
* @see EmbeddedMultivalueFieldSaver
*/
public class EmbeddedCollectionFieldSaver extends EmbeddedMultivalueFieldSaver
{
/**
* @see EmbeddedMultivalueFieldSaver#EmbeddedMultivalueFieldSaver(ObjectifyFactory, String, Class, Field, boolean)
*/
public EmbeddedCollectionFieldSaver(ObjectifyFactory fact, String pathPrefix, Class<?> examinedClass, Field field, boolean collectionize)
{
super(fact, pathPrefix, examinedClass, field, collectionize);
assert Collection.class.isAssignableFrom(field.getType());
}
/* (non-Javadoc)
* @see com.googlecode.objectify.impl.save.EmbeddedIteratorFieldSaver#getComponentType()
*/
@Override
protected Class<?> getComponentType()
{
return TypeUtils.getComponentType(this.field.getType(), this.field.getGenericType());
}
/* (non-Javadoc)
* @see com.googlecode.objectify.impl.save.EmbeddedIteratorFieldSaver#asCollection(java.lang.Object)
*/
@Override
@SuppressWarnings("unchecked")
protected Collection<Object> asCollection(Object arrayOrCollection)
{
return (Collection<Object>)arrayOrCollection;
}
}