GenericModelManagementApi.java

package eu.javaexperience.webgsdb.frontend;

import eu.javaexperience.datareprez.DataArray;
import eu.javaexperience.datareprez.DataObject;
import eu.javaexperience.gsdbrpc.api.RemoteGsdbApi;
import eu.javaexperience.interfaces.simple.publish.SimplePublish2;
import eu.javaexperience.rpc.client.JvxClientException;

public class GenericModelManagementApi extends eu.teasite.frontend.api.ApiInterface implements RemoteGsdbApi
{
	public void select(SimplePublish2<eu.javaexperience.datareprez.DataArray, JvxClientException> callback, java.lang.String a, eu.javaexperience.datareprez.DataObject b, eu.javaexperience.datareprez.DataArray c)
	{
		transfer.publish(pack("select", a, b, c), (SimplePublish2) callback);
	}

	public eu.javaexperience.datareprez.DataArray select(java.lang.String a, eu.javaexperience.datareprez.DataObject b, eu.javaexperience.datareprez.DataArray c)
	{
		return (eu.javaexperience.datareprez.DataArray) transfer.transmitSync(pack("select", a, b, c));
	}

	public void getManagedModels(SimplePublish2<DataArray, JvxClientException> callback)
	{
		transfer.publish(pack("getManagedModels"), (SimplePublish2) callback);
	}
	
	protected static String[] extract(DataArray arr)
	{
		String[] ret = new String[arr.size()];
		for(int i=0;i<ret.length;i++)
		{
			ret[i] = arr.getString(i);
		}
		return ret;
	}

	public String[] getManagedModels() throws JvxClientException
	{
		return extract((DataArray) transfer.transmitSync(pack("getManagedModels")));
	}

	public void getById(SimplePublish2<eu.javaexperience.datareprez.DataObject, JvxClientException> callback, java.lang.String a, long b)
	{
		transfer.publish(pack("getById", a, b), (SimplePublish2) callback);
	}

	public eu.javaexperience.datareprez.DataObject getById(java.lang.String a, long b) throws JvxClientException
	{
		return (eu.javaexperience.datareprez.DataObject) transfer.transmitSync(pack("getById", a, b));
	}

	public void update(SimplePublish2<eu.javaexperience.datareprez.DataObject, JvxClientException> callback, java.lang.String a, eu.javaexperience.datareprez.DataObject b)
	{
		transfer.publish(pack("update", a, b), (SimplePublish2) callback);
	}

	public eu.javaexperience.datareprez.DataObject update(java.lang.String a, eu.javaexperience.datareprez.DataObject b)
	{
		return (eu.javaexperience.datareprez.DataObject) transfer.transmitSync(pack("update", a, b));
	}

	public void create(SimplePublish2<eu.javaexperience.datareprez.DataObject, JvxClientException> callback, java.lang.String a, eu.javaexperience.datareprez.DataObject b)
	{
		transfer.publish(pack("create", a, b), (SimplePublish2) callback);
	}

	public eu.javaexperience.datareprez.DataObject create(java.lang.String a, eu.javaexperience.datareprez.DataObject b)
	{
		return (eu.javaexperience.datareprez.DataObject) transfer.transmitSync(pack("create", a, b));
	}

	public void delete(SimplePublish2<eu.javaexperience.datareprez.DataObject, JvxClientException> callback, java.lang.String a, long b, eu.javaexperience.datareprez.DataObject c)
	{
		transfer.publish(pack("delete", a, b, c), (SimplePublish2) callback);
	}

	public eu.javaexperience.datareprez.DataObject delete(java.lang.String a, long b, eu.javaexperience.datareprez.DataObject c) throws JvxClientException
	{
		return (eu.javaexperience.datareprez.DataObject) transfer.transmitSync(pack("delete", a, b, c));
	}

	@Override
	public eu.javaexperience.datareprez.DataObject getModelMetadata(String a)
	{
		return (eu.javaexperience.datareprez.DataObject) transfer.transmitSync(pack("getModelMetadata", a));
	}

	@Override
	public DataArray getAllAccessableClass()
	{
		return (eu.javaexperience.datareprez.DataArray) transfer.transmitSync(pack("getAllAccessableClass"));
	}

	@Override
	public DataArray getPermissions()
	{
		return (eu.javaexperience.datareprez.DataArray) transfer.transmitSync(pack("getPermissions"));
	}

	@Override
	public void fork(String name)
	{
		transfer.transmitSync(pack("fork", name));
	}

	@Override
	public DataObject operation(String cls, long id, String operation, DataObject instructions)
	{
		return transfer.transmitSync(pack("operation", cls, id, operation, instructions));
	}
}