java/nekurak.net-rest/src/java/cz/frantovo/nekurak/rest/ClankyREST.java
author František Kučera <franta-hg@frantovo.cz>
Tue Apr 06 02:38:47 2010 +0200 (2010-04-06)
changeset 96 9f6225d83611
parent 94 ac4a5fc868eb
child 110 c2590a59a02a
permissions -rw-r--r--
REST: fungují všechny metody.
     1 package cz.frantovo.nekurak.rest;
     2 
     3 import cz.frantovo.nekurak.dto.Clanek;
     4 import cz.frantovo.nekurak.web.HledacSluzby;
     5 import cz.frantovo.nekurak.xml.ClanekXML;
     6 import java.util.ArrayList;
     7 import java.util.Collection;
     8 import javax.ws.rs.Consumes;
     9 import javax.ws.rs.DELETE;
    10 import javax.ws.rs.GET;
    11 import javax.ws.rs.POST;
    12 import javax.ws.rs.PUT;
    13 import javax.ws.rs.Path;
    14 import javax.ws.rs.PathParam;
    15 import javax.ws.rs.Produces;
    16 
    17 @Path("clanek")
    18 public class ClankyREST {
    19 
    20     private static final String MIME_XML = "text/xml";
    21     private static final String MIME_TEXT = "text/plain";
    22     private HledacSluzby hledac = new HledacSluzby();
    23 
    24     /** Vypíšeme seznam všech článků v systému */
    25     @GET
    26     @Path("/")
    27     @Produces(MIME_XML)
    28     public Collection<ClanekXML> seznam() {
    29 	Collection<ClanekXML> vysledek = new ArrayList<ClanekXML>();
    30 	Collection<Clanek> clanky = hledac.getClanekEJB().getClanky();
    31 
    32 	for (Clanek c : clanky) {
    33 	    vysledek.add(new ClanekXML(c));
    34 	}
    35 
    36 	return vysledek;
    37     }
    38 
    39     /** Získáme konkrétní článek */
    40     @GET
    41     @Path("/{id}")
    42     @Produces(MIME_XML)
    43     public ClanekXML ziskej(@PathParam("id") int id) {
    44 	Clanek c = hledac.getClanekEJB().getClanek(id);
    45 	return new ClanekXML(c);
    46     }
    47 
    48     /**
    49      * Vložíme nový článek
    50      * @return ID založeného článku (návratový typ musí být String – ne int)
    51      */
    52     @POST
    53     @Consumes(MIME_XML)
    54     @Produces(MIME_TEXT)
    55     public String zaloz(ClanekXML xml) {
    56 	int id = hledac.getClanekEJB().zalozClanek(xml.getClanek());
    57 	return id + "\n";
    58     }
    59 
    60     /** Aktualizujeme článek */
    61     @PUT
    62     @Consumes(MIME_XML)
    63     @Path("/{id}")
    64     public void uprav(@PathParam("id") int id, ClanekXML xml) {
    65 	xml.setId(id);
    66 	hledac.getClanekEJB().upravClanek(xml.getClanek());
    67     }
    68 
    69     /** Smažeme článek */
    70     @DELETE
    71     @Path("/{id}")
    72     public void smaz(@PathParam("id") int id) {
    73 	Clanek c = new Clanek();
    74 	c.setId(id);
    75 	hledac.getClanekEJB().smazClanek(c);
    76     }
    77 }