package net.onedaybeard.dominatrix.artemis;
import net.onedaybeard.dominatrix.artemis.JsonComponentFactory.FactoryInstance;
import com.artemis.Component;
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.JsonReader;
import com.badlogic.gdx.utils.JsonValue;
final class UncachedJsonContents implements FactoryInstance
{
private final JsonComponentFactory factory;
private final JsonValue jsonData;
// private final Object jsonData;
public UncachedJsonContents(String json, String componentPackageName)
{
JsonReader jsonReader = new JsonReader();
this.jsonData = jsonReader.parse(json);
factory = new JsonComponentFactory(jsonData, componentPackageName);
}
@Override
public Array<Component> getComponents(String entityType)
{
return factory.getComponents(entityType);
}
@Override
public Array<String> getEntityTypes()
{
return factory.getEntityTypes();
}
@SuppressWarnings("unchecked")
@Override
public Array<JsonValue> getArray(String path)
{
return factory.getArray(path);
}
//
// @SuppressWarnings("unchecked")
// @Override
// public Array<ObjectMap<String, ObjectMap<?, ?>>> getArray(String path)
// {
// return (Array<ObjectMap<String,ObjectMap<?,?>>>)factory.getArray(path);
// }
@Override
// public Array<Component> getComponents(ObjectMap<?,?> data)
public Array<Component> getComponents(JsonValue data)
{
try
{
return factory.getComponents(data);
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
return null;
}
}
}