You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Trait.java 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package model.personnality;
  2. import com.github.cliftonlabs.json_simple.JsonObject;
  3. import com.github.cliftonlabs.json_simple.Jsonable;
  4. import java.io.IOException;
  5. import java.io.StringWriter;
  6. import java.io.Writer;
  7. import java.nio.charset.StandardCharsets;
  8. import static api.JsonKeys.KEY_DESCRIPTION;
  9. import static api.JsonKeys.KEY_NAME;
  10. public class Trait implements Jsonable {
  11. private final String fName;
  12. private final String fDescription;
  13. public Trait(String iName, String iDescription){
  14. fName = iName;
  15. fDescription = iDescription;
  16. }
  17. // ------------------------------------------------------------------
  18. // Jsonable Implementation
  19. // ------------------------------------------------------------------
  20. public JsonObject asJsonObject(){
  21. JsonObject vResult = new JsonObject();
  22. vResult.put(KEY_NAME, fName);
  23. vResult.put(KEY_DESCRIPTION, fDescription);
  24. return vResult;
  25. }
  26. @Override
  27. public String toJson() {
  28. final StringWriter writable = new StringWriter();
  29. try{
  30. this.toJson(writable);
  31. }catch(final IOException caught)
  32. {
  33. caught.printStackTrace();
  34. }
  35. return writable.toString();
  36. }
  37. @Override
  38. public void toJson(Writer writable) throws IOException {
  39. writable.write(new String(asJsonObject().toJson().getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8));
  40. }
  41. }