package cactusServer.resources; import javax.ws.rs.FormParam; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import org.ntlab.radishforandroidstudio.framework.model3D.Position3D; import org.ntlab.radishforandroidstudio.framework.model3D.Quaternion3D; import org.ntlab.radishforandroidstudio.framework.physics.AngularVelocity3D; import org.ntlab.radishforandroidstudio.framework.physics.Velocity3D; import cactusServer.entities.Angle; import cactusServer.entities.IDAddressedEntity; import cactusServer.entities.Instance; import cactusServer.entities.URIAddressedEntity; import cactusServer.entities.Object.Attribute; import cactusServer.models.Instances; @Path("/instances/{instanceId}/objects") public class ObjectsRest { // @Path("/{instanceId}/objects/{objectId}") @Path("/{objectId}") @GET @Produces(MediaType.APPLICATION_JSON) public Object getObject(@PathParam("instanceId") String instanceId, @PathParam("objectId") String objectId) { Instance instance = Instances.getInstance().getInstance(instanceId); if (instance != null) { return instance.getObject(objectId); } return null; } // @Path("/{instanceId}/objects") @POST @Produces(MediaType.APPLICATION_JSON) public URIAddressedEntity createObject(@PathParam("instanceId") String instanceId, @FormParam("position") Position3D position, @FormParam("velocity") Velocity3D velocity, @FormParam("angularVelocity") AngularVelocity3D angularVelocity, @FormParam("angle") Quaternion3D angle, @FormParam("attribute") Attribute attribute, @FormParam("model") String model) { Instance instance = Instances.getInstance().getInstance(instanceId); IDAddressedEntity ae = instance.createObject(position, velocity, angularVelocity, angle, attribute, model); return new URIAddressedEntity((InstancesRest.INSTANCES_URI + "/" + instanceId + "/objects/" + ae.getId()), ae.getBody()); } ///////////////////////////////////////////// //@Path("/{instanceId}/objects/{objectId}") // @Path("/{objectId}") // @PUT // @Produces(MediaType.APPLICATION_JSON) // public Object updateObject(@FormParam("position") Position3D position, // @FormParam("velocity") Velocity3D velocity, // @FormParam("angularVelocity") AngularVelocity3D angularVelocity, // @FormParam("angle") Quaternion3D angle) { // Instance instance = Instances.getInstance().getInstance(instanceId); // if (instance != null) { // return instance.getObject(objectId); // } // return null; //} // } }