package net.sf.eclipsefp.haskell.buildwrapper.types;
import java.util.HashSet;
import java.util.Set;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
/**
*
* @author JP Moresmau
*
*/
public class CabalPackage {
private String name;
private String version;
private boolean exposed;
private Component[] components;
private Set<String> modules=new HashSet<>();
public CabalPackage(){
}
public CabalPackage(JSONObject obj) throws JSONException {
name=obj.getString("name");
version=obj.getString("version");
exposed=obj.getBoolean("exposed");
JSONArray arr=obj.getJSONArray("dependent");
components=new Component[arr.length()];
for (int a=0;a<arr.length();a++){
components[a]=new Component(arr.getJSONObject(a));
}
arr=obj.getJSONArray("modules");
modules=new HashSet<>(arr.length());
for (int a=0;a<arr.length();a++){
modules.add(arr.getString(a));
}
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
public boolean isExposed() {
return exposed;
}
public void setExposed(boolean exposed) {
this.exposed = exposed;
}
public Component[] getComponents() {
return components;
}
public void setComponents(Component[] components) {
this.components = components;
}
@Override
public String toString() {
return name+((version!=null && version.length()>0)?"-"+version:"");
}
public Set<String> getModules() {
return modules;
}
}