package ilarkesto.gwt.client; import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import com.google.gwt.user.client.rpc.IsSerializable; /** * This class is for transporting data from the scrum server to the GWT client. */ public abstract class ADataTransferObject implements Serializable, IsSerializable { public String entityIdBase; public Boolean developmentMode; private List<String> errors; public Integer conversationNumber; private String userId; private Set<String> deletedEntities; private Map<String, Map> entities; // dummys required for gwt-serialization private int dummyI; private Integer dummyInteger; private float dummyF; private Float dummyFloat; public void clear() { entities = null; deletedEntities = null; } public void addError(String error) { if (errors == null) errors = new ArrayList<String>(1); errors.add(error); } public List<String> getErrors() { return errors; } public void setUserId(String user) { this.userId = user; } public String getUserId() { return userId; } public boolean isUserSet() { return userId != null; } public final boolean containsEntities() { return entities != null && !entities.isEmpty(); } public final boolean containsEntity(String entityId) { return entities.containsKey(entityId); } public final void addEntity(Map data) { if (entities == null) entities = new HashMap<String, Map>(); entities.put((String) data.get("id"), data); } public final Collection<Map> getEntities() { return entities.values(); } public final boolean containsDeletedEntities() { return deletedEntities != null && !deletedEntities.isEmpty(); } public final void addDeletedEntity(String entityId) { if (deletedEntities == null) deletedEntities = new HashSet<String>(); deletedEntities.add(entityId); } public final Set<String> getDeletedEntities() { return deletedEntities; } }