/********************************************************************** * Copyright (c) 2005-2009 ant4eclipse project team. * * 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: * Nils Hartmann, Daniel Kasmeroglu, Gerd Wuetherich **********************************************************************/ package org.ant4eclipse.lib.pde.model.featureproject; import org.osgi.framework.Version; import java.util.List; /** * <p> * A feature is a way of grouping and describing different functionality that makes up a product. Features do not * contain any code. They merely describe a set of plug-ins that provide the function for the feature and information * about how to update it. Features are packaged in a feature archive file and described using a feature manifest. * </p> * * @author Gerd Wütherich (gerd@gerd-wuetherich.de) */ public interface FeatureManifest { /** * <p> * Returns the name of the application. * </p> * * @return The name of the application. */ String getApplication(); /** * <p> * </p> * * @return */ String getColocationAffinity(); /** * @return flag that, if "true", indicates that the feature cannot be installed in a group with other features. */ boolean isExclusive(); /** * @return feature identifier (eg. com.xyz.myfeature), required */ String getId(); /** * Returns the location of an associated image. * * @return The location of an associated image. */ String getImage(); /** * @return locale specification. */ String getLocale(); /** * @return optional machine architecture specification. */ String getMachineArchitecture(); /** * @return operating system specification. */ String getOperatingSystem(); /** * Returns the plugin used for this feature. * * @return The plugin used for this feature. */ String getPlugin(); /** * Returns true if this feature is a primary one. * * @return true <=> This feature is a primary one. */ boolean isPrimary(); /** * @return display label identifying the organization providing this component. */ String getProviderName(); /** * @return component version (eg. 1.0.3), required */ Version getVersion(); /** * Returns the name of the windowing system. * * @return The name of the windowing system. */ String getWindowingSystem(); /** * @return displayable label (name). */ String getLabel(); /** * @return all the referenced plugins. */ List<Plugin> getPlugins(); /** * <p> * </p> * * @return */ List<Includes> getIncludes(); /** * <p> * </p> * * @author Gerd Wütherich (gerd@gerd-wuetherich.de) */ interface Plugin { /** * <p> * </p> * * @return */ String getDownloadSize(); /** * <p> * </p> * * @return */ boolean isFragment(); /** * <p> * </p> * * @return */ String getId(); /** * <p> * </p> * * @return */ String getInstallSize(); /** * <p> * </p> * * @return */ String getLocale(); /** * <p> * </p> * * @return */ String getMachineArchitecture(); /** * <p> * </p> * * @return */ String getOperatingSystem(); /** * <p> * </p> * * @return */ boolean isUnpack(); /** * <p> * </p> * * @return */ Version getVersion(); /** * <p> * </p> * * @return */ String getWindowingSystem(); /** * <p> * </p> * * @return */ boolean hasDownloadSize(); /** * <p> * </p> * * @return */ boolean hasId(); /** * <p> * </p> * * @return */ boolean hasInstallSize(); /** * <p> * </p> * * @return */ boolean hasLocale(); /** * <p> * </p> * * @return */ boolean hasMachineArchitecture(); /** * <p> * </p> * * @return */ boolean hasOperatingSystem(); /** * <p> * </p> * * @return */ boolean hasVersion(); /** * <p> * </p> * * @return */ boolean hasWindowingSystem(); /** * <p> * </p> * * @return */ String getEffectiveVersion(); /** * <p> * </p> * * @param effectiveVersion */ void setEffectiveVersion(String effectiveVersion); } /** * <p> * </p> * * @author Gerd Wütherich (gerd@gerd-wuetherich.de) */ interface Includes { /** * <p> * </p> * * @return the id */ String getId(); /** * <p> * </p> * * @return the version */ Version getVersion(); /** * <p> * </p> * * @return the name */ String getName(); /** * <p> * </p> * * @return the optional */ boolean isOptional(); /** * <p> * </p> * * @return the searchLocation */ String getSearchLocation(); /** * <p> * </p> * * @return the operatingSystem */ String getOperatingSystem(); /** * <p> * </p> * * @return the machineArchitecture */ String getMachineArchitecture(); /** * <p> * </p> * * @return the windowingSystem */ String getWindowingSystem(); /** * <p> * </p> * * @return the locale */ String getLocale(); } }