package com.dubture.getcomposer.core.objects;
import com.dubture.getcomposer.core.collection.JsonArray;
/**
* Represents a config entity in a composer package
*
* @see http://getcomposer.org/doc/04-schema.md#config
* @author Thomas Gossmann <gos.si>
*
*/
public class Config extends JsonObject {
/**
* Returns the <code>vendor-bin</code> property.
*
* @return the <code>vendor-bin</code> property
*/
public String getVendorDir() {
return getAsString("vendor-dir");
}
/**
* Sets the <code>vendor-bin</code> property.
*
* @param vendorDir the new <code>vendor-bin</code> value
*/
public void setVendorDir(String vendorDir) {
set("vendor-dir", vendorDir);
}
/**
* Returns the <code>bin-dir</code> property.
*
* @return the <code>bin-dir</code> property
*/
public String getBinDir() {
return getAsString("bin-dir");
}
/**
* Sets the <code>bin-dir</code> property.
*
* @param binDir the new <code>bin-dir</code> value
*/
public void setBinDir(String binDir) {
set("bin-dir", binDir);
}
/**
* Returns the <code>process-timeout</code> property.
*
* @return the <code>process-timeout</code> property
*/
public Integer getProcessTimeout() {
return getAsInteger("process-timeout");
}
/**
* Sets the <code>process-timeout</code> property.
*
* @param processTimeout the new <code>process-timeout</code> value
*/
public void setProcessTimeout(int processTimeout) {
set("process-timeout", processTimeout);
}
/**
* Returns the <code>github-protocols</code> property. If this property
* isn't present in the json, the default value
* <code>["git", "https", "http"]</code> is returned.
*
* @return the <code>github-protocols</code> property
*/
public JsonArray getGithubProtocols() {
JsonArray protocols = getAsArray("github-protocols");
if (protocols == null) {
protocols = new JsonArray();
protocols.add("git");
protocols.add("https");
protocols.add("http");
}
return protocols;
}
/**
* Sets the <code>github-protocols</code> property.
*
* @param githubProtocols the new <code>github-protocols</code> value
*/
public void setGithubProtocols(JsonArray githubProtocols) {
set("github-protocols", githubProtocols);
}
/**
* Sets the <code>notify-on-install</code> property. If this property
* isn't present in the json, the default value <code>true</code>
* is returned.
*
* @return the <code>notify-on-install</code> property
*/
public boolean getNotifyOnInstall() {
if (has("notify-on-install")) {
return getAsBoolean("notify-on-install");
} else {
return true;
}
}
/**
* Set the <code>notify-on-install</code> property.
*
* @param notifyOnInstall the new <code>notify-on-install</code> value
*/
public void setNotifyOnInstall(boolean notifyOnInstall) {
set("notify-on-install", notifyOnInstall);
}
}