package pl.matisoft.soy.data;
import com.google.common.base.Optional;
import com.google.template.soy.data.SoyMapData;
import javax.annotation.Nullable;
import java.util.Map;
/**
* Created with IntelliJ IDEA.
* User: mati
* Date: 22/06/2013
* Time: 12:04
*
* An implementation that will not convert model to SoyMapData but rather
* it will return a SoyMapData, in case a passed in model happens to be a SoyMapData
* object itself.
*/
public class NoConvertSoyDataConverter implements ToSoyDataConverter {
/**
* Pass a model object and return a SoyMapData if a model object happens
* to be a SoyMapData.
*
* An implementation will also check if a passed in object is a Map and return
* a SoyMapData wrapping that map
*/
@Override
public Optional<SoyMapData> toSoyMap(@Nullable final Object model) throws Exception {
if (model instanceof SoyMapData) {
return Optional.of((SoyMapData) model);
}
if (model instanceof Map) {
return Optional.of(new SoyMapData(model));
}
return Optional.of(new SoyMapData());
}
}