blob: 2f3b913d1a1ead339ab31d354b9fecf0f02c3cd0 [file] [log] [blame]
package org.eclipse.core.runtime.model;
/*
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
import org.eclipse.core.runtime.PluginVersionIdentifier;
/**
* An abstract class representing the common parts of the various install
* manifest structures.
* <p>
* This class may not be instantiated but may be further subclassed.
* </p>
*/
public abstract class InstallModel extends PluginModelObject {
// DTD properties (included in install manifest)
private String id = null;
private String version = null;
private String providerName = null;
private String description = null;
private String location = null;
private URLModel[] updates = new URLModel[0];
private URLModel[] discoveries = new URLModel[0];
/**
* Returns the unique identifier of this component model
* or <code>null</code>.
* This identifier is a non-empty string and is unique
* across all components.
*
* @return the unique identifier of this component model
* (e.g. <code>"com.example"</code>) or <code>null</code>.
*/
public String getId() {
return id;
}
/**
* Returns the location of this component.
*
* @return the location of this component or <code>null</code>
*/
public String getLocation() {
return location;
}
/**
* Returns the version name of this component.
*
* @return the version name of this component or <code>null</code>
*/
public String getVersion() {
return version;
}
/**
* Returns the name of the provider who authored this component.
*
* @return name of the provider who authored this component or <code>null</code>
*/
public String getProviderName() {
return providerName;
}
/**
* Returns the description of this component.
*
* @return description of this component or <code>null</code>
*/
public String getDescription() {
return description;
}
/**
* Returns the list of update URLs for this component.
*
* @return the update URLs for this component
*/
public URLModel[] getUpdates() {
return updates;
}
/**
* Returns the list of discovery URLs for this component.
*
* @return the discovery URLs for this component
*/
public URLModel[] getDiscoveries() {
return discoveries;
}
/**
* Sets this model object and all of its descendents to be read-only.
* Subclasses may extend this implementation.
*
* @see #isReadOnly
*/
public void markReadOnly() {
super.markReadOnly();
if (updates != null)
for (int i = 0; i < updates.length; i++)
updates[i].markReadOnly();
if (discoveries != null)
for (int i = 0; i < discoveries.length; i++)
discoveries[i].markReadOnly();
}
/**
* Sets the unique identifier of this component model.
* The identifier is a non-empty string and is unique
* across all components.
* This object must not be read-only.
*
* @param value the unique identifier of this component model (e.g. <code>"com.example"</code>).
* May be <code>null</code>.
*/
public void setId(String value) {
assertIsWriteable();
id = value;
}
/**
* Sets the version name of this component. The version number
* is canonicalized.
* This object must not be read-only.
*
* @param value the version name of this component.
* May be <code>null</code>.
*/
public void setVersion(String value) {
assertIsWriteable();
// XXX workaround because some people still do not use the correct
// version format.
int i = value.indexOf(' ');
if (i > -1)
value = value.substring(0, i);
version = new PluginVersionIdentifier(value).toString();
}
/**
* Sets the name of the provider who authored this component.
* This object must not be read-only.
*
* @param value name of the provider who authored this component.
* May be <code>null</code>.
*/
public void setProviderName(String value) {
assertIsWriteable();
providerName = value;
}
/**
* Sets the description of this component.
* This object must not be read-only.
*
* @param value the description of this component.
* May be <code>null</code>.
*/
public void setDescription(String value) {
assertIsWriteable();
description = value;
}
/**
* Sets the location of this component.
* This object must not be read-only.
*
* @param value the location of this component
*/
public void setLocation(String value) {
assertIsWriteable();
location = value;
}
/**
* Sets the list of update URLs for this component.
* This object must not be read-only.
*
* @param value the update URLs for this component
*/
public void setUpdates(URLModel[] value) {
assertIsWriteable();
updates = value;
}
/**
* Sets the list of discovery URLs for this component.
* This object must not be read-only.
*
* @param value the discovery URLs for this component
*/
public void setDiscoveries(URLModel[] value) {
assertIsWriteable();
discoveries = value;
}
}