added UsersResource and User objects

git-svn-id: svn://anubis/gvsu@278 45c1a28c-8058-47b2-ae61-ca45b979098e
This commit is contained in:
josh 2008-11-29 17:12:16 +00:00
parent 3a2b1ab9b9
commit 0d0ffb45be
2 changed files with 148 additions and 0 deletions

43
cs656/lab4/User.java Normal file
View File

@ -0,0 +1,43 @@
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.restlet.data.MediaType;
import org.restlet.resource.DomRepresentation;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import com.db4o.query.Predicate;
import edu.gvsu.cis.cs656.lab4.server.RegistrationInfo;
public class User extends RegistrationInfo
{
public DomRepresentation getDomRepresentation() throws IOException
{
DomRepresentation rep = new DomRepresentation(MediaType.TEXT_XML);
Document d = rep.getDocument();
Element eltRoot = d.createElement("user");
d.appendChild(eltRoot);
Element eltName = d.createElement("name");
eltName.appendChild(d.createTextNode(getUserName()));
eltRoot.appendChild(eltName);
Element eltHost = d.createElement("host");
eltHost.appendChild(d.createTextNode(getHost()));
eltRoot.appendChild(eltHost);
Element eltPort = d.createElement("port");
eltPort.appendChild(d.createTextNode(getPort()));
eltRoot.appendChild(eltPort);
Element eltStatus = d.createElement("status");
eltStatus.appendChild(
d.createTextNode(getStatus() ? "available" : "away"));
eltRoot.appendChild(eltStatus);
return rep;
}
}

View File

@ -0,0 +1,105 @@
//----------------------------------------------------------------------
//
// 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);
}
}
}