blob: 754514f95016349c9b8e9e3565e4a05ad0dff2d7 [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 object which represents the user-defined contents of a component model
* in a component manifest.
* <p>
* This class may be instantiated and further subclassed.
* </p>
*/
public class ComponentModel extends InstallModel {
// DTD properties (included in install manifest)
private boolean allowUpgrade = false;
private boolean optional = false;
private PluginDescriptorModel[] plugins = new PluginDescriptorModel[0];
private PluginFragmentModel[] fragments = new PluginFragmentModel[0];
/**
* Returns whether this component can be upgraded within its configuration.
*
* @return whether this component is upgradeable
*/
public boolean getAllowUpgrade() {
return allowUpgrade;
}
/**
* Returns whether this component is optional within its configuration.
*
* @return whether this component is optional
*/
public boolean getOptional() {
return optional;
}
/**
* Returns the list of plug-ins managed by this component.
*
* @return the plug-ins in this component
*/
public PluginDescriptorModel[] getPlugins() {
return plugins;
}
/**
* Returns the list of fragments managed by this component.
*
* @return the fragments in this component
*/
public PluginFragmentModel[] getFragments() {
return fragments;
}
/**
* 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 (plugins != null)
for (int i = 0; i < plugins.length; i++)
plugins[i].markReadOnly();
if (fragments != null)
for (int i = 0; i < fragments.length; i++)
fragments[i].markReadOnly();
}
/**
* Sets whether this component can be upgraded within its configuration.
* This object must not be read-only.
*
* @param value whether this component is upgradeable
*/
public void setAllowUpgrade(boolean value) {
assertIsWriteable();
allowUpgrade = value;
}
/**
* Sets whether this component is optional within its configuration.
* This object must not be read-only.
*
* @param value whether this component is optional
*/
public void setOptional(boolean value) {
assertIsWriteable();
optional = value;
}
/**
* Sets the list of plug-ins managed by this component.
* This object must not be read-only.
*
* @param value the plug-ins managed by this component
*/
public void setPlugins(PluginDescriptorModel[] value) {
assertIsWriteable();
plugins = value;
}
/**
* Sets the list of fragments managed by this component.
* This object must not be read-only.
*
* @param value the fragments managed by this component
*/
public void setFragments(PluginFragmentModel[] value) {
assertIsWriteable();
fragments = value;
}
}