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