<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>

<title>Requirement (Oomph P2 Management Documentation)</title>
<meta name="date" content="">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="Requirement (Oomph P2 Management Documentation)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Requirement.html">Use</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/eclipse/oomph/p2/RepositoryType.html" title="enum in org.eclipse.oomph.p2"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../org/eclipse/oomph/p2/VersionSegment.html" title="enum in org.eclipse.oomph.p2"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/eclipse/oomph/p2/Requirement.html" target="_top">Frames</a></li>
<li><a href="Requirement.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.eclipse.oomph.p2</div>
<h2 title="Interface Requirement" class="title">Interface Requirement</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EObject.html?is-external=true" title="class or interface in org.eclipse.emf.ecore">EObject</a>, <a href="../../../../../../org.eclipse.oomph.util.doc/javadoc/org/eclipse/oomph/base/ModelElement.html?is-external=true" title="class or interface in org.eclipse.oomph.base">ModelElement</a>, <a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/common/notify/Notifier.html?is-external=true" title="class or interface in org.eclipse.emf.common.notify">Notifier</a></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../org/eclipse/oomph/p2/impl/RequirementImpl.html" title="class in org.eclipse.oomph.p2.impl">RequirementImpl</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="strong">Requirement</span>
extends <a href="../../../../../../org.eclipse.oomph.util.doc/javadoc/org/eclipse/oomph/base/ModelElement.html?is-external=true" title="class or interface in org.eclipse.oomph.base">ModelElement</a></pre>
<div class="block"><!-- begin-user-doc -->
 A representation of the model object '<em><b>Requirement</b></em>'.
 <!-- end-user-doc -->

 <p>
 The following features are supported:
 <ul>
   <li><a href="../../../../org/eclipse/oomph/p2/Requirement.html#getName()"><code><em>Name</em></code></a></li>
   <li><a href="../../../../org/eclipse/oomph/p2/Requirement.html#getNamespace()"><code><em>Namespace</em></code></a></li>
   <li><a href="../../../../org/eclipse/oomph/p2/Requirement.html#getVersionRange()"><code><em>Version Range</em></code></a></li>
   <li><a href="../../../../org/eclipse/oomph/p2/Requirement.html#isOptional()"><code><em>Optional</em></code></a></li>
   <li><a href="../../../../org/eclipse/oomph/p2/Requirement.html#isFeature()"><code><em>Feature</em></code></a></li>
 </ul>
 </p></div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/oomph/p2/P2Package.html#getRequirement()"><code>P2Package.getRequirement()</code></a></dd><dt><span class="strong">Generated</span></dt>
  <dd></dd>
<dt><span class="strong">Model</span></dt>
  <dd>features="iD"
        iDDataType="org.eclipse.emf.ecore.EString" iDRequired="true" iDTransient="true" iDVolatile="true" iDDerived="true" iDSuppressedGetVisibility="true" iDSuppressedSetVisibility="true"
        iDExtendedMetaData="kind='attribute' name='id'"</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/p2/Requirement.html#getName()">getName</a></strong>()</code>
<div class="block">Returns the value of the '<em><b>Name</b></em>' attribute.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/p2/Requirement.html#getNamespace()">getNamespace</a></strong>()</code>
<div class="block">Returns the value of the '<em><b>Namespace</b></em>' attribute.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/equinox/p2/metadata/VersionRange.html?is-external=true" title="class or interface in org.eclipse.equinox.p2.metadata">VersionRange</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/p2/Requirement.html#getVersionRange()">getVersionRange</a></strong>()</code>
<div class="block">Returns the value of the '<em><b>Version Range</b></em>' attribute.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/p2/Requirement.html#isFeature()">isFeature</a></strong>()</code>
<div class="block">Returns the value of the '<em><b>Feature</b></em>' attribute.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/p2/Requirement.html#isOptional()">isOptional</a></strong>()</code>
<div class="block">Returns the value of the '<em><b>Optional</b></em>' attribute.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/p2/Requirement.html#setName(java.lang.String)">setName</a></strong>(<a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
<div class="block">Sets the value of the '<a href="../../../../org/eclipse/oomph/p2/Requirement.html#getName()"><code><em>Name</em></code></a>' attribute.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/p2/Requirement.html#setNamespace(java.lang.String)">setNamespace</a></strong>(<a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
<div class="block">Sets the value of the '<a href="../../../../org/eclipse/oomph/p2/Requirement.html#getNamespace()"><code><em>Namespace</em></code></a>' attribute.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/p2/Requirement.html#setOptional(boolean)">setOptional</a></strong>(boolean&nbsp;value)</code>
<div class="block">Sets the value of the '<a href="../../../../org/eclipse/oomph/p2/Requirement.html#isOptional()"><code><em>Optional</em></code></a>' attribute.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/p2/Requirement.html#setVersionRange(org.eclipse.equinox.p2.metadata.VersionRange)">setVersionRange</a></strong>(<a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/equinox/p2/metadata/VersionRange.html?is-external=true" title="class or interface in org.eclipse.equinox.p2.metadata">VersionRange</a>&nbsp;value)</code>
<div class="block">Sets the value of the '<a href="../../../../org/eclipse/oomph/p2/Requirement.html#getVersionRange()"><code><em>Version Range</em></code></a>' attribute.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/oomph/p2/Requirement.html#setVersionRange(org.eclipse.equinox.p2.metadata.Version,%20org.eclipse.oomph.p2.VersionSegment)">setVersionRange</a></strong>(<a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/equinox/p2/metadata/Version.html?is-external=true" title="class or interface in org.eclipse.equinox.p2.metadata">Version</a>&nbsp;version,
               <a href="../../../../org/eclipse/oomph/p2/VersionSegment.html" title="enum in org.eclipse.oomph.p2">VersionSegment</a>&nbsp;segment)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.oomph.base.ModelElement">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;org.eclipse.oomph.base.<a href="../../../../../../org.eclipse.oomph.util.doc/javadoc/org/eclipse/oomph/base/ModelElement.html?is-external=true" title="class or interface in org.eclipse.oomph.base">ModelElement</a></h3>
<code><a href="../../../../../../org.eclipse.oomph.util.doc/javadoc/org/eclipse/oomph/base/ModelElement.html?is-external=true#getAnnotation(java.lang.String)" title="class or interface in org.eclipse.oomph.base">getAnnotation</a>, <a href="../../../../../../org.eclipse.oomph.util.doc/javadoc/org/eclipse/oomph/base/ModelElement.html?is-external=true#getAnnotations()" title="class or interface in org.eclipse.oomph.base">getAnnotations</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.emf.ecore.EObject">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;org.eclipse.emf.ecore.<a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EObject.html?is-external=true" title="class or interface in org.eclipse.emf.ecore">EObject</a></h3>
<code><a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EObject.html?is-external=true#eAllContents()" title="class or interface in org.eclipse.emf.ecore">eAllContents</a>, <a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EObject.html?is-external=true#eClass()" title="class or interface in org.eclipse.emf.ecore">eClass</a>, <a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EObject.html?is-external=true#eContainer()" title="class or interface in org.eclipse.emf.ecore">eContainer</a>, <a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EObject.html?is-external=true#eContainingFeature()" title="class or interface in org.eclipse.emf.ecore">eContainingFeature</a>, <a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EObject.html?is-external=true#eContainmentFeature()" title="class or interface in org.eclipse.emf.ecore">eContainmentFeature</a>, <a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EObject.html?is-external=true#eContents()" title="class or interface in org.eclipse.emf.ecore">eContents</a>, <a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EObject.html?is-external=true#eCrossReferences()" title="class or interface in org.eclipse.emf.ecore">eCrossReferences</a>, <a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EObject.html?is-external=true#eGet(org.eclipse.emf.ecore.EStructuralFeature)" title="class or interface in org.eclipse.emf.ecore">eGet</a>, <a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EObject.html?is-external=true#eGet(org.eclipse.emf.ecore.EStructuralFeature,%20boolean)" title="class or interface in org.eclipse.emf.ecore">eGet</a>, <a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EObject.html?is-external=true#eInvoke(org.eclipse.emf.ecore.EOperation,%20org.eclipse.emf.common.util.EList)" title="class or interface in org.eclipse.emf.ecore">eInvoke</a>, <a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EObject.html?is-external=true#eIsProxy()" title="class or interface in org.eclipse.emf.ecore">eIsProxy</a>, <a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EObject.html?is-external=true#eIsSet(org.eclipse.emf.ecore.EStructuralFeature)" title="class or interface in org.eclipse.emf.ecore">eIsSet</a>, <a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EObject.html?is-external=true#eResource()" title="class or interface in org.eclipse.emf.ecore">eResource</a>, <a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EObject.html?is-external=true#eSet(org.eclipse.emf.ecore.EStructuralFeature,%20java.lang.Object)" title="class or interface in org.eclipse.emf.ecore">eSet</a>, <a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EObject.html?is-external=true#eUnset(org.eclipse.emf.ecore.EStructuralFeature)" title="class or interface in org.eclipse.emf.ecore">eUnset</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.emf.common.notify.Notifier">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;org.eclipse.emf.common.notify.<a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/common/notify/Notifier.html?is-external=true" title="class or interface in org.eclipse.emf.common.notify">Notifier</a></h3>
<code><a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/common/notify/Notifier.html?is-external=true#eAdapters()" title="class or interface in org.eclipse.emf.common.notify">eAdapters</a>, <a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/common/notify/Notifier.html?is-external=true#eDeliver()" title="class or interface in org.eclipse.emf.common.notify">eDeliver</a>, <a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/common/notify/Notifier.html?is-external=true#eNotify(org.eclipse.emf.common.notify.Notification)" title="class or interface in org.eclipse.emf.common.notify">eNotify</a>, <a href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/common/notify/Notifier.html?is-external=true#eSetDeliver(boolean)" title="class or interface in org.eclipse.emf.common.notify">eSetDeliver</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getName()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getName</h4>
<pre><a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
<div class="block">Returns the value of the '<em><b>Name</b></em>' attribute.
 <!-- begin-user-doc -->
 <p>
 If the meaning of the '<em>ID</em>' attribute isn't clear,
 there really should be more of a description here...
 </p>
 <!-- end-user-doc --></div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the value of the '<em>Name</em>' attribute.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/oomph/p2/Requirement.html#setName(java.lang.String)"><code>setName(String)</code></a>, 
<a href="../../../../org/eclipse/oomph/p2/P2Package.html#getRequirement_Name()"><code>P2Package.getRequirement_Name()</code></a></dd><dt><span class="strong">Generated</span></dt>
  <dd></dd>
<dt><span class="strong">Model</span></dt>
  <dd>required="true"</dd></dl>
</li>
</ul>
<a name="setName(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setName</h4>
<pre>void&nbsp;setName(<a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</pre>
<div class="block">Sets the value of the '<a href="../../../../org/eclipse/oomph/p2/Requirement.html#getName()"><code><em>Name</em></code></a>' attribute.
 <!-- begin-user-doc -->
 <!-- end-user-doc --></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - the new value of the '<em>Name</em>' attribute.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/oomph/p2/Requirement.html#getName()"><code>getName()</code></a></dd><dt><span class="strong">Generated</span></dt>
  <dd></dd></dl>
</li>
</ul>
<a name="getNamespace()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNamespace</h4>
<pre><a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getNamespace()</pre>
<div class="block">Returns the value of the '<em><b>Namespace</b></em>' attribute.
 The default value is <code>"org.eclipse.equinox.p2.iu"</code>.
 <!-- begin-user-doc -->
 <p>
 If the meaning of the '<em>Namespace</em>' attribute isn't clear,
 there really should be more of a description here...
 </p>
 <!-- end-user-doc --></div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the value of the '<em>Namespace</em>' attribute.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/oomph/p2/Requirement.html#setNamespace(java.lang.String)"><code>setNamespace(String)</code></a>, 
<a href="../../../../org/eclipse/oomph/p2/P2Package.html#getRequirement_Namespace()"><code>P2Package.getRequirement_Namespace()</code></a></dd><dt><span class="strong">Generated</span></dt>
  <dd></dd>
<dt><span class="strong">Model</span></dt>
  <dd>default="org.eclipse.equinox.p2.iu" required="true"</dd></dl>
</li>
</ul>
<a name="setNamespace(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setNamespace</h4>
<pre>void&nbsp;setNamespace(<a href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</pre>
<div class="block">Sets the value of the '<a href="../../../../org/eclipse/oomph/p2/Requirement.html#getNamespace()"><code><em>Namespace</em></code></a>' attribute.
 <!-- begin-user-doc -->
 <!-- end-user-doc --></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - the new value of the '<em>Namespace</em>' attribute.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/oomph/p2/Requirement.html#getNamespace()"><code>getNamespace()</code></a></dd><dt><span class="strong">Generated</span></dt>
  <dd></dd></dl>
</li>
</ul>
<a name="getVersionRange()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVersionRange</h4>
<pre><a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/equinox/p2/metadata/VersionRange.html?is-external=true" title="class or interface in org.eclipse.equinox.p2.metadata">VersionRange</a>&nbsp;getVersionRange()</pre>
<div class="block">Returns the value of the '<em><b>Version Range</b></em>' attribute.
 The default value is <code>"0.0.0"</code>.
 <!-- begin-user-doc -->
 <p>
 If the meaning of the '<em>Version Range</em>' attribute isn't clear,
 there really should be more of a description here...
 </p>
 <!-- end-user-doc --></div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the value of the '<em>Version Range</em>' attribute.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/oomph/p2/Requirement.html#setVersionRange(org.eclipse.equinox.p2.metadata.VersionRange)"><code>setVersionRange(VersionRange)</code></a>, 
<a href="../../../../org/eclipse/oomph/p2/P2Package.html#getRequirement_VersionRange()"><code>P2Package.getRequirement_VersionRange()</code></a></dd><dt><span class="strong">Generated</span></dt>
  <dd></dd>
<dt><span class="strong">Model</span></dt>
  <dd>default="0.0.0" dataType="org.eclipse.oomph.p2.VersionRange"</dd></dl>
</li>
</ul>
<a name="setVersionRange(org.eclipse.equinox.p2.metadata.VersionRange)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setVersionRange</h4>
<pre>void&nbsp;setVersionRange(<a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/equinox/p2/metadata/VersionRange.html?is-external=true" title="class or interface in org.eclipse.equinox.p2.metadata">VersionRange</a>&nbsp;value)</pre>
<div class="block">Sets the value of the '<a href="../../../../org/eclipse/oomph/p2/Requirement.html#getVersionRange()"><code><em>Version Range</em></code></a>' attribute.
 <!-- begin-user-doc -->
 <!-- end-user-doc --></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - the new value of the '<em>Version Range</em>' attribute.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/oomph/p2/Requirement.html#getVersionRange()"><code>getVersionRange()</code></a></dd><dt><span class="strong">Generated</span></dt>
  <dd></dd></dl>
</li>
</ul>
<a name="isOptional()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isOptional</h4>
<pre>boolean&nbsp;isOptional()</pre>
<div class="block">Returns the value of the '<em><b>Optional</b></em>' attribute.
 <!-- begin-user-doc -->
 <p>
 If the meaning of the '<em>Optional</em>' attribute isn't clear,
 there really should be more of a description here...
 </p>
 <!-- end-user-doc --></div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the value of the '<em>Optional</em>' attribute.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/oomph/p2/Requirement.html#setOptional(boolean)"><code>setOptional(boolean)</code></a>, 
<a href="../../../../org/eclipse/oomph/p2/P2Package.html#getRequirement_Optional()"><code>P2Package.getRequirement_Optional()</code></a></dd><dt><span class="strong">Generated</span></dt>
  <dd></dd>
<dt><span class="strong">Model</span></dt>
  <dd></dd></dl>
</li>
</ul>
<a name="setOptional(boolean)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setOptional</h4>
<pre>void&nbsp;setOptional(boolean&nbsp;value)</pre>
<div class="block">Sets the value of the '<a href="../../../../org/eclipse/oomph/p2/Requirement.html#isOptional()"><code><em>Optional</em></code></a>' attribute.
 <!-- begin-user-doc -->
 <!-- end-user-doc --></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>value</code> - the new value of the '<em>Optional</em>' attribute.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/oomph/p2/Requirement.html#isOptional()"><code>isOptional()</code></a></dd><dt><span class="strong">Generated</span></dt>
  <dd></dd></dl>
</li>
</ul>
<a name="isFeature()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isFeature</h4>
<pre>boolean&nbsp;isFeature()</pre>
<div class="block">Returns the value of the '<em><b>Feature</b></em>' attribute.
 <!-- begin-user-doc -->
 <p>
 If the meaning of the '<em>Feature</em>' attribute isn't clear,
 there really should be more of a description here...
 </p>
 <!-- end-user-doc --></div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the value of the '<em>Feature</em>' attribute.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/oomph/p2/P2Package.html#getRequirement_Feature()"><code>P2Package.getRequirement_Feature()</code></a></dd><dt><span class="strong">Generated</span></dt>
  <dd></dd>
<dt><span class="strong">Model</span></dt>
  <dd>transient="true" changeable="false" volatile="true" derived="true"</dd></dl>
</li>
</ul>
<a name="setVersionRange(org.eclipse.equinox.p2.metadata.Version, org.eclipse.oomph.p2.VersionSegment)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>setVersionRange</h4>
<pre>void&nbsp;setVersionRange(<a href="http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/reference/api/org/eclipse/equinox/p2/metadata/Version.html?is-external=true" title="class or interface in org.eclipse.equinox.p2.metadata">Version</a>&nbsp;version,
                   <a href="../../../../org/eclipse/oomph/p2/VersionSegment.html" title="enum in org.eclipse.oomph.p2">VersionSegment</a>&nbsp;segment)</pre>
<div class="block"><!-- begin-user-doc -->
 <!-- end-user-doc --></div>
<dl><dt><span class="strong">Generated</span></dt>
  <dd></dd>
<dt><span class="strong">Model</span></dt>
  <dd>versionDataType="org.eclipse.oomph.p2.Version"</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Requirement.html">Use</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/eclipse/oomph/p2/RepositoryType.html" title="enum in org.eclipse.oomph.p2"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../org/eclipse/oomph/p2/VersionSegment.html" title="enum in org.eclipse.oomph.p2"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/eclipse/oomph/p2/Requirement.html" target="_top">Frames</a></li>
<li><a href="Requirement.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small><i class="copyright">Copyright (c) 2014 Eike Stepper (Loehne, Germany) and others.<br>All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v2.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v20.html</i></small></p>
</body>
</html>
