//---------------------------------------------------------------------- // // Filename: UsersResource.java // Description: // // $Id:$ // //---------------------------------------------------------------------- import java.io.IOException; import org.restlet.Context; import org.restlet.data.Form; import org.restlet.data.MediaType; import org.restlet.data.Request; import org.restlet.data.Response; import org.restlet.resource.Resource; import org.restlet.data.Status; import org.restlet.resource.DomRepresentation; import org.restlet.resource.Representation; import org.restlet.resource.Variant; public class UsersResource extends Resource { public UsersResource(Context context, Request request, Response response) { super(context, request, response); getVariants().add(new Variant(MediaType.TEXT_XML)); } /** * handle HTTP GET requests. */ @Override public Representation getRepresentation(Variant variant) { DomRepresentation rep = null; if (variant.getMediaType().equals(MediaType.TEXT_XML)) { try { rep = new DomRepresentation(MediaType.TEXT_XML); getResponse().setStatus(Status.CLIENT_ERROR_NOT_FOUND); rep.getDocument().normalizeDocument(); } catch (IOException e) { e.printStackTrace(); } } return rep; } @Override public boolean allowDelete() { return false; } @Override public boolean allowPut() { return false; } @Override public boolean allowPost() { return true; } /** * Handle HTTP POST. Create a new book resource. */ @Override public void post(Representation entity) { if (entity.getMediaType().equals(MediaType.APPLICATION_WWW_FORM, true)) { // Parse the entity as a web form Form form = new Form(entity); // create a new User object Book book = new Book(); book.setId(form.getFirstValue("book[id]")); book.setAuthors(form.getFirstValue("book[authors]")); book.setIsbn(form.getFirstValue("book[isbn]")); book.setTitle(form.getFirstValue("book[title]")); book.setPublisher(form.getFirstValue("book[publisher]")); book.setYear(form.getFirstValue("book[year]")); getResponse().setStatus(Status.SUCCESS_CREATED); // commit the changes. getContainer().set(book); getContainer().commit(); } else { getResponse().setStatus(Status.CLIENT_ERROR_NOT_FOUND); } } }