blob: c36336627c411185dce6decc6fde11d8d744317f [file] [log] [blame]
/*
* Copyright (c) 2005 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 - initial API and implementation
*
* $Id: Artifact.java,v 1.1 2005/11/14 22:25:57 khussey Exp $
*/
package org.eclipse.uml2.uml;
import java.util.List;
import org.eclipse.emf.ecore.EClass;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Artifact</b></em>'.
* <!-- end-user-doc -->
*
* <!-- begin-model-doc -->
* In the metamodel, an Artifact is a Classifier that represents a physical entity. Artifacts may have Properties that represent features of the Artifact, and Operations that can be performed on its instances. Artifacts can be involved in Associations to other Artifacts, e.g. composition associations. Artifacts can be instantiated to represent detailed copy semantics, where different instances of the same Artifact may be deployed to various Node instances (and each may have separate property values, e.g. for a 'time-stamp' property.
* As part of the Nodes package, an Artifact is extended to become the source of a deployment to a Node. This is achieved by specializing the abstract superclass.
* <!-- end-model-doc -->
*
* <p>
* The following features are supported:
* <ul>
* <li>{@link org.eclipse.uml2.uml.Artifact#getFileName <em>File Name</em>}</li>
* <li>{@link org.eclipse.uml2.uml.Artifact#getNestedArtifacts <em>Nested Artifact</em>}</li>
* <li>{@link org.eclipse.uml2.uml.Artifact#getManifestations <em>Manifestation</em>}</li>
* <li>{@link org.eclipse.uml2.uml.Artifact#getOwnedOperations <em>Owned Operation</em>}</li>
* <li>{@link org.eclipse.uml2.uml.Artifact#getOwnedAttributes <em>Owned Attribute</em>}</li>
* </ul>
* </p>
*
* @see org.eclipse.uml2.uml.UMLPackage#getArtifact()
* @model
* @generated
*/
public interface Artifact
extends Classifier, DeployedArtifact {
/**
* Returns the value of the '<em><b>File Name</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* A concrete name that is used to refer to the Artifact in a physical context. Example: file system name, universal resource locator.
* <!-- end-model-doc -->
* @return the value of the '<em>File Name</em>' attribute.
* @see #setFileName(String)
* @see org.eclipse.uml2.uml.UMLPackage#getArtifact_FileName()
* @model required="true" ordered="false"
* @generated
*/
String getFileName();
/**
* Sets the value of the '{@link org.eclipse.uml2.uml.Artifact#getFileName <em>File Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>File Name</em>' attribute.
* @see #getFileName()
* @generated
*/
void setFileName(String value);
/**
* Returns the value of the '<em><b>Nested Artifact</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.uml2.uml.Artifact}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The Artifacts that are defined (nested) within the Artifact.
*
* The association is a specialization of the ownedMember association from Namespace to NamedElement.
*
*
* <!-- end-model-doc -->
* @return the value of the '<em>Nested Artifact</em>' containment reference list.
* @see org.eclipse.uml2.uml.UMLPackage#getArtifact_NestedArtifact()
* @model type="org.eclipse.uml2.uml.Artifact" containment="true" resolveProxies="false" ordered="false"
* @generated
*/
List getNestedArtifacts();
/**
* Creates a {@link org.eclipse.uml2.uml.Artifact} and appends it to the '<em><b>Nested Artifact</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Artifact} to create.
* @return The new {@link org.eclipse.uml2.uml.Artifact}.
* @see #getNestedArtifacts()
* @generated
*/
Artifact createNestedArtifact(EClass eClass);
/**
* Creates a {@link org.eclipse.uml2.uml.Artifact} and appends it to the '<em><b>Nested Artifact</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return The new {@link org.eclipse.uml2.uml.Artifact}.
* @see #getNestedArtifacts()
* @generated
*/
Artifact createNestedArtifact();
/**
* Retrieves the {@link org.eclipse.uml2.uml.Artifact} with the specified '<em><b>Name</b></em>' from the '<em><b>Nested Artifact</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Artifact} to retrieve.
* @return The {@link org.eclipse.uml2.uml.Artifact} with the specified '<em><b>Name</b></em>', or <code>null</code>.
* @see #getNestedArtifacts()
* @generated
*/
Artifact getNestedArtifact(String name);
/**
* Returns the value of the '<em><b>Manifestation</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.uml2.uml.Manifestation}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The set of model elements that are manifested in the Artifact. That is, these model elements are utilized in the construction (or generation) of the artifact.
* <!-- end-model-doc -->
* @return the value of the '<em>Manifestation</em>' containment reference list.
* @see org.eclipse.uml2.uml.UMLPackage#getArtifact_Manifestation()
* @model type="org.eclipse.uml2.uml.Manifestation" containment="true" resolveProxies="false" ordered="false"
* @generated
*/
List getManifestations();
/**
* Creates a {@link org.eclipse.uml2.uml.Manifestation} and appends it to the '<em><b>Manifestation</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return The new {@link org.eclipse.uml2.uml.Manifestation}.
* @see #getManifestations()
* @generated
*/
Manifestation createManifestation();
/**
* Retrieves the {@link org.eclipse.uml2.uml.Manifestation} with the specified '<em><b>Name</b></em>' from the '<em><b>Manifestation</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Manifestation} to retrieve.
* @return The {@link org.eclipse.uml2.uml.Manifestation} with the specified '<em><b>Name</b></em>', or <code>null</code>.
* @see #getManifestations()
* @generated
*/
Manifestation getManifestation(String name);
/**
* Returns the value of the '<em><b>Owned Operation</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.uml2.uml.Operation}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The Operations defined for the Artifact. The association is a specialization of the ownedMember association.
* <!-- end-model-doc -->
* @return the value of the '<em>Owned Operation</em>' containment reference list.
* @see org.eclipse.uml2.uml.UMLPackage#getArtifact_OwnedOperation()
* @model type="org.eclipse.uml2.uml.Operation" containment="true" resolveProxies="false"
* @generated
*/
List getOwnedOperations();
/**
* Creates a {@link org.eclipse.uml2.uml.Operation} and appends it to the '<em><b>Owned Operation</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return The new {@link org.eclipse.uml2.uml.Operation}.
* @see #getOwnedOperations()
* @generated
*/
Operation createOwnedOperation();
/**
* Retrieves the {@link org.eclipse.uml2.uml.Operation} with the specified '<em><b>Name</b></em>' from the '<em><b>Owned Operation</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Operation} to retrieve.
* @return The {@link org.eclipse.uml2.uml.Operation} with the specified '<em><b>Name</b></em>', or <code>null</code>.
* @see #getOwnedOperations()
* @generated
*/
Operation getOwnedOperation(String name);
/**
* Returns the value of the '<em><b>Owned Attribute</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.uml2.uml.Property}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The attributes or association ends defined for the Artifact.
*
* The association is a specialization of the ownedMember association.
*
*
* <!-- end-model-doc -->
* @return the value of the '<em>Owned Attribute</em>' containment reference list.
* @see org.eclipse.uml2.uml.UMLPackage#getArtifact_OwnedAttribute()
* @model type="org.eclipse.uml2.uml.Property" containment="true" resolveProxies="false"
* @generated
*/
List getOwnedAttributes();
/**
* Creates a {@link org.eclipse.uml2.uml.Property} and appends it to the '<em><b>Owned Attribute</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Property} to create.
* @return The new {@link org.eclipse.uml2.uml.Property}.
* @see #getOwnedAttributes()
* @generated
*/
Property createOwnedAttribute(EClass eClass);
/**
* Creates a {@link org.eclipse.uml2.uml.Property} and appends it to the '<em><b>Owned Attribute</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return The new {@link org.eclipse.uml2.uml.Property}.
* @see #getOwnedAttributes()
* @generated
*/
Property createOwnedAttribute();
/**
* Retrieves the {@link org.eclipse.uml2.uml.Property} with the specified '<em><b>Name</b></em>' from the '<em><b>Owned Attribute</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Property} to retrieve.
* @return The {@link org.eclipse.uml2.uml.Property} with the specified '<em><b>Name</b></em>', or <code>null</code>.
* @see #getOwnedAttributes()
* @generated
*/
Property getOwnedAttribute(String name);
} // Artifact