5c79e51ff24d7ebf86760a7e4d182becca5b3ced
[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.get("releases");
49     for (Iterator<JSONObject> repoIter = repositoriesJsonArray.iterator(); repoIter
50             .hasNext();)
51     {
52       JSONObject repoObj = repoIter.next();
53       BioJSReleasePojo repo = new BioJSReleasePojo();
54       repo.setType((String) repoObj.get("type"));
55       repo.setUrl((String) repoObj.get("url"));
56       repo.setVersion((String) repoObj.get("version"));
57       this.getReleases().add(repo);
58     }
59   }
60
61   public String getDescription()
62   {
63     return description;
64   }
65
66   public void setDescription(String description)
67   {
68     this.description = description;
69   }
70
71   public String getLatestReleaseVersion()
72   {
73     return latestReleaseVersion;
74   }
75
76   public void setLatestReleaseVersion(String latestReleaseVersion)
77   {
78     this.latestReleaseVersion = latestReleaseVersion;
79   }
80
81   public Collection<BioJSReleasePojo> getReleases()
82   {
83     return releases;
84   }
85
86   public void setReleases(Collection<BioJSReleasePojo> releases)
87   {
88     this.releases = releases;
89   }
90
91 }