| /******************************************************************************* |
| * Copyright (c) 2000, 2003 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Common Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/cpl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.update.tests.api; |
| |
| import java.net.URL; |
| |
| import org.eclipse.core.runtime.CoreException; |
| import org.eclipse.update.core.*; |
| import org.eclipse.update.core.model.*; |
| import org.eclipse.update.internal.core.FeatureExecutableContentProvider; |
| /** |
| * Abstract Class that implements most of the behavior of a feature |
| * A feature ALWAYS belongs to an ISite |
| */ |
| public class DefaultFeature extends Feature { |
| |
| |
| /** |
| * Copy constructor |
| */ |
| public DefaultFeature(IFeature sourceFeature, ISite targetSite) throws CoreException { |
| this(targetSite); |
| this.setFeatureContentProvider(sourceFeature.getFeatureContentProvider()); |
| this.setIdentifier(sourceFeature.getVersionedIdentifier()); |
| this.setLabel(sourceFeature.getLabel()); |
| this.setUpdateSiteEntry(sourceFeature.getUpdateSiteEntry()); |
| this.setDiscoverySiteEntries(sourceFeature.getDiscoverySiteEntries()); |
| this.setProvider(sourceFeature.getProvider()); |
| this.setDescription(sourceFeature.getDescription()); |
| this.setCopyright(sourceFeature.getCopyright()); |
| this.setLicense(sourceFeature.getLicense()); |
| this.setPluginEntries(sourceFeature.getPluginEntries()); |
| this.setImage(sourceFeature.getImage()); |
| } |
| |
| /** |
| * Constructor |
| */ |
| public DefaultFeature(ISite targetSite) throws CoreException { |
| super(); |
| this.setSite(targetSite); |
| } |
| |
| |
| /** |
| * Sets the identifier |
| * @param identifier The identifier to set |
| */ |
| public void setIdentifier(VersionedIdentifier identifier) { |
| setFeatureIdentifier(identifier.getIdentifier()); |
| setFeatureVersion(identifier.getVersion().toString()); |
| } |
| |
| /** |
| * Sets the discoverySiteEntries |
| * @param discoveryInfos The discoveryInfos to set |
| */ |
| public void setDiscoverySiteEntries(IURLEntry[] discoveryInfos) { |
| setDiscoverySiteEntryModels((URLEntryModel[]) discoveryInfos); |
| } |
| |
| /** |
| * Sets the updateSiteEntry |
| * @param updateInfo The updateInfo to set |
| */ |
| public void setUpdateSiteEntry(IURLEntry updateInfo) { |
| setUpdateSiteEntryModel((URLEntryModel) updateInfo); |
| } |
| |
| /** |
| * Adds a discoveryInfo |
| * @param discoveryInfo The discoveryInfo to add |
| */ |
| public void addDiscoverySiteEntry(IURLEntry discoveryInfo) { |
| addDiscoverySiteEntryModel((URLEntryModel) discoveryInfo); |
| } |
| |
| /** |
| * Sets the description |
| * @param description The description to set |
| */ |
| public void setDescription(IURLEntry description) { |
| setDescriptionModel((URLEntryModel) description); |
| } |
| |
| /** |
| * Sets the copyright |
| * @param copyright The copyright to set |
| */ |
| public void setCopyright(IURLEntry copyright) { |
| setCopyrightModel((URLEntryModel) copyright); |
| } |
| |
| /** |
| * Sets the license |
| * @param license The license to set |
| */ |
| public void setLicense(IURLEntry license) { |
| setLicenseModel((URLEntryModel) license); |
| } |
| |
| /** |
| * Sets the image |
| * @param image The image to set |
| */ |
| public void setImage(URL image) { |
| if (image==null) return; |
| setImageURLString(image.toExternalForm()); |
| } |
| |
| /** |
| * Adds an import |
| * @param anImport The import to add |
| */ |
| public void addImport(IImport anImport) { |
| if (anImport != null) { |
| addImportModel((ImportModel) anImport); |
| } |
| } |
| |
| |
| /** |
| * Sets the pluginEntries |
| * @param pluginEntries The pluginEntries to set |
| */ |
| public void setPluginEntries(IPluginEntry[] pluginEntries) { |
| if (pluginEntries != null) { |
| for (int i = 0; i < pluginEntries.length; i++) { |
| addPluginEntry(pluginEntries[i]); |
| } |
| } |
| } |
| |
| |
| /** |
| * sets teh URL isf not already present |
| */ |
| public void setURL(URL url) throws CoreException{ |
| //if (getFeatureContentProvider()==null){ |
| FeatureContentProvider contentProvider = new FeatureExecutableContentProvider(url); |
| this.setFeatureContentProvider(contentProvider); |
| contentProvider.setFeature(this); |
| //} |
| } |
| |
| |
| /* |
| * @see IPluginContainer#addPluginEntry(IPluginEntry) |
| */ |
| public void addPluginEntry(IPluginEntry pluginEntry) { |
| if (pluginEntry != null) { |
| addPluginEntryModel((PluginEntryModel) pluginEntry); |
| } |
| } |
| |
| /* |
| * @see IFeature#addNonPluginEntry(INonPluginEntry) |
| */ |
| public void addNonPluginEntry(INonPluginEntry dataEntry) { |
| if (dataEntry != null) { |
| addNonPluginEntryModel((NonPluginEntryModel) dataEntry); |
| } |
| } |
| |
| } |