/******************************************************************************* * Copyright (c) 2008-2010 Sonatype, Inc. * 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: * Sonatype, Inc. - initial API and implementation *******************************************************************************/ package org.eclipse.m2e.model.edit.pom; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; /** * <!-- begin-user-doc --> A representation of the model object ' <em><b>Dependency</b></em>'. <!-- end-user-doc --> * <!-- begin-model-doc --> 3.0.0+ <!-- end-model-doc --> * <p> * The following features are supported: * <ul> * <li>{@link org.eclipse.m2e.model.edit.pom.Dependency#getGroupId <em>Group Id </em>}</li> * <li>{@link org.eclipse.m2e.model.edit.pom.Dependency#getArtifactId <em>Artifact Id</em>}</li> * <li>{@link org.eclipse.m2e.model.edit.pom.Dependency#getVersion <em>Version </em>}</li> * <li>{@link org.eclipse.m2e.model.edit.pom.Dependency#getType <em>Type</em>}</li> * <li>{@link org.eclipse.m2e.model.edit.pom.Dependency#getClassifier <em> Classifier</em>}</li> * <li>{@link org.eclipse.m2e.model.edit.pom.Dependency#getScope <em>Scope</em>}</li> * <li>{@link org.eclipse.m2e.model.edit.pom.Dependency#getSystemPath <em>System Path</em>}</li> * <li>{@link org.eclipse.m2e.model.edit.pom.Dependency#getExclusions <em> Exclusions</em>}</li> * <li>{@link org.eclipse.m2e.model.edit.pom.Dependency#getOptional <em>Optional </em>}</li> * </ul> * </p> * * @see org.eclipse.m2e.model.edit.pom.PomPackage#getDependency() * @model extendedMetaData="name='Dependency' kind='elementOnly'" * @generated */ public interface Dependency extends EObject { /** * Returns the value of the '<em><b>Group Id</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc --> <!-- * begin-model-doc --> 3.0.0+ The project group that produced the dependency, e.g. * <code>org.apache.maven</code>. <!-- end-model-doc --> * * @return the value of the '<em>Group Id</em>' attribute. * @see #setGroupId(String) * @see org.eclipse.m2e.model.edit.pom.PomPackage#getDependency_GroupId() * @model dataType="org.eclipse.emf.ecore.xml.type.String" extendedMetaData= * "kind='element' name='groupId' namespace='##targetNamespace'" * @generated */ String getGroupId(); /** * Sets the value of the ' {@link org.eclipse.m2e.model.edit.pom.Dependency#getGroupId <em>Group Id</em>}' attribute. * <!-- begin-user-doc --> <!-- end-user-doc --> * * @param value the new value of the '<em>Group Id</em>' attribute. * @see #getGroupId() * @generated */ void setGroupId(String value); /** * Returns the value of the '<em><b>Artifact Id</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc --> * <!-- begin-model-doc --> 3.0.0+ The unique id for an artifact produced by the project group, e.g. * <code>maven-artifact</code>. <!-- end-model-doc --> * * @return the value of the '<em>Artifact Id</em>' attribute. * @see #setArtifactId(String) * @see org.eclipse.m2e.model.edit.pom.PomPackage#getDependency_ArtifactId() * @model dataType="org.eclipse.emf.ecore.xml.type.String" extendedMetaData= * "kind='element' name='artifactId' namespace='##targetNamespace'" * @generated */ String getArtifactId(); /** * Sets the value of the ' {@link org.eclipse.m2e.model.edit.pom.Dependency#getArtifactId <em>Artifact Id</em>}' * attribute. <!-- begin-user-doc --> <!-- end-user-doc --> * * @param value the new value of the '<em>Artifact Id</em>' attribute. * @see #getArtifactId() * @generated */ void setArtifactId(String value); /** * Returns the value of the '<em><b>Version</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc --> <!-- * begin-model-doc --> 3.0.0+ The version of the dependency, e.g. <code>3.2.1</code>. In Maven 2, this can * also be specified as a range of versions. <!-- end-model-doc --> * * @return the value of the '<em>Version</em>' attribute. * @see #setVersion(String) * @see org.eclipse.m2e.model.edit.pom.PomPackage#getDependency_Version() * @model dataType="org.eclipse.emf.ecore.xml.type.String" extendedMetaData= * "kind='element' name='version' namespace='##targetNamespace'" * @generated */ String getVersion(); /** * Sets the value of the ' {@link org.eclipse.m2e.model.edit.pom.Dependency#getVersion <em>Version</em>}' attribute. * <!-- begin-user-doc --> <!-- end-user-doc --> * * @param value the new value of the '<em>Version</em>' attribute. * @see #getVersion() * @generated */ void setVersion(String value); /** * Returns the value of the '<em><b>Type</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc --> <!-- * begin-model-doc --> 4.0.0 The type of dependency. This defaults to <code>jar</code>. While it usually * represents the extension on the filename of the dependency, that is not always the case. A type can be mapped to a * different extension and a classifier. The type often correspongs to the packaging used, though this is also not * always the case. Some examples are <code>jar</code>, <code>war</code>, * <code>ejb-client</code> and <code>test-jar</code>. New types can be defined by plugins that * set <code>extensions</code> to <code>true</code>, so this is not a complete list. <!-- * end-model-doc --> * * @return the value of the '<em>Type</em>' attribute. * @see #isSetType() * @see #unsetType() * @see #setType(String) * @see org.eclipse.m2e.model.edit.pom.PomPackage#getDependency_Type() * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.String" extendedMetaData * ="kind='element' name='type' namespace='##targetNamespace'" * @generated */ String getType(); /** * Sets the value of the ' {@link org.eclipse.m2e.model.edit.pom.Dependency#getType <em>Type</em>}' attribute. <!-- * begin-user-doc --> <!-- end-user-doc --> * * @param value the new value of the '<em>Type</em>' attribute. * @see #isSetType() * @see #unsetType() * @see #getType() * @generated */ void setType(String value); /** * Unsets the value of the ' {@link org.eclipse.m2e.model.edit.pom.Dependency#getType <em>Type</em>}' attribute. <!-- * begin-user-doc --> <!-- end-user-doc --> * * @see #isSetType() * @see #getType() * @see #setType(String) * @generated */ void unsetType(); /** * Returns whether the value of the ' {@link org.eclipse.m2e.model.edit.pom.Dependency#getType <em>Type</em>}' * attribute is set. <!-- begin-user-doc --> <!-- end-user-doc --> * * @return whether the value of the '<em>Type</em>' attribute is set. * @see #unsetType() * @see #getType() * @see #setType(String) * @generated */ boolean isSetType(); /** * Returns the value of the '<em><b>Classifier</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc --> <!-- * begin-model-doc --> 4.0.0 The classifier of the dependency. This allows distinguishing two artifacts that belong to * the same POM but were built differently, and is appended to the filename after the version. For example, * <code>jdk14</code> and <code>jdk15</code>. <!-- end-model-doc --> * * @return the value of the '<em>Classifier</em>' attribute. * @see #setClassifier(String) * @see org.eclipse.m2e.model.edit.pom.PomPackage#getDependency_Classifier() * @model dataType="org.eclipse.emf.ecore.xml.type.String" extendedMetaData= * "kind='element' name='classifier' namespace='##targetNamespace'" * @generated */ String getClassifier(); /** * Sets the value of the ' {@link org.eclipse.m2e.model.edit.pom.Dependency#getClassifier <em>Classifier</em>}' * attribute. <!-- begin-user-doc --> <!-- end-user-doc --> * * @param value the new value of the '<em>Classifier</em>' attribute. * @see #getClassifier() * @generated */ void setClassifier(String value); /** * Returns the value of the '<em><b>Scope</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc --> <!-- * begin-model-doc --> 4.0.0 The scope of the dependency - <code>compile</code>, * <code>runtime</code>, <code>test</code>, <code>system</code>, and * <code>provided</code>. Used to calculate the various classpaths used for compilation, testing, and so * on. It also assists in determining which artifacts to include in a distribution of this project. For more * information, see <a href="http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html" * >the dependency mechanism</a>. <!-- end-model-doc --> * * @return the value of the '<em>Scope</em>' attribute. * @see #setScope(String) * @see org.eclipse.m2e.model.edit.pom.PomPackage#getDependency_Scope() * @model dataType="org.eclipse.emf.ecore.xml.type.String" extendedMetaData= * "kind='element' name='scope' namespace='##targetNamespace'" * @generated */ String getScope(); /** * Sets the value of the ' {@link org.eclipse.m2e.model.edit.pom.Dependency#getScope <em>Scope</em>}' attribute. <!-- * begin-user-doc --> <!-- end-user-doc --> * * @param value the new value of the '<em>Scope</em>' attribute. * @see #getScope() * @generated */ void setScope(String value); /** * Returns the value of the '<em><b>System Path</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc --> * <!-- begin-model-doc --> 4.0.0 FOR SYSTEM SCOPE ONLY. Note that use of this property is * <b>discouraged</b> and may be replaced in later versions. This specifies the path on the filesystem for * this dependency. Requires an absolute path for the value, not relative. Use a property that gives the machine * specific absolute path, e.g. <code>${java.home}</code>. <!-- end-model-doc --> * * @return the value of the '<em>System Path</em>' attribute. * @see #setSystemPath(String) * @see org.eclipse.m2e.model.edit.pom.PomPackage#getDependency_SystemPath() * @model dataType="org.eclipse.emf.ecore.xml.type.String" extendedMetaData= * "kind='element' name='systemPath' namespace='##targetNamespace'" * @generated */ String getSystemPath(); /** * Sets the value of the ' {@link org.eclipse.m2e.model.edit.pom.Dependency#getSystemPath <em>System Path</em>}' * attribute. <!-- begin-user-doc --> <!-- end-user-doc --> * * @param value the new value of the '<em>System Path</em>' attribute. * @see #getSystemPath() * @generated */ void setSystemPath(String value); /** * Returns the value of the '<em><b>Exclusions</b></em>' containment reference list. The list contents are of type * {@link org.eclipse.m2e.model.edit.pom.Exclusion}. <!-- begin-user-doc --> <!-- end-user-doc --> <!-- * begin-model-doc --> 4.0.0 Lists a set of artifacts that should be excluded from this dependency's artifact list * when it comes to calculating transitive dependencies. <!-- end-model-doc --> * * @return the value of the '<em>Exclusions</em>' containment reference list. * @see #isSetExclusions() * @see #unsetExclusions() * @see org.eclipse.m2e.model.edit.pom.PomPackage#getDependency_Exclusions() * @model containment="true" unsettable="true" extendedMetaData= * "kind='element' name='exclusions' namespace='##targetNamespace'" * @generated */ EList<Exclusion> getExclusions(); /** * Unsets the value of the ' {@link org.eclipse.m2e.model.edit.pom.Dependency#getExclusions <em>Exclusions</em>}' * containment reference list. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see #isSetExclusions() * @see #getExclusions() * @generated */ void unsetExclusions(); /** * Returns whether the value of the ' {@link org.eclipse.m2e.model.edit.pom.Dependency#getExclusions * <em>Exclusions</em>}' containment reference list is set. <!-- begin-user-doc --> <!-- end-user-doc --> * * @return whether the value of the '<em>Exclusions</em>' containment reference list is set. * @see #unsetExclusions() * @see #getExclusions() * @generated */ boolean isSetExclusions(); /** * Returns the value of the '<em><b>Optional</b></em>' attribute. The default value is <code>"false"</code>. <!-- * begin-user-doc --> <!-- end-user-doc --> <!-- begin-model-doc --> 4.0.0 Indicates the dependency is optional for * use of this library. While the version of the dependency will be taken into account for dependency calculation if * the library is used elsewhere, it will not be passed on transitively. <!-- end-model-doc --> * * @return the value of the '<em>Optional</em>' attribute. * @see #isSetOptional() * @see #unsetOptional() * @see #setOptional(String) * @see org.eclipse.m2e.model.edit.pom.PomPackage#getDependency_Optional() * @model default="false" unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.String" extendedMetaData= * "kind='element' name='optional' namespace='##targetNamespace'" * @generated */ String getOptional(); /** * Sets the value of the ' {@link org.eclipse.m2e.model.edit.pom.Dependency#getOptional <em>Optional</em>}' attribute. * <!-- begin-user-doc --> <!-- end-user-doc --> * * @param value the new value of the '<em>Optional</em>' attribute. * @see #isSetOptional() * @see #unsetOptional() * @see #getOptional() * @generated */ void setOptional(String value); /** * Unsets the value of the ' {@link org.eclipse.m2e.model.edit.pom.Dependency#getOptional <em>Optional</em>}' * attribute. <!-- begin-user-doc --> <!-- end-user-doc --> * * @see #isSetOptional() * @see #getOptional() * @see #setOptional(String) * @generated */ void unsetOptional(); /** * Returns whether the value of the ' {@link org.eclipse.m2e.model.edit.pom.Dependency#getOptional <em>Optional</em>}' * attribute is set. <!-- begin-user-doc --> <!-- end-user-doc --> * * @return whether the value of the '<em>Optional</em>' attribute is set. * @see #unsetOptional() * @see #getOptional() * @see #setOptional(String) * @generated */ boolean isSetOptional(); } // Dependency