java/nekurak.net-rest/src/java/cz/frantovo/nekurak/rest/ClankyREST.java
author František Kučera <franta-hg@frantovo.cz>
Sun Jun 20 14:46:47 2010 +0200 (2010-06-20)
changeset 145 0efefbf5f8b6
parent 110 c2590a59a02a
permissions -rw-r--r--
Formátování kódu, důsledné používání tabulátorů, drobné úpravy, StringBuilder
     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 }