ad50305972068c110348b10d8b2c83a0f53b0db4
[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 jalview.util.JSONUtils;
24
25 import java.util.ArrayList;
26 import java.util.Collection;
27 import java.util.Iterator;
28 import java.util.List;
29 import java.util.Map;
30 import java.util.Objects;
31
32 import org.json.simple.parser.ParseException;
33
34 public class BioJSRepositoryPojo
35 {
36
37   private String description;
38
39   private String latestReleaseVersion;
40
41   private Collection<BioJSReleasePojo> releases = new ArrayList<BioJSReleasePojo>();
42
43   public BioJSRepositoryPojo()
44   {
45   }
46
47   public BioJSRepositoryPojo(String jsonString)
48   {
49     try
50     {
51       parse(jsonString);
52     } catch (ParseException e)
53     {
54       e.printStackTrace();
55     }
56   }
57
58   @SuppressWarnings("unchecked")
59   private void parse(String jsonString) throws ParseException
60   {
61     Objects.requireNonNull(jsonString,
62             "Supplied jsonString must not be null");
63     Map<String, Object> JsonObj = (Map<String, Object>) JSONUtils.parse(jsonString);
64     this.description = (String) JsonObj.get("description");
65     this.latestReleaseVersion = (String) JsonObj
66             .get("latestReleaseVersion");
67
68     List<Object> repositoriesJsonArray = (List<Object>) JsonObj.get("releases");
69     for (Iterator<Object> repoIter = repositoriesJsonArray
70             .iterator(); repoIter.hasNext();)
71     {
72       Map<String, Object> repoObj = (Map<String, Object>) 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 }