| /******************************************************************************* |
| * Copyright (c) 2000, 2010 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.update.core.model; |
| |
| |
| /** |
| * Plug-in entry model object. |
| * <p> |
| * This class may be instantiated or subclassed by clients. However, in most |
| * cases clients should instead instantiate or subclass the provided |
| * concrete implementation of this model. |
| * </p> |
| * <p> |
| * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to |
| * change significantly before reaching stability. It is being made available at this early stage to solicit feedback |
| * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken |
| * (repeatedly) as the API evolves. |
| * </p> |
| * @see org.eclipse.update.core.PluginEntry |
| * @since 2.0 |
| * @deprecated The org.eclipse.update component has been replaced by Equinox p2. |
| * This API will be deleted in a future release. See bug 311590 for details. |
| */ |
| public class PluginEntryModel extends ContentEntryModel { |
| |
| private String pluginId; |
| private String pluginVersion; |
| private boolean isFragment = false; |
| private boolean unpack = true; |
| |
| /** |
| * Creates a uninitialized plug-in entry model object. |
| * |
| * @since 2.0 |
| */ |
| public PluginEntryModel() { |
| super(); |
| } |
| |
| /** |
| * Compares two plug-in models for equality |
| * |
| * @param obj other model to compare to |
| * @return <code>true</code> if the models are equal, <code>false</code> otherwise |
| * @since 2.0 |
| */ |
| public boolean equals(Object obj) { |
| if (!(obj instanceof PluginEntryModel)) |
| return false; |
| PluginEntryModel model = (PluginEntryModel) obj; |
| |
| return ( |
| (getPluginIdentifier().equals(model.getPluginIdentifier())) |
| && (getPluginVersion().equals(model.getPluginVersion())) |
| && (isFragment() == model.isFragment())); |
| } |
| |
| /** |
| * Returns the plug-in identifier for this entry. |
| * |
| * @return the plug-in identifier, or <code>null</code> |
| * @since 2.0 |
| */ |
| public String getPluginIdentifier() { |
| return pluginId; |
| } |
| |
| /** |
| * Returns the plug-in version for this entry. |
| * |
| * @return the plug-in version, or <code>null</code> |
| * @since 2.0 |
| */ |
| public String getPluginVersion() { |
| return pluginVersion; |
| } |
| |
| /** |
| * Indicates whether the entry describes a full plug-in, or |
| * a plug-in fragment. |
| * |
| * @return <code>true</code> if the entry is a plug-in fragment, |
| * <code>false</code> if the entry is a plug-in |
| * @since 2.0 |
| */ |
| public boolean isFragment() { |
| return isFragment; |
| } |
| |
| /** |
| * Sets the entry plug-in identifier. |
| * Throws a runtime exception if this object is marked read-only. |
| * |
| * @param pluginId the entry identifier. |
| * @since 2.0 |
| */ |
| public void setPluginIdentifier(String pluginId) { |
| assertIsWriteable(); |
| this.pluginId = pluginId; |
| } |
| |
| /** |
| * Sets the entry plug-in version. |
| * Throws a runtime exception if this object is marked read-only. |
| * |
| * @param pluginVersion the entry version. |
| * @since 2.0 |
| */ |
| public void setPluginVersion(String pluginVersion) { |
| assertIsWriteable(); |
| this.pluginVersion = pluginVersion; |
| } |
| |
| /** |
| * Indicates whether this entry represents a fragment or plug-in. |
| * Throws a runtime exception if this object is marked read-only. |
| * |
| * @param isFragment fragment setting |
| * @since 2.0 |
| */ |
| public void isFragment(boolean isFragment) { |
| assertIsWriteable(); |
| this.isFragment = isFragment; |
| } |
| |
| /** |
| * @return Indicates whether plugin should be unpacked during installation |
| * or can run from a jar |
| * @since 3.0 |
| */ |
| public boolean isUnpack() { |
| // TODO this is a candidate for IPluginEntry API |
| return unpack; |
| } |
| /** |
| * @param unpack Sets whether plugin should be unpacked during installation |
| * or can run from a jar |
| * @since 3.0 |
| * |
| */ |
| public void setUnpack(boolean unpack) { |
| // TODO this is a candidate for IPluginEntry API |
| assertIsWriteable(); |
| this.unpack = unpack; |
| } |
| |
| /** |
| * @see Object#toString() |
| */ |
| public String toString() { |
| String msg = (getPluginIdentifier()!=null)?getPluginIdentifier().toString():""; //$NON-NLS-1$ |
| msg += getPluginVersion()!=null?" "+getPluginVersion().toString():""; //$NON-NLS-1$ //$NON-NLS-2$ |
| msg += isFragment()?" fragment":" plugin"; //$NON-NLS-1$ //$NON-NLS-2$ |
| return msg; |
| } |
| |
| } |