Provando a non utilizzare le mappe:
codice:
package beans;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Word {
private String parola;
private String definizione;
public Word(){}
public Word(String parola, String definizione) {
this.parola = parola;
this.definizione = definizione;
}
public String getDef() {
return definizione;
}
public void setDef(String definizione) {
this.definizione = definizione;
}
}
codice:
package beans;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
@XmlAccessorType (XmlAccessType.FIELD)
public class Words {
@XmlElement(name="words")
private List<Word> wordslist;
private static Words instance;
public void Users() {
wordslist = new ArrayList<Word>();
}
//singleton
public synchronized static Words getInstance(){
if(instance==null)
instance = new Words();
return instance;
}
public synchronized List<Word> getWordslist() {
return new ArrayList<>(wordslist);
}
// public void setWordslist(List<Word> wordslist) {this.wordslist = wordslist;}
public synchronized void add(Word w){ wordslist.add(w); }
/*public User getByName(String name){
List<User> usersCopy = getUserslist();
for(User u: usersCopy)
if(u.getName().toLowerCase().equals(name.toLowerCase()))
return u;
return null;
}*/
}
codice:
package services;
import beans.Word;
import beans.Words;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;
@Path("words")
public class WordsService {
//restituisce la lista di parole
@GET
@Produces({"application/json", "application/xml"})
public Response getWordsList(){
return Response.ok(Words.getInstance()).build();
}
//permette di inserire una parola (nome e definizione)
@Path("add")
@POST
@Consumes({"application/json", "application/xml"})
public Response addWord(Word w){
Words.getInstance().add(w);
return Response.ok().build();
}
}