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