@DELETE @Path("/spieler/{spielid}/{spielerid}") public void deleteSpielSpieler( @PathParam("spielid") int spielid, @PathParam("spielerid") int spielerid) throws JAXBException, FileNotFoundException { SpieleSpieler ss = (SpieleSpieler) XmlTools.unmarshal(SpieleSpieler.class); for (SpielSpieler s : ss.getSpielSpieler()) { if (s.getSpielId().intValue() == spielid && s.getSpielerId().intValue() == spielerid) { ss.getSpielSpieler().remove(s); XmlTools.marshal(SpieleSpieler.class, ss); throw new WebApplicationException(Response.Status.NO_CONTENT); } } // Zwar nichts gelöscht, aber egal, nicht dramatisch throw new WebApplicationException(Response.Status.NO_CONTENT); }
/** * Liefert alle Spieler die ein bestimmtes Spiel spielen * * @param id ID des Spiels * @return * @throws JAXBException */ @GET @Path("/{id}/spieler") @Produces(MediaType.APPLICATION_XML) public Spielerdaten getSpielSpieler(@PathParam("id") int id) throws JAXBException { SpieleSpieler spieleSpieler = (SpieleSpieler) XmlTools.unmarshal(SpieleSpieler.class); Spielerdaten spielerdaten = (Spielerdaten) XmlTools.unmarshal(Spielerdaten.class); Spielerdaten spielerdatenNew = new Spielerdaten(); for (SpielSpieler ss : spieleSpieler.getSpielSpieler()) { if (ss.getSpielId().intValue() == id) { for (Spieler s : spielerdaten.getSpieler()) { if (s.getId().intValue() == ss.getSpielerId().intValue()) { spielerdatenNew.getSpieler().add(s); break; } } } } return spielerdatenNew; }
/** * Erstellt eine neue Zuordnung zwischen einem Spiel und einem Spieler, falls diese noch nicht * existiert * * @param src * @throws JAXBException * @throws FileNotFoundException */ @POST @Path("/spieler") @Consumes(MediaType.APPLICATION_XML) public void createSpielSpieler(SpielSpieler src) throws JAXBException, FileNotFoundException, DatatypeConfigurationException { SpieleSpieler spieleSpieler = (SpieleSpieler) XmlTools.unmarshal(SpieleSpieler.class); for (SpielSpieler ss : spieleSpieler.getSpielSpieler()) { // System.out.println("SpielSpieler iteration: ss.spielerid: " + ss.getSpielerId() + " // src.spielerid: " + src.getSpielerId() + " -- ss.spielid: " + ss.getSpielId() + " // src.spielid: " + src.getSpielId()); if (ss.getSpielerId().intValue() == src.getSpielerId().intValue() && ss.getSpielId().intValue() == src.getSpielId().intValue()) { throw new WebApplicationException(Response.Status.CONFLICT); } } XMLGregorianCalendar xgc = DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar()); src.setDatumzeit(xgc); spieleSpieler.getSpielSpieler().add(src); XmlTools.marshal(SpieleSpieler.class, spieleSpieler); throw new WebApplicationException(Response.Status.CREATED); }