Merge branch 'bug/JAL-2491' into develop
[jalview.git] / src / jalview / json / binding / biojs / BioJSRepositoryPojo.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3  * Copyright (C) $$Year-Rel$$ The Jalview Authors
4  * 
5  * This file is part of Jalview.
6  * 
7  * Jalview is free software: you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License 
9  * as published by the Free Software Foundation, either version 3
10  * of the License, or (at your option) any later version.
11  *  
12  * Jalview is distributed in the hope that it will be useful, but 
13  * WITHOUT ANY WARRANTY; without even the implied warranty 
14  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
15  * PURPOSE.  See the GNU General Public License for more details.
16  * 
17  * You should have received a copy of the GNU General Public License
18  * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
19  * The Jalview Authors are detailed in the 'AUTHORS' file.
20  */
21 package jalview.json.binding.biojs;
22
23 import java.util.ArrayList;
24 import java.util.Collection;
25 import java.util.Iterator;
26 import java.util.Objects;
27
28 import org.json.simple.JSONArray;
29 import org.json.simple.JSONObject;
30 import org.json.simple.parser.JSONParser;
31 import org.json.simple.parser.ParseException;
32
33 public class BioJSRepositoryPojo
34 {
35
36   private String description;
37
38   private String latestReleaseVersion;
39
40   private Collection<BioJSReleasePojo> releases = new ArrayList<BioJSReleasePojo>();
41
42   public BioJSRepositoryPojo()
43   {
44   }
45
46   public BioJSRepositoryPojo(String jsonString)
47   {
48     try
49     {
50       parse(jsonString);
51     } catch (ParseException e)
52     {
53       e.printStackTrace();
54     }
55   }
56
57   @SuppressWarnings("unchecked")
58   private void parse(String jsonString) throws ParseException
59   {
60     Objects.requireNonNull(jsonString,
61             "Supplied jsonString must not be null");
62     JSONParser jsonParser = new JSONParser();
63     JSONObject JsonObj = (JSONObject) jsonParser.parse(jsonString);
64     this.description = (String) JsonObj.get("description");
65     this.latestReleaseVersion = (String) JsonObj
66             .get("latestReleaseVersion");
67
68     JSONArray repositoriesJsonArray = (JSONArray) JsonObj.get("releases");
69     for (Iterator<JSONObject> repoIter = repositoriesJsonArray.iterator(); repoIter
70             .hasNext();)
71     {
72       JSONObject repoObj = repoIter.next();
73       BioJSReleasePojo repo = new BioJSReleasePojo();
74       repo.setType((String) repoObj.get("type"));
75       repo.setUrl((String) repoObj.get("url"));
76       repo.setVersion((String) repoObj.get("version"));
77       this.getReleases().add(repo);
78     }
79   }
80
81   public String getDescription()
82   {
83     return description;
84   }
85
86   public void setDescription(String description)
87   {
88     this.description = description;
89   }
90
91   public String getLatestReleaseVersion()
92   {
93     return latestReleaseVersion;
94   }
95
96   public void setLatestReleaseVersion(String latestReleaseVersion)
97   {
98     this.latestReleaseVersion = latestReleaseVersion;
99   }
100
101   public Collection<BioJSReleasePojo> getReleases()
102   {
103     return releases;
104   }
105
106   public void setReleases(Collection<BioJSReleasePojo> releases)
107   {
108     this.releases = releases;
109   }
110
111 }