/**
* <copyright>
* </copyright>
*
* $Id$
*/
package org.eclipse.buckminster.mspec;
import java.util.regex.Pattern;
import org.eclipse.buckminster.osgi.filter.Filter;
/**
* <!-- begin-user-doc --> A representation of the model object '
* <em><b>Materialization Node</b></em>'. <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* <ul>
* <li>{@link org.eclipse.buckminster.mspec.MaterializationNode#getNamePattern
* <em>Name Pattern</em>}</li>
* <li>{@link org.eclipse.buckminster.mspec.MaterializationNode#getLeafArtifact
* <em>Leaf Artifact</em>}</li>
* <li>
* {@link org.eclipse.buckminster.mspec.MaterializationNode#getComponentType
* <em>Component Type</em>}</li>
* <li>{@link org.eclipse.buckminster.mspec.MaterializationNode#getResourcePath
* <em>Resource Path</em>}</li>
* <li>{@link org.eclipse.buckminster.mspec.MaterializationNode#isExclude <em>
* Exclude</em>}</li>
* <li>
* {@link org.eclipse.buckminster.mspec.MaterializationNode#getBindingNamePattern
* <em>Binding Name Pattern</em>}</li>
* <li>
* {@link org.eclipse.buckminster.mspec.MaterializationNode#getBindingNameReplacement
* <em>Binding Name Replacement</em>}</li>
* <li>{@link org.eclipse.buckminster.mspec.MaterializationNode#getUnpack <em>
* Unpack</em>}</li>
* <li>{@link org.eclipse.buckminster.mspec.MaterializationNode#getFilter <em>
* Filter</em>}</li>
* </ul>
* </p>
*
* @see org.eclipse.buckminster.mspec.MspecPackage#getMaterializationNode()
* @model
* @generated
*/
public interface MaterializationNode extends MaterializationDirective {
/**
* Returns the value of the '<em><b>Binding Name Pattern</b></em>'
* attribute. <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Binding Name Pattern</em>' attribute isn't
* clear, there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
*
* @return the value of the '<em>Binding Name Pattern</em>' attribute.
* @see #setBindingNamePattern(Pattern)
* @see org.eclipse.buckminster.mspec.MspecPackage#getMaterializationNode_BindingNamePattern()
* @model dataType="org.eclipse.buckminster.model.common.Pattern"
* @generated
*/
Pattern getBindingNamePattern();
/**
* Returns the value of the '<em><b>Binding Name Replacement</b></em>'
* attribute. <!-- begin-user-doc --> <!-- end-user-doc --> <!--
* begin-model-doc --> A replacement string that produces the resulting
* project name from a name matched by pattern bindingNamePattern. <!--
* end-model-doc -->
*
* @return the value of the '<em>Binding Name Replacement</em>' attribute.
* @see #setBindingNameReplacement(String)
* @see org.eclipse.buckminster.mspec.MspecPackage#getMaterializationNode_BindingNameReplacement()
* @model
* @generated
*/
String getBindingNameReplacement();
/**
* Returns the value of the '<em><b>Component Type</b></em>' attribute. <!--
* begin-user-doc --> <!-- end-user-doc --> <!-- begin-model-doc --> If set,
* this node will only match components of this type. <!-- end-model-doc -->
*
* @return the value of the '<em>Component Type</em>' attribute.
* @see #setComponentType(String)
* @see org.eclipse.buckminster.mspec.MspecPackage#getMaterializationNode_ComponentType()
* @model
* @generated
*/
String getComponentType();
/**
* Returns the value of the '<em><b>Filter</b></em>' attribute. <!--
* begin-user-doc -->
* <p>
* If the meaning of the '<em>Filter</em>' attribute isn't clear, there
* really should be more of a description here...
* </p>
* <!-- end-user-doc -->
*
* @return the value of the '<em>Filter</em>' attribute.
* @see #setFilter(Filter)
* @see org.eclipse.buckminster.mspec.MspecPackage#getMaterializationNode_Filter()
* @model dataType="org.eclipse.buckminster.model.common.Filter"
* @generated
*/
Filter getFilter();
/**
* Returns the value of the '<em><b>Leaf Artifact</b></em>' attribute. <!--
* begin-user-doc --> <!-- end-user-doc --> <!-- begin-model-doc --> The
* name of the file system artifact (file or folder) to materialize. This
* name is optional and normally derived from the remote location. <!--
* end-model-doc -->
*
* @return the value of the '<em>Leaf Artifact</em>' attribute.
* @see #setLeafArtifact(String)
* @see org.eclipse.buckminster.mspec.MspecPackage#getMaterializationNode_LeafArtifact()
* @model
* @generated
*/
String getLeafArtifact();
/**
* Returns the value of the '<em><b>Name Pattern</b></em>' attribute. <!--
* begin-user-doc --> <!-- end-user-doc --> <!-- begin-model-doc --> A
* regular expression pattern that will be matched against component names.
* The matching occurs in the order that the nodes are declared. The first
* node that matches a given component is used. No further matching takes
* place once a node is found. <!-- end-model-doc -->
*
* @return the value of the '<em>Name Pattern</em>' attribute.
* @see #setNamePattern(Pattern)
* @see org.eclipse.buckminster.mspec.MspecPackage#getMaterializationNode_NamePattern()
* @model dataType="org.eclipse.buckminster.model.common.Pattern"
* required="true"
* @generated
*/
Pattern getNamePattern();
/**
* Returns the value of the '<em><b>Resource Path</b></em>' attribute. <!--
* begin-user-doc --> <!-- end-user-doc --> <!-- begin-model-doc --> Path to
* where a match component will end up in the workspace. Only used by the
* workspace materializer. Typically used when resolving conflicts between
* equally named features and bundles. <!-- end-model-doc -->
*
* @return the value of the '<em>Resource Path</em>' attribute.
* @see #setResourcePath(String)
* @see org.eclipse.buckminster.mspec.MspecPackage#getMaterializationNode_ResourcePath()
* @model
* @generated
*/
String getResourcePath();
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @model kind="operation"
* @generated
*/
String getSuffix();
/**
* Returns the value of the '<em><b>Unpack</b></em>' containment reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Unpack</em>' reference isn't clear, there
* really should be more of a description here...
* </p>
* <!-- end-user-doc -->
*
* @return the value of the '<em>Unpack</em>' containment reference.
* @see #setUnpack(Unpack)
* @see org.eclipse.buckminster.mspec.MspecPackage#getMaterializationNode_Unpack()
* @model containment="true" extendedMetaData=
* "kind='element' name='unpack' namespace='##targetNamespace'"
* @generated
*/
Unpack getUnpack();
/**
* Returns the value of the '<em><b>Exclude</b></em>' attribute. <!--
* begin-user-doc --> <!-- end-user-doc --> <!-- begin-model-doc --> If set,
* matched components will be excluded from materialization. <!--
* end-model-doc -->
*
* @return the value of the '<em>Exclude</em>' attribute.
* @see #setExclude(boolean)
* @see org.eclipse.buckminster.mspec.MspecPackage#getMaterializationNode_Exclude()
* @model
* @generated
*/
boolean isExclude();
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @model kind="operation"
* @generated
*/
boolean isExpand();
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @model kind="operation"
* @generated
*/
boolean isUnpack();
/**
* Sets the value of the '
* {@link org.eclipse.buckminster.mspec.MaterializationNode#getBindingNamePattern
* <em>Binding Name Pattern</em>}' attribute. <!-- begin-user-doc --> <!--
* end-user-doc -->
*
* @param value
* the new value of the '<em>Binding Name Pattern</em>'
* attribute.
* @see #getBindingNamePattern()
* @generated
*/
void setBindingNamePattern(Pattern value);
/**
* Sets the value of the '
* {@link org.eclipse.buckminster.mspec.MaterializationNode#getBindingNameReplacement
* <em>Binding Name Replacement</em>}' attribute. <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @param value
* the new value of the '<em>Binding Name Replacement</em>'
* attribute.
* @see #getBindingNameReplacement()
* @generated
*/
void setBindingNameReplacement(String value);
/**
* Sets the value of the '
* {@link org.eclipse.buckminster.mspec.MaterializationNode#getComponentType
* <em>Component Type</em>}' attribute. <!-- begin-user-doc --> <!--
* end-user-doc -->
*
* @param value
* the new value of the '<em>Component Type</em>' attribute.
* @see #getComponentType()
* @generated
*/
void setComponentType(String value);
/**
* Sets the value of the '
* {@link org.eclipse.buckminster.mspec.MaterializationNode#isExclude
* <em>Exclude</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
* -->
*
* @param value
* the new value of the '<em>Exclude</em>' attribute.
* @see #isExclude()
* @generated
*/
void setExclude(boolean value);
/**
* Sets the value of the '
* {@link org.eclipse.buckminster.mspec.MaterializationNode#getFilter
* <em>Filter</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
* -->
*
* @param value
* the new value of the '<em>Filter</em>' attribute.
* @see #getFilter()
* @generated
*/
void setFilter(Filter value);
/**
* Sets the value of the '
* {@link org.eclipse.buckminster.mspec.MaterializationNode#getLeafArtifact
* <em>Leaf Artifact</em>}' attribute. <!-- begin-user-doc --> <!--
* end-user-doc -->
*
* @param value
* the new value of the '<em>Leaf Artifact</em>' attribute.
* @see #getLeafArtifact()
* @generated
*/
void setLeafArtifact(String value);
/**
* Sets the value of the '
* {@link org.eclipse.buckminster.mspec.MaterializationNode#getNamePattern
* <em>Name Pattern</em>}' attribute. <!-- begin-user-doc --> <!--
* end-user-doc -->
*
* @param value
* the new value of the '<em>Name Pattern</em>' attribute.
* @see #getNamePattern()
* @generated
*/
void setNamePattern(Pattern value);
/**
* Sets the value of the '
* {@link org.eclipse.buckminster.mspec.MaterializationNode#getResourcePath
* <em>Resource Path</em>}' attribute. <!-- begin-user-doc --> <!--
* end-user-doc -->
*
* @param value
* the new value of the '<em>Resource Path</em>' attribute.
* @see #getResourcePath()
* @generated
*/
void setResourcePath(String value);
/**
* Sets the value of the '
* {@link org.eclipse.buckminster.mspec.MaterializationNode#getUnpack
* <em>Unpack</em>}' containment reference. <!-- begin-user-doc --> <!--
* end-user-doc -->
*
* @param value
* the new value of the '<em>Unpack</em>' containment reference.
* @see #getUnpack()
* @generated
*/
void setUnpack(Unpack value);
} // MaterializationNode