/**
*
*/
package xapi.test.model.content;
import xapi.collect.api.StringTo;
import xapi.collect.impl.StringToAbstract;
import xapi.model.content.ModelText;
import xapi.model.impl.AbstractModel;
import java.util.TreeMap;
/**
* @author James X. Nelson (james@wetheinter.net, @james)
*
*/
public class ModelTextTest extends AbstractModel implements ModelText {
@Override
public String getText() {
return (String) map.get("text");
}
@Override
public ModelText setText(final String text) {
map.put("text", text);
return this;
}
/**
* @see xapi.model.content.ModelText#getTime()
*/
@Override
public double getTime() {
final Double time = (Double) map.get("time");
if (time == null) {
return 0;
}
return time.doubleValue();
}
/**
* @see xapi.model.content.ModelText#setTime(double)
*/
@Override
public ModelText setTime(final double time) {
map.put("time", time);
return this;
}
@Override
public Class<?> getPropertyType(final String key) {
switch (key) {
case "time":
return double.class;
case "text":
return String.class;
}
// will throw an exception, unless our supertype was replaced / enhanced
return super.getPropertyType(key);
}
@Override
public String[] getPropertyNames() {
return new String[]{"text", "time"};
}
@Override
protected StringTo<Object> newStringMap() {
// We need to manually enforce ordering for our tests.
// The order of the iterable of this map must match the order of the keys returned by getPropertyNames();
return new StringToAbstract<Object>(Object.class, new TreeMap<String, Object>());
}
}