46b4ab8fec41578067ddcc61407c39da068e38b4
[jalview.git] / src / jalview / json / binding / biojs / BioJSRepositoryPojo.java
1 package jalview.json.binding.biojs;
2
3 import java.util.ArrayList;
4 import java.util.Collection;
5 import java.util.Iterator;
6 import java.util.Objects;
7
8 import org.json.simple.JSONArray;
9 import org.json.simple.JSONObject;
10 import org.json.simple.parser.JSONParser;
11 import org.json.simple.parser.ParseException;
12
13 public class BioJSRepositoryPojo
14 {
15
16   private String description;
17
18   private String latestReleaseVersion;
19
20   private Collection<BioJSReleasePojo> releases = new ArrayList<BioJSReleasePojo>();
21
22   public BioJSRepositoryPojo()
23   {
24   }
25
26   public BioJSRepositoryPojo(String jsonString)
27   {
28     try
29     {
30       parse(jsonString);
31     } catch (ParseException e)
32     {
33       e.printStackTrace();
34     }
35   }
36
37   @SuppressWarnings("unchecked")
38   private void parse(String jsonString) throws ParseException
39   {
40     Objects.requireNonNull(jsonString,
41             "Supplied jsonString must not be null");
42     JSONParser jsonParser = new JSONParser();
43     JSONObject JsonObj = (JSONObject) jsonParser.parse(jsonString);
44     this.description = (String) JsonObj.get("description");
45     this.latestReleaseVersion = (String) JsonObj
46             .get("latestReleaseVersion");
47
48     JSONArray repositoriesJsonArray = (JSONArray) JsonObj
49 .get("releases");
50     for (Iterator<JSONObject> repoIter = repositoriesJsonArray.iterator(); repoIter
51             .hasNext();)
52     {
53       JSONObject repoObj = repoIter.next();
54       BioJSReleasePojo repo = new BioJSReleasePojo();
55       repo.setType((String) repoObj.get("type"));
56       repo.setUrl((String) repoObj.get("url"));
57       repo.setVersion((String) repoObj.get("version"));
58       this.getReleases().add(repo);
59     }
60   }
61
62   public String getDescription()
63   {
64     return description;
65   }
66
67   public void setDescription(String description)
68   {
69     this.description = description;
70   }
71
72
73   public String getLatestReleaseVersion()
74   {
75     return latestReleaseVersion;
76   }
77
78   public void setLatestReleaseVersion(String latestReleaseVersion)
79   {
80     this.latestReleaseVersion = latestReleaseVersion;
81   }
82
83   public Collection<BioJSReleasePojo> getReleases()
84   {
85     return releases;
86   }
87
88   public void setReleases(Collection<BioJSReleasePojo> releases)
89   {
90     this.releases = releases;
91   }
92
93 }