package org.zend.php.zendserver.deployment.core.internal.descriptor;
import java.text.MessageFormat;
import java.util.List;
import org.zend.php.zendserver.deployment.core.Messages;
import org.zend.php.zendserver.deployment.core.descriptor.DeploymentDescriptorPackage;
import org.zend.php.zendserver.deployment.core.descriptor.IDeploymentDescriptor;
import org.zend.php.zendserver.deployment.core.descriptor.IDirectiveDependency;
import org.zend.php.zendserver.deployment.core.descriptor.IExtensionDependency;
import org.zend.php.zendserver.deployment.core.descriptor.IPHPDependency;
import org.zend.php.zendserver.deployment.core.descriptor.IPHPLibraryDependency;
import org.zend.php.zendserver.deployment.core.descriptor.IParameter;
import org.zend.php.zendserver.deployment.core.descriptor.IVariable;
import org.zend.php.zendserver.deployment.core.descriptor.IZendComponentDependency;
import org.zend.php.zendserver.deployment.core.descriptor.IZendFramework2Dependency;
import org.zend.php.zendserver.deployment.core.descriptor.IZendFrameworkDependency;
import org.zend.php.zendserver.deployment.core.descriptor.IZendServerDependency;
import org.zend.php.zendserver.deployment.core.descriptor.ProjectType;
import org.zend.php.zendserver.deployment.core.utils.ObjectUtils;
public class DeploymentDescriptor extends ModelContainer implements
IDeploymentDescriptor {
private String name;
private String type;
private String summary;
private String description;
private String releaseVersion;
private String apiVersion;
private String eulaLocation;
private String iconLocation;
private String documentRoot;
private String appDir;
private String scriptsRoot;
private String healthcheck;
private String libDir;
private String updateUrl;
public DeploymentDescriptor() {
super(new Feature[] { DeploymentDescriptorPackage.PKG_TYPE,
DeploymentDescriptorPackage.PKG_NAME,
DeploymentDescriptorPackage.SUMMARY,
DeploymentDescriptorPackage.PKG_DESCRIPTION,
DeploymentDescriptorPackage.VERSION_RELEASE,
DeploymentDescriptorPackage.VERSION_API,
DeploymentDescriptorPackage.ICON,
DeploymentDescriptorPackage.EULA,
DeploymentDescriptorPackage.LIBDIR,
DeploymentDescriptorPackage.APPDIR,
DeploymentDescriptorPackage.DOCROOT,
DeploymentDescriptorPackage.SCRIPTSDIR,
DeploymentDescriptorPackage.HEALTHCHECK,
DeploymentDescriptorPackage.UPDATE_URL }, new Feature[] {
DeploymentDescriptorPackage.DEPENDENCIES_PHP,
DeploymentDescriptorPackage.DEPENDENCIES_EXTENSION,
DeploymentDescriptorPackage.DEPENDENCIES_DIRECTIVE,
DeploymentDescriptorPackage.DEPENDENCIES_ZENDSERVER,
DeploymentDescriptorPackage.DEPENDENCIES_ZSCOMPONENT,
DeploymentDescriptorPackage.DEPENDENCIES_ZENDFRAMEWORK,
DeploymentDescriptorPackage.DEPENDENCIES_ZENDFRAMEWORK2,
DeploymentDescriptorPackage.DEPENDENCIES_LIBRARY,
DeploymentDescriptorPackage.PARAMETERS,
DeploymentDescriptorPackage.VARIABLES,
DeploymentDescriptorPackage.PERSISTENT_RESOURCES });
}
public ProjectType getType() {
return ProjectType.byName(type);
}
public void setType(String type) {
String oldType = this.type;
// type "application" is always represented as null in the model
String newType = (ProjectType.APPLICATION.getName().equals(type)) ? null : type;
// fire the change event only if the type has changed
if (!ObjectUtils.equals(oldType, newType)) {
this.type = newType;
fireChange(DeploymentDescriptorPackage.PKG_TYPE, type, oldType);
}
}
public String getName() {
return name;
}
public void setName(String name) {
String oldName = this.name;
this.name = name;
fireChange(DeploymentDescriptorPackage.PKG_NAME, name, oldName);
}
public String getReleaseVersion() {
return releaseVersion;
}
public void setReleaseVersion(String version) {
String oldValue = this.releaseVersion;
this.releaseVersion = version;
fireChange(DeploymentDescriptorPackage.VERSION_RELEASE, version,
oldValue);
}
public String getEulaLocation() {
return eulaLocation;
}
public void setEulaLocation(String eulaLocation) {
String oldEula = this.eulaLocation;
this.eulaLocation = eulaLocation;
fireChange(DeploymentDescriptorPackage.EULA, eulaLocation, oldEula);
}
public String getIconLocation() {
return iconLocation;
}
public void setIconLocation(String iconLocation) {
String oldIcon = this.iconLocation;
this.iconLocation = iconLocation;
fireChange(DeploymentDescriptorPackage.ICON, iconLocation, oldIcon);
}
public String getDocumentRoot() {
return documentRoot;
}
public void setDocumentRoot(String documentRoot) {
String oldValue = this.documentRoot;
this.documentRoot = documentRoot;
fireChange(DeploymentDescriptorPackage.DOCROOT, documentRoot, oldValue);
}
public String getScriptsRoot() {
return scriptsRoot;
}
public void setScriptsRoot(String scriptsRoot) {
String oldValue = this.scriptsRoot;
this.scriptsRoot = scriptsRoot;
fireChange(DeploymentDescriptorPackage.SCRIPTSDIR, scriptsRoot,
oldValue);
}
public String getHealthcheck() {
return healthcheck;
}
public void setHealthcheck(String healthcheck) {
String oldValue = this.healthcheck;
this.healthcheck = healthcheck;
fireChange(DeploymentDescriptorPackage.HEALTHCHECK, healthcheck,
oldValue);
}
public String getSummary() {
return summary;
}
public String getDescription() {
return description;
}
public void setSummary(String summary) {
String oldValue = this.summary;
this.summary = summary;
fireChange(DeploymentDescriptorPackage.SUMMARY, summary, oldValue);
}
public void setDescription(String description) {
String oldValue = this.description;
this.description = description;
fireChange(DeploymentDescriptorPackage.PKG_DESCRIPTION, description,
oldValue);
}
public void setApiVersion(String value) {
String oldValue = this.apiVersion;
this.apiVersion = value;
fireChange(DeploymentDescriptorPackage.VERSION_API, value, oldValue);
}
public String getApiVersion() {
return apiVersion;
}
public String getApplicationDir() {
return appDir;
}
public void setApplicationDir(String appDir) {
String oldValue = this.appDir;
this.appDir = appDir;
fireChange(DeploymentDescriptorPackage.APPDIR, appDir, oldValue);
}
public String getLibraryDir() {
return libDir;
}
public void setLibraryDir(String libDir) {
String oldValue = this.libDir;
this.libDir = libDir;
fireChange(DeploymentDescriptorPackage.LIBDIR, libDir, oldValue);
}
public String getUpdateUrl() {
return updateUrl;
}
public void setUpdateUrl(String updateUrl) {
String oldValue = this.updateUrl;
this.updateUrl = updateUrl;
fireChange(DeploymentDescriptorPackage.UPDATE_URL, updateUrl, oldValue);
}
public List<IParameter> getParameters() {
return super.getList(DeploymentDescriptorPackage.PARAMETERS);
}
public List<IVariable> getVariables() {
return super.getList(DeploymentDescriptorPackage.VARIABLES);
}
public List<IPHPDependency> getPHPDependencies() {
return super.getList(DeploymentDescriptorPackage.DEPENDENCIES_PHP);
}
public List<IDirectiveDependency> getDirectiveDependencies() {
return super
.getList(DeploymentDescriptorPackage.DEPENDENCIES_DIRECTIVE);
}
public List<IExtensionDependency> getExtensionDependencies() {
return super
.getList(DeploymentDescriptorPackage.DEPENDENCIES_EXTENSION);
}
public List<IZendServerDependency> getZendServerDependencies() {
return super
.getList(DeploymentDescriptorPackage.DEPENDENCIES_ZENDSERVER);
}
public List<IZendComponentDependency> getZendComponentDependencies() {
return super
.getList(DeploymentDescriptorPackage.DEPENDENCIES_ZSCOMPONENT);
}
public List<IZendFrameworkDependency> getZendFrameworkDependencies() {
return super
.getList(DeploymentDescriptorPackage.DEPENDENCIES_ZENDFRAMEWORK);
}
public List<IZendFramework2Dependency> getZendFramework2Dependencies() {
return super
.getList(DeploymentDescriptorPackage.DEPENDENCIES_ZENDFRAMEWORK2);
}
public List<IPHPLibraryDependency> getPHPLibraryDependencies() {
return super
.getList(DeploymentDescriptorPackage.DEPENDENCIES_LIBRARY);
}
public List<String> getPersistentResources() {
return super.getList(DeploymentDescriptorPackage.PERSISTENT_RESOURCES);
}
public void set(Feature key, String value) {
switch (key.id) {
case DeploymentDescriptorPackage.PKG_TYPE_ID:
ProjectType type = ProjectType.byName(value);
if (type != ProjectType.UNKNOWN) {
setType(value);
}
break;
case DeploymentDescriptorPackage.PKG_NAME_ID:
setName(value);
break;
case DeploymentDescriptorPackage.SUMMARY_ID:
setSummary(value);
break;
case DeploymentDescriptorPackage.PKG_DESCRIPTION_ID:
setDescription(value);
break;
case DeploymentDescriptorPackage.VERSION_RELEASE_ID:
setReleaseVersion(value);
break;
case DeploymentDescriptorPackage.VERSION_API_ID:
setApiVersion(value);
break;
case DeploymentDescriptorPackage.EULA_ID:
setEulaLocation(value);
break;
case DeploymentDescriptorPackage.ICON_ID:
setIconLocation(value);
break;
case DeploymentDescriptorPackage.DOCROOT_ID:
setDocumentRoot(value);
break;
case DeploymentDescriptorPackage.SCRIPTSDIR_ID:
setScriptsRoot(value);
break;
case DeploymentDescriptorPackage.HEALTHCHECK_ID:
setHealthcheck(value);
break;
case DeploymentDescriptorPackage.APPDIR_ID:
setApplicationDir(value);
break;
case DeploymentDescriptorPackage.LIBDIR_ID:
setLibraryDir(value);
break;
case DeploymentDescriptorPackage.UPDATE_URL_ID:
setUpdateUrl(value);
break;
default:
throw new IllegalArgumentException(MessageFormat.format(
Messages.DeploymentDescriptor_CannotSetProperty, key));
}
}
public String get(Feature key) {
switch (key.id) {
case DeploymentDescriptorPackage.PKG_TYPE_ID:
return type;
case DeploymentDescriptorPackage.PKG_NAME_ID:
return name;
case DeploymentDescriptorPackage.SUMMARY_ID:
return summary;
case DeploymentDescriptorPackage.PKG_DESCRIPTION_ID:
return description;
case DeploymentDescriptorPackage.VERSION_RELEASE_ID:
return releaseVersion;
case DeploymentDescriptorPackage.VERSION_API_ID:
return apiVersion;
case DeploymentDescriptorPackage.EULA_ID:
return eulaLocation;
case DeploymentDescriptorPackage.ICON_ID:
return iconLocation;
case DeploymentDescriptorPackage.DOCROOT_ID:
return documentRoot;
case DeploymentDescriptorPackage.SCRIPTSDIR_ID:
return scriptsRoot;
case DeploymentDescriptorPackage.HEALTHCHECK_ID:
return healthcheck;
case DeploymentDescriptorPackage.APPDIR_ID:
return appDir;
case DeploymentDescriptorPackage.LIBDIR_ID:
return libDir;
case DeploymentDescriptorPackage.UPDATE_URL_ID:
return updateUrl;
default:
throw new IllegalArgumentException(MessageFormat.format(
Messages.DeploymentDescriptor_CannotSetProperty, key));
}
}
}