Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2013-10-17 10:39:19 +0000
committerGerrit Code Review @ Eclipse.org2013-10-17 10:39:19 +0000
commit913837739954e84e6cb534b480cfc07764ded9b3 (patch)
tree268ee28e688ee91d58e628ccd996094c511f4330 /plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo
parent632884c15c9e7ae97940cb3949585954d981ccf8 (diff)
parent01bd70d72aa7ea88543e3b0723b00014092e5b15 (diff)
downloadcdo-913837739954e84e6cb534b480cfc07764ded9b3.tar.gz
cdo-913837739954e84e6cb534b480cfc07764ded9b3.tar.xz
cdo-913837739954e84e6cb534b480cfc07764ded9b3.zip
Merge "Improve setup related models"
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo')
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/AndPredicate.java42
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/BuilderPredicate.java50
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/FilePredicate.java77
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NamePredicate.java50
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NaturePredicate.java50
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NotPredicate.java50
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/OrPredicate.java41
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/Predicate.java29
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/PredicatesFactory.java106
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/PredicatesPackage.java903
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/RepositoryPredicate.java51
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/AndPredicateImpl.java199
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/BuilderPredicateImpl.java227
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/FilePredicateImpl.java392
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NamePredicateImpl.java206
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NaturePredicateImpl.java222
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NotPredicateImpl.java225
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/OrPredicateImpl.java199
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/PredicatesFactoryImpl.java265
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/PredicatesPackageImpl.java507
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/RepositoryPredicateImpl.java229
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/util/PredicatesAdapterFactory.java292
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/util/PredicatesSwitch.java311
23 files changed, 4723 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/AndPredicate.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/AndPredicate.java
new file mode 100644
index 0000000000..2498715be5
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/AndPredicate.java
@@ -0,0 +1,42 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates;
+
+import org.eclipse.emf.common.util.EList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>And Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.AndPredicate#getOperands <em>Operands</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getAndPredicate()
+ * @model
+ * @generated
+ */
+public interface AndPredicate extends Predicate
+{
+ /**
+ * Returns the value of the '<em><b>Operands</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.releng.predicates.Predicate}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Operands</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Operands</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getAndPredicate_Operands()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Predicate> getOperands();
+
+} // AndPredicate
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/BuilderPredicate.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/BuilderPredicate.java
new file mode 100644
index 0000000000..06b1d7d698
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/BuilderPredicate.java
@@ -0,0 +1,50 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Builder Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.BuilderPredicate#getBuilder <em>Builder</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getBuilderPredicate()
+ * @model
+ * @generated
+ */
+public interface BuilderPredicate extends Predicate
+{
+ /**
+ * Returns the value of the '<em><b>Builder</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Builder</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Builder</em>' attribute.
+ * @see #setBuilder(String)
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getBuilderPredicate_Builder()
+ * @model required="true"
+ * @generated
+ */
+ String getBuilder();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.predicates.BuilderPredicate#getBuilder <em>Builder</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Builder</em>' attribute.
+ * @see #getBuilder()
+ * @generated
+ */
+ void setBuilder(String value);
+
+} // BuilderPredicate
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/FilePredicate.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/FilePredicate.java
new file mode 100644
index 0000000000..997ad79615
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/FilePredicate.java
@@ -0,0 +1,77 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>File Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.FilePredicate#getFilePattern <em>File Pattern</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.FilePredicate#getContentPattern <em>Content Pattern</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getFilePredicate()
+ * @model
+ * @generated
+ */
+public interface FilePredicate extends Predicate
+{
+ /**
+ * Returns the value of the '<em><b>File Pattern</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>File 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>File Pattern</em>' attribute.
+ * @see #setFilePattern(String)
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getFilePredicate_FilePattern()
+ * @model required="true"
+ * @generated
+ */
+ String getFilePattern();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.predicates.FilePredicate#getFilePattern <em>File Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>File Pattern</em>' attribute.
+ * @see #getFilePattern()
+ * @generated
+ */
+ void setFilePattern(String value);
+
+ /**
+ * Returns the value of the '<em><b>Content Pattern</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Content 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>Content Pattern</em>' attribute.
+ * @see #setContentPattern(String)
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getFilePredicate_ContentPattern()
+ * @model
+ * @generated
+ */
+ String getContentPattern();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.predicates.FilePredicate#getContentPattern <em>Content Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Content Pattern</em>' attribute.
+ * @see #getContentPattern()
+ * @generated
+ */
+ void setContentPattern(String value);
+
+} // FilePredicate
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NamePredicate.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NamePredicate.java
new file mode 100644
index 0000000000..8f4803a362
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NamePredicate.java
@@ -0,0 +1,50 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Name Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.NamePredicate#getPattern <em>Pattern</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getNamePredicate()
+ * @model
+ * @generated
+ */
+public interface NamePredicate extends Predicate
+{
+ /**
+ * Returns the value of the '<em><b>Pattern</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>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>Pattern</em>' attribute.
+ * @see #setPattern(String)
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getNamePredicate_Pattern()
+ * @model required="true"
+ * @generated
+ */
+ String getPattern();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.predicates.NamePredicate#getPattern <em>Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Pattern</em>' attribute.
+ * @see #getPattern()
+ * @generated
+ */
+ void setPattern(String value);
+
+} // NamePredicate
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NaturePredicate.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NaturePredicate.java
new file mode 100644
index 0000000000..cc21efc2d6
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NaturePredicate.java
@@ -0,0 +1,50 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Nature Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.NaturePredicate#getNature <em>Nature</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getNaturePredicate()
+ * @model
+ * @generated
+ */
+public interface NaturePredicate extends Predicate
+{
+ /**
+ * Returns the value of the '<em><b>Nature</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Nature</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Nature</em>' attribute.
+ * @see #setNature(String)
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getNaturePredicate_Nature()
+ * @model required="true"
+ * @generated
+ */
+ String getNature();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.predicates.NaturePredicate#getNature <em>Nature</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Nature</em>' attribute.
+ * @see #getNature()
+ * @generated
+ */
+ void setNature(String value);
+
+} // NaturePredicate
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NotPredicate.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NotPredicate.java
new file mode 100644
index 0000000000..1888936d80
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NotPredicate.java
@@ -0,0 +1,50 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Not Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.NotPredicate#getOperand <em>Operand</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getNotPredicate()
+ * @model
+ * @generated
+ */
+public interface NotPredicate extends Predicate
+{
+ /**
+ * Returns the value of the '<em><b>Operand</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Operand</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Operand</em>' containment reference.
+ * @see #setOperand(Predicate)
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getNotPredicate_Operand()
+ * @model containment="true"
+ * @generated
+ */
+ Predicate getOperand();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.predicates.NotPredicate#getOperand <em>Operand</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Operand</em>' containment reference.
+ * @see #getOperand()
+ * @generated
+ */
+ void setOperand(Predicate value);
+
+} // NotPredicate
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/OrPredicate.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/OrPredicate.java
new file mode 100644
index 0000000000..14456d3f87
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/OrPredicate.java
@@ -0,0 +1,41 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Or Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.OrPredicate#getOperands <em>Operands</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getOrPredicate()
+ * @model
+ * @generated
+ */
+public interface OrPredicate extends Predicate
+{
+ /**
+ * Returns the value of the '<em><b>Operands</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.releng.predicates.Predicate}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Operands</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Operands</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getOrPredicate_Operands()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Predicate> getOperands();
+
+} // OrPredicate
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/Predicate.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/Predicate.java
new file mode 100644
index 0000000000..e5d45cddcc
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/Predicate.java
@@ -0,0 +1,29 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates;
+
+import org.eclipse.core.resources.IProject;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getPredicate()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface Predicate extends EObject
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model projectDataType="org.eclipse.emf.cdo.releng.predicates.Project"
+ * @generated
+ */
+ boolean matches(IProject project);
+
+} // Predicate
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/PredicatesFactory.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/PredicatesFactory.java
new file mode 100644
index 0000000000..475fa0faf3
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/PredicatesFactory.java
@@ -0,0 +1,106 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage
+ * @generated
+ */
+public interface PredicatesFactory extends EFactory
+{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ PredicatesFactory eINSTANCE = org.eclipse.emf.cdo.releng.predicates.impl.PredicatesFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Name Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Name Predicate</em>'.
+ * @generated
+ */
+ NamePredicate createNamePredicate();
+
+ /**
+ * Returns a new object of class '<em>Repository Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Repository Predicate</em>'.
+ * @generated
+ */
+ RepositoryPredicate createRepositoryPredicate();
+
+ /**
+ * Returns a new object of class '<em>And Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>And Predicate</em>'.
+ * @generated
+ */
+ AndPredicate createAndPredicate();
+
+ /**
+ * Returns a new object of class '<em>Or Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Or Predicate</em>'.
+ * @generated
+ */
+ OrPredicate createOrPredicate();
+
+ /**
+ * Returns a new object of class '<em>Not Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Not Predicate</em>'.
+ * @generated
+ */
+ NotPredicate createNotPredicate();
+
+ /**
+ * Returns a new object of class '<em>Nature Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Nature Predicate</em>'.
+ * @generated
+ */
+ NaturePredicate createNaturePredicate();
+
+ /**
+ * Returns a new object of class '<em>Builder Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Builder Predicate</em>'.
+ * @generated
+ */
+ BuilderPredicate createBuilderPredicate();
+
+ /**
+ * Returns a new object of class '<em>File Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>File Predicate</em>'.
+ * @generated
+ */
+ FilePredicate createFilePredicate();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ PredicatesPackage getPredicatesPackage();
+
+} //PredicatesFactory
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/PredicatesPackage.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/PredicatesPackage.java
new file mode 100644
index 0000000000..3ca78cee5f
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/PredicatesPackage.java
@@ -0,0 +1,903 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface PredicatesPackage extends EPackage
+{
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "predicates";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/CDO/releng/predicates/1.0";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "predicates";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ PredicatesPackage eINSTANCE = org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.predicates.Predicate <em>Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.Predicate
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getPredicate()
+ * @generated
+ */
+ int PREDICATE = 0;
+
+ /**
+ * The number of structural features of the '<em>Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREDICATE_FEATURE_COUNT = 0;
+
+ /**
+ * The operation id for the '<em>Matches</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREDICATE___MATCHES__IPROJECT = 0;
+
+ /**
+ * The number of operations of the '<em>Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREDICATE_OPERATION_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.NamePredicateImpl <em>Name Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.NamePredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getNamePredicate()
+ * @generated
+ */
+ int NAME_PREDICATE = 1;
+
+ /**
+ * The feature id for the '<em><b>Pattern</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAME_PREDICATE__PATTERN = PREDICATE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Name Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAME_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Matches</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAME_PREDICATE___MATCHES__IPROJECT = PREDICATE___MATCHES__IPROJECT;
+
+ /**
+ * The number of operations of the '<em>Name Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAME_PREDICATE_OPERATION_COUNT = PREDICATE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.RepositoryPredicateImpl <em>Repository Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.RepositoryPredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getRepositoryPredicate()
+ * @generated
+ */
+ int REPOSITORY_PREDICATE = 2;
+
+ /**
+ * The feature id for the '<em><b>Project</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPOSITORY_PREDICATE__PROJECT = PREDICATE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Repository Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPOSITORY_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Matches</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPOSITORY_PREDICATE___MATCHES__IPROJECT = PREDICATE___MATCHES__IPROJECT;
+
+ /**
+ * The number of operations of the '<em>Repository Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPOSITORY_PREDICATE_OPERATION_COUNT = PREDICATE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.AndPredicateImpl <em>And Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.AndPredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getAndPredicate()
+ * @generated
+ */
+ int AND_PREDICATE = 3;
+
+ /**
+ * The feature id for the '<em><b>Operands</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AND_PREDICATE__OPERANDS = PREDICATE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>And Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AND_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Matches</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AND_PREDICATE___MATCHES__IPROJECT = PREDICATE___MATCHES__IPROJECT;
+
+ /**
+ * The number of operations of the '<em>And Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AND_PREDICATE_OPERATION_COUNT = PREDICATE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.OrPredicateImpl <em>Or Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.OrPredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getOrPredicate()
+ * @generated
+ */
+ int OR_PREDICATE = 4;
+
+ /**
+ * The feature id for the '<em><b>Operands</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OR_PREDICATE__OPERANDS = PREDICATE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Or Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OR_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Matches</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OR_PREDICATE___MATCHES__IPROJECT = PREDICATE___MATCHES__IPROJECT;
+
+ /**
+ * The number of operations of the '<em>Or Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OR_PREDICATE_OPERATION_COUNT = PREDICATE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.NotPredicateImpl <em>Not Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.NotPredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getNotPredicate()
+ * @generated
+ */
+ int NOT_PREDICATE = 5;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NOT_PREDICATE__OPERAND = PREDICATE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Not Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NOT_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Matches</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NOT_PREDICATE___MATCHES__IPROJECT = PREDICATE___MATCHES__IPROJECT;
+
+ /**
+ * The number of operations of the '<em>Not Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NOT_PREDICATE_OPERATION_COUNT = PREDICATE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.NaturePredicateImpl <em>Nature Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.NaturePredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getNaturePredicate()
+ * @generated
+ */
+ int NATURE_PREDICATE = 6;
+
+ /**
+ * The feature id for the '<em><b>Nature</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NATURE_PREDICATE__NATURE = PREDICATE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Nature Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NATURE_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Matches</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NATURE_PREDICATE___MATCHES__IPROJECT = PREDICATE___MATCHES__IPROJECT;
+
+ /**
+ * The number of operations of the '<em>Nature Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NATURE_PREDICATE_OPERATION_COUNT = PREDICATE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.BuilderPredicateImpl <em>Builder Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.BuilderPredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getBuilderPredicate()
+ * @generated
+ */
+ int BUILDER_PREDICATE = 7;
+
+ /**
+ * The feature id for the '<em><b>Builder</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BUILDER_PREDICATE__BUILDER = PREDICATE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Builder Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BUILDER_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Matches</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BUILDER_PREDICATE___MATCHES__IPROJECT = PREDICATE___MATCHES__IPROJECT;
+
+ /**
+ * The number of operations of the '<em>Builder Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BUILDER_PREDICATE_OPERATION_COUNT = PREDICATE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.FilePredicateImpl <em>File Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.FilePredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getFilePredicate()
+ * @generated
+ */
+ int FILE_PREDICATE = 8;
+
+ /**
+ * The feature id for the '<em><b>File Pattern</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILE_PREDICATE__FILE_PATTERN = PREDICATE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Content Pattern</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILE_PREDICATE__CONTENT_PATTERN = PREDICATE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>File Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILE_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Matches</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILE_PREDICATE___MATCHES__IPROJECT = PREDICATE___MATCHES__IPROJECT;
+
+ /**
+ * The number of operations of the '<em>File Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILE_PREDICATE_OPERATION_COUNT = PREDICATE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '<em>Project</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.core.resources.IProject
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getProject()
+ * @generated
+ */
+ int PROJECT = 9;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.predicates.Predicate <em>Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Predicate</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.Predicate
+ * @generated
+ */
+ EClass getPredicate();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.emf.cdo.releng.predicates.Predicate#matches(org.eclipse.core.resources.IProject) <em>Matches</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Matches</em>' operation.
+ * @see org.eclipse.emf.cdo.releng.predicates.Predicate#matches(org.eclipse.core.resources.IProject)
+ * @generated
+ */
+ EOperation getPredicate__Matches__IProject();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.predicates.NamePredicate <em>Name Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Name Predicate</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.NamePredicate
+ * @generated
+ */
+ EClass getNamePredicate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.predicates.NamePredicate#getPattern <em>Pattern</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Pattern</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.NamePredicate#getPattern()
+ * @see #getNamePredicate()
+ * @generated
+ */
+ EAttribute getNamePredicate_Pattern();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate <em>Repository Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Repository Predicate</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate
+ * @generated
+ */
+ EClass getRepositoryPredicate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate#getProject <em>Project</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Project</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate#getProject()
+ * @see #getRepositoryPredicate()
+ * @generated
+ */
+ EAttribute getRepositoryPredicate_Project();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.predicates.AndPredicate <em>And Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>And Predicate</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.AndPredicate
+ * @generated
+ */
+ EClass getAndPredicate();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.predicates.AndPredicate#getOperands <em>Operands</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Operands</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.AndPredicate#getOperands()
+ * @see #getAndPredicate()
+ * @generated
+ */
+ EReference getAndPredicate_Operands();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.predicates.OrPredicate <em>Or Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Or Predicate</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.OrPredicate
+ * @generated
+ */
+ EClass getOrPredicate();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.predicates.OrPredicate#getOperands <em>Operands</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Operands</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.OrPredicate#getOperands()
+ * @see #getOrPredicate()
+ * @generated
+ */
+ EReference getOrPredicate_Operands();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.predicates.NotPredicate <em>Not Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Not Predicate</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.NotPredicate
+ * @generated
+ */
+ EClass getNotPredicate();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.cdo.releng.predicates.NotPredicate#getOperand <em>Operand</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Operand</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.NotPredicate#getOperand()
+ * @see #getNotPredicate()
+ * @generated
+ */
+ EReference getNotPredicate_Operand();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.predicates.NaturePredicate <em>Nature Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Nature Predicate</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.NaturePredicate
+ * @generated
+ */
+ EClass getNaturePredicate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.predicates.NaturePredicate#getNature <em>Nature</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Nature</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.NaturePredicate#getNature()
+ * @see #getNaturePredicate()
+ * @generated
+ */
+ EAttribute getNaturePredicate_Nature();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.predicates.BuilderPredicate <em>Builder Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Builder Predicate</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.BuilderPredicate
+ * @generated
+ */
+ EClass getBuilderPredicate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.predicates.BuilderPredicate#getBuilder <em>Builder</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Builder</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.BuilderPredicate#getBuilder()
+ * @see #getBuilderPredicate()
+ * @generated
+ */
+ EAttribute getBuilderPredicate_Builder();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.predicates.FilePredicate <em>File Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>File Predicate</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.FilePredicate
+ * @generated
+ */
+ EClass getFilePredicate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.predicates.FilePredicate#getFilePattern <em>File Pattern</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>File Pattern</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.FilePredicate#getFilePattern()
+ * @see #getFilePredicate()
+ * @generated
+ */
+ EAttribute getFilePredicate_FilePattern();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.predicates.FilePredicate#getContentPattern <em>Content Pattern</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Content Pattern</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.FilePredicate#getContentPattern()
+ * @see #getFilePredicate()
+ * @generated
+ */
+ EAttribute getFilePredicate_ContentPattern();
+
+ /**
+ * Returns the meta object for data type '{@link org.eclipse.core.resources.IProject <em>Project</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Project</em>'.
+ * @see org.eclipse.core.resources.IProject
+ * @model instanceClass="org.eclipse.core.resources.IProject"
+ * @generated
+ */
+ EDataType getProject();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ PredicatesFactory getPredicatesFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals
+ {
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.predicates.Predicate <em>Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.Predicate
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getPredicate()
+ * @generated
+ */
+ EClass PREDICATE = eINSTANCE.getPredicate();
+
+ /**
+ * The meta object literal for the '<em><b>Matches</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation PREDICATE___MATCHES__IPROJECT = eINSTANCE.getPredicate__Matches__IProject();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.NamePredicateImpl <em>Name Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.NamePredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getNamePredicate()
+ * @generated
+ */
+ EClass NAME_PREDICATE = eINSTANCE.getNamePredicate();
+
+ /**
+ * The meta object literal for the '<em><b>Pattern</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute NAME_PREDICATE__PATTERN = eINSTANCE.getNamePredicate_Pattern();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.RepositoryPredicateImpl <em>Repository Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.RepositoryPredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getRepositoryPredicate()
+ * @generated
+ */
+ EClass REPOSITORY_PREDICATE = eINSTANCE.getRepositoryPredicate();
+
+ /**
+ * The meta object literal for the '<em><b>Project</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute REPOSITORY_PREDICATE__PROJECT = eINSTANCE.getRepositoryPredicate_Project();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.AndPredicateImpl <em>And Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.AndPredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getAndPredicate()
+ * @generated
+ */
+ EClass AND_PREDICATE = eINSTANCE.getAndPredicate();
+
+ /**
+ * The meta object literal for the '<em><b>Operands</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference AND_PREDICATE__OPERANDS = eINSTANCE.getAndPredicate_Operands();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.OrPredicateImpl <em>Or Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.OrPredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getOrPredicate()
+ * @generated
+ */
+ EClass OR_PREDICATE = eINSTANCE.getOrPredicate();
+
+ /**
+ * The meta object literal for the '<em><b>Operands</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference OR_PREDICATE__OPERANDS = eINSTANCE.getOrPredicate_Operands();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.NotPredicateImpl <em>Not Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.NotPredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getNotPredicate()
+ * @generated
+ */
+ EClass NOT_PREDICATE = eINSTANCE.getNotPredicate();
+
+ /**
+ * The meta object literal for the '<em><b>Operand</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference NOT_PREDICATE__OPERAND = eINSTANCE.getNotPredicate_Operand();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.NaturePredicateImpl <em>Nature Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.NaturePredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getNaturePredicate()
+ * @generated
+ */
+ EClass NATURE_PREDICATE = eINSTANCE.getNaturePredicate();
+
+ /**
+ * The meta object literal for the '<em><b>Nature</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute NATURE_PREDICATE__NATURE = eINSTANCE.getNaturePredicate_Nature();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.BuilderPredicateImpl <em>Builder Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.BuilderPredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getBuilderPredicate()
+ * @generated
+ */
+ EClass BUILDER_PREDICATE = eINSTANCE.getBuilderPredicate();
+
+ /**
+ * The meta object literal for the '<em><b>Builder</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute BUILDER_PREDICATE__BUILDER = eINSTANCE.getBuilderPredicate_Builder();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.FilePredicateImpl <em>File Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.FilePredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getFilePredicate()
+ * @generated
+ */
+ EClass FILE_PREDICATE = eINSTANCE.getFilePredicate();
+
+ /**
+ * The meta object literal for the '<em><b>File Pattern</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FILE_PREDICATE__FILE_PATTERN = eINSTANCE.getFilePredicate_FilePattern();
+
+ /**
+ * The meta object literal for the '<em><b>Content Pattern</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FILE_PREDICATE__CONTENT_PATTERN = eINSTANCE.getFilePredicate_ContentPattern();
+
+ /**
+ * The meta object literal for the '<em>Project</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.core.resources.IProject
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getProject()
+ * @generated
+ */
+ EDataType PROJECT = eINSTANCE.getProject();
+
+ }
+
+} //PredicatesPackage
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/RepositoryPredicate.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/RepositoryPredicate.java
new file mode 100644
index 0000000000..f345e173de
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/RepositoryPredicate.java
@@ -0,0 +1,51 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates;
+
+import org.eclipse.core.resources.IProject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Repository Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate#getProject <em>Project</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getRepositoryPredicate()
+ * @model
+ * @generated
+ */
+public interface RepositoryPredicate extends Predicate
+{
+ /**
+ * Returns the value of the '<em><b>Project</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Project</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Project</em>' attribute.
+ * @see #setProject(IProject)
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getRepositoryPredicate_Project()
+ * @model dataType="org.eclipse.emf.cdo.releng.predicates.Project"
+ * @generated
+ */
+ IProject getProject();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate#getProject <em>Project</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Project</em>' attribute.
+ * @see #getProject()
+ * @generated
+ */
+ void setProject(IProject value);
+
+} // RepositoryPredicate
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/AndPredicateImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/AndPredicateImpl.java
new file mode 100644
index 0000000000..9afc3075e7
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/AndPredicateImpl.java
@@ -0,0 +1,199 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.impl;
+
+import org.eclipse.emf.cdo.releng.predicates.AndPredicate;
+import org.eclipse.emf.cdo.releng.predicates.Predicate;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.core.resources.IProject;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.Collection;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>And Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.impl.AndPredicateImpl#getOperands <em>Operands</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AndPredicateImpl extends MinimalEObjectImpl.Container implements AndPredicate
+{
+ /**
+ * The cached value of the '{@link #getOperands() <em>Operands</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOperands()
+ * @generated
+ * @ordered
+ */
+ protected EList<Predicate> operands;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AndPredicateImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return PredicatesPackage.Literals.AND_PREDICATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Predicate> getOperands()
+ {
+ if (operands == null)
+ {
+ operands = new EObjectContainmentEList<Predicate>(Predicate.class, this, PredicatesPackage.AND_PREDICATE__OPERANDS);
+ }
+ return operands;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean matches(IProject project)
+ {
+ for (Predicate operand : getOperands())
+ {
+ if (!operand.matches(project))
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.AND_PREDICATE__OPERANDS:
+ return ((InternalEList<?>)getOperands()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.AND_PREDICATE__OPERANDS:
+ return getOperands();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.AND_PREDICATE__OPERANDS:
+ getOperands().clear();
+ getOperands().addAll((Collection<? extends Predicate>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.AND_PREDICATE__OPERANDS:
+ getOperands().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.AND_PREDICATE__OPERANDS:
+ return operands != null && !operands.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException
+ {
+ switch (operationID)
+ {
+ case PredicatesPackage.AND_PREDICATE___MATCHES__IPROJECT:
+ return matches((IProject)arguments.get(0));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // AndPredicateImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/BuilderPredicateImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/BuilderPredicateImpl.java
new file mode 100644
index 0000000000..a39130189b
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/BuilderPredicateImpl.java
@@ -0,0 +1,227 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.impl;
+
+import org.eclipse.emf.cdo.releng.predicates.BuilderPredicate;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.core.resources.ICommand;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+
+import java.lang.reflect.InvocationTargetException;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Builder Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.impl.BuilderPredicateImpl#getBuilder <em>Builder</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BuilderPredicateImpl extends MinimalEObjectImpl.Container implements BuilderPredicate
+{
+ /**
+ * The default value of the '{@link #getBuilder() <em>Builder</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBuilder()
+ * @generated
+ * @ordered
+ */
+ protected static final String BUILDER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getBuilder() <em>Builder</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBuilder()
+ * @generated
+ * @ordered
+ */
+ protected String builder = BUILDER_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BuilderPredicateImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return PredicatesPackage.Literals.BUILDER_PREDICATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getBuilder()
+ {
+ return builder;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBuilder(String newBuilder)
+ {
+ String oldBuilder = builder;
+ builder = newBuilder;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PredicatesPackage.BUILDER_PREDICATE__BUILDER, oldBuilder, builder));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean matches(IProject project)
+ {
+ String builder = getBuilder();
+ if (builder != null)
+ {
+ try
+ {
+ for (ICommand command : project.getDescription().getBuildSpec())
+ {
+ String name = command.getBuilderName();
+ if (builder.equals(name))
+ {
+ return true;
+ }
+ }
+ }
+ catch (CoreException ex)
+ {
+ // Ignore
+ }
+ }
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.BUILDER_PREDICATE__BUILDER:
+ return getBuilder();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.BUILDER_PREDICATE__BUILDER:
+ setBuilder((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.BUILDER_PREDICATE__BUILDER:
+ setBuilder(BUILDER_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.BUILDER_PREDICATE__BUILDER:
+ return BUILDER_EDEFAULT == null ? builder != null : !BUILDER_EDEFAULT.equals(builder);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException
+ {
+ switch (operationID)
+ {
+ case PredicatesPackage.BUILDER_PREDICATE___MATCHES__IPROJECT:
+ return matches((IProject)arguments.get(0));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (builder: ");
+ result.append(builder);
+ result.append(')');
+ return result.toString();
+ }
+
+} // BuilderPredicateImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/FilePredicateImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/FilePredicateImpl.java
new file mode 100644
index 0000000000..4fce36e583
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/FilePredicateImpl.java
@@ -0,0 +1,392 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.impl;
+
+import org.eclipse.emf.cdo.releng.predicates.FilePredicate;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceVisitor;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.Status;
+
+import java.io.BufferedInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
+import java.util.regex.Pattern;
+import java.util.regex.PatternSyntaxException;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>File Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.impl.FilePredicateImpl#getFilePattern <em>File Pattern</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.impl.FilePredicateImpl#getContentPattern <em>Content Pattern</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FilePredicateImpl extends MinimalEObjectImpl.Container implements FilePredicate
+{
+ /**
+ * The default value of the '{@link #getFilePattern() <em>File Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFilePattern()
+ * @generated
+ * @ordered
+ */
+ protected static final String FILE_PATTERN_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getFilePattern() <em>File Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFilePattern()
+ * @generated
+ * @ordered
+ */
+ protected String filePattern = FILE_PATTERN_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getContentPattern() <em>Content Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getContentPattern()
+ * @generated
+ * @ordered
+ */
+ protected static final String CONTENT_PATTERN_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getContentPattern() <em>Content Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getContentPattern()
+ * @generated
+ * @ordered
+ */
+ protected String contentPattern = CONTENT_PATTERN_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FilePredicateImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return PredicatesPackage.Literals.FILE_PREDICATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getFilePattern()
+ {
+ return filePattern;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFilePattern(String newFilePattern)
+ {
+ String oldFilePattern = filePattern;
+ filePattern = newFilePattern;
+ if (eNotificationRequired())
+ {
+ eNotify(new ENotificationImpl(this, Notification.SET, PredicatesPackage.FILE_PREDICATE__FILE_PATTERN,
+ oldFilePattern, filePattern));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getContentPattern()
+ {
+ return contentPattern;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setContentPattern(String newContentPattern)
+ {
+ String oldContentPattern = contentPattern;
+ contentPattern = newContentPattern;
+ if (eNotificationRequired())
+ {
+ eNotify(new ENotificationImpl(this, Notification.SET, PredicatesPackage.FILE_PREDICATE__CONTENT_PATTERN,
+ oldContentPattern, contentPattern));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean matches(IProject project)
+ {
+ String filePattern = getFilePattern();
+ if (filePattern != null)
+ {
+ StringBuilder pattern = new StringBuilder();
+ for (int i = 0, length = filePattern.length(); i < length; ++i)
+ {
+ char character = filePattern.charAt(i);
+ if (!Character.isJavaIdentifierPart(character))
+ {
+ if (character == '*')
+ {
+ if (i + 1 < length && filePattern.charAt(i + 1) == '*')
+ {
+ ++i;
+ pattern.append(".*");
+ }
+ else
+ {
+ pattern.append("[^/]*");
+ }
+ }
+ else if (character == '?')
+ {
+ pattern.append("[^/]");
+ }
+ else
+ {
+ pattern.append('\\');
+ pattern.append(character);
+ }
+ }
+ else
+ {
+ pattern.append(character);
+ }
+ }
+
+ try
+ {
+ final Pattern regex = Pattern.compile(pattern.toString());
+ final CoreException matched = new CoreException(Status.OK_STATUS);
+ final Pattern contentPattern = getContentPattern() == null ? null : Pattern.compile(getContentPattern());
+ try
+ {
+ project.accept(new IResourceVisitor()
+ {
+ public boolean visit(IResource resource) throws CoreException
+ {
+ String path = resource.getProjectRelativePath().toString();
+ if (regex.matcher(path).matches())
+ {
+ if (contentPattern == null)
+ {
+ throw matched;
+ }
+
+ if (resource.getType() == IResource.FILE)
+ {
+ IFile file = (IFile)resource;
+ String charset = file.getCharset();
+ InputStream inputStream = null;
+ try
+ {
+ inputStream = file.getContents();
+ BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
+ byte[] input = new byte[bufferedInputStream.available()];
+ bufferedInputStream.read(input);
+ String contents = charset == null ? new String(input) : new String(input, charset);
+ if (contentPattern.matcher(contents).find())
+ {
+ throw matched;
+ }
+ }
+ catch (IOException ex)
+ {
+ // Ignore.
+ }
+ finally
+ {
+ if (inputStream != null)
+ {
+ try
+ {
+ inputStream.close();
+ }
+ catch (IOException ex)
+ {
+ // Ignore.
+ }
+ }
+ }
+ }
+ }
+ return true;
+ }
+ });
+ }
+ catch (CoreException ex)
+ {
+ if (ex == matched)
+ {
+ return true;
+ }
+ }
+ }
+ catch (PatternSyntaxException exception)
+ {
+ // Ignore
+ }
+ }
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.FILE_PREDICATE__FILE_PATTERN:
+ return getFilePattern();
+ case PredicatesPackage.FILE_PREDICATE__CONTENT_PATTERN:
+ return getContentPattern();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.FILE_PREDICATE__FILE_PATTERN:
+ setFilePattern((String)newValue);
+ return;
+ case PredicatesPackage.FILE_PREDICATE__CONTENT_PATTERN:
+ setContentPattern((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.FILE_PREDICATE__FILE_PATTERN:
+ setFilePattern(FILE_PATTERN_EDEFAULT);
+ return;
+ case PredicatesPackage.FILE_PREDICATE__CONTENT_PATTERN:
+ setContentPattern(CONTENT_PATTERN_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.FILE_PREDICATE__FILE_PATTERN:
+ return FILE_PATTERN_EDEFAULT == null ? filePattern != null : !FILE_PATTERN_EDEFAULT.equals(filePattern);
+ case PredicatesPackage.FILE_PREDICATE__CONTENT_PATTERN:
+ return CONTENT_PATTERN_EDEFAULT == null ? contentPattern != null : !CONTENT_PATTERN_EDEFAULT
+ .equals(contentPattern);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException
+ {
+ switch (operationID)
+ {
+ case PredicatesPackage.FILE_PREDICATE___MATCHES__IPROJECT:
+ return matches((IProject)arguments.get(0));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (filePattern: ");
+ result.append(filePattern);
+ result.append(", contentPattern: ");
+ result.append(contentPattern);
+ result.append(')');
+ return result.toString();
+ }
+
+} // FilePredicateImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NamePredicateImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NamePredicateImpl.java
new file mode 100644
index 0000000000..9ffaa7f784
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NamePredicateImpl.java
@@ -0,0 +1,206 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.impl;
+
+import org.eclipse.emf.cdo.releng.predicates.NamePredicate;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.core.resources.IProject;
+
+import java.lang.reflect.InvocationTargetException;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Name Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.impl.NamePredicateImpl#getPattern <em>Pattern</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class NamePredicateImpl extends MinimalEObjectImpl.Container implements NamePredicate
+{
+ /**
+ * The default value of the '{@link #getPattern() <em>Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPattern()
+ * @generated
+ * @ordered
+ */
+ protected static final String PATTERN_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPattern() <em>Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPattern()
+ * @generated
+ * @ordered
+ */
+ protected String pattern = PATTERN_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NamePredicateImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return PredicatesPackage.Literals.NAME_PREDICATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getPattern()
+ {
+ return pattern;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPattern(String newPattern)
+ {
+ String oldPattern = pattern;
+ pattern = newPattern;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PredicatesPackage.NAME_PREDICATE__PATTERN, oldPattern, pattern));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean matches(IProject project)
+ {
+ return pattern != null && project != null && project.getName().matches(pattern);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.NAME_PREDICATE__PATTERN:
+ return getPattern();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.NAME_PREDICATE__PATTERN:
+ setPattern((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.NAME_PREDICATE__PATTERN:
+ setPattern(PATTERN_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.NAME_PREDICATE__PATTERN:
+ return PATTERN_EDEFAULT == null ? pattern != null : !PATTERN_EDEFAULT.equals(pattern);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException
+ {
+ switch (operationID)
+ {
+ case PredicatesPackage.NAME_PREDICATE___MATCHES__IPROJECT:
+ return matches((IProject)arguments.get(0));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (pattern: ");
+ result.append(pattern);
+ result.append(')');
+ return result.toString();
+ }
+
+} // NamePredicateImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NaturePredicateImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NaturePredicateImpl.java
new file mode 100644
index 0000000000..90efa6ca20
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NaturePredicateImpl.java
@@ -0,0 +1,222 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.impl;
+
+import org.eclipse.emf.cdo.releng.predicates.NaturePredicate;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+
+import java.lang.reflect.InvocationTargetException;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Nature Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.impl.NaturePredicateImpl#getNature <em>Nature</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class NaturePredicateImpl extends MinimalEObjectImpl.Container implements NaturePredicate
+{
+ /**
+ * The default value of the '{@link #getNature() <em>Nature</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNature()
+ * @generated
+ * @ordered
+ */
+ protected static final String NATURE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getNature() <em>Nature</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNature()
+ * @generated
+ * @ordered
+ */
+ protected String nature = NATURE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NaturePredicateImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return PredicatesPackage.Literals.NATURE_PREDICATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getNature()
+ {
+ return nature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNature(String newNature)
+ {
+ String oldNature = nature;
+ nature = newNature;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PredicatesPackage.NATURE_PREDICATE__NATURE, oldNature, nature));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean matches(IProject project)
+ {
+ try
+ {
+ String[] natureIds = project.getDescription().getNatureIds();
+ for (String natureId : natureIds)
+ {
+ if (natureId.equals(nature))
+ {
+ return true;
+ }
+ }
+ }
+ catch (CoreException ex)
+ {
+ // Ignore
+ }
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.NATURE_PREDICATE__NATURE:
+ return getNature();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.NATURE_PREDICATE__NATURE:
+ setNature((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.NATURE_PREDICATE__NATURE:
+ setNature(NATURE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.NATURE_PREDICATE__NATURE:
+ return NATURE_EDEFAULT == null ? nature != null : !NATURE_EDEFAULT.equals(nature);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException
+ {
+ switch (operationID)
+ {
+ case PredicatesPackage.NATURE_PREDICATE___MATCHES__IPROJECT:
+ return matches((IProject)arguments.get(0));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (nature: ");
+ result.append(nature);
+ result.append(')');
+ return result.toString();
+ }
+
+} // NaturePredicateImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NotPredicateImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NotPredicateImpl.java
new file mode 100644
index 0000000000..188006e1b5
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NotPredicateImpl.java
@@ -0,0 +1,225 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.impl;
+
+import org.eclipse.emf.cdo.releng.predicates.NotPredicate;
+import org.eclipse.emf.cdo.releng.predicates.Predicate;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.core.resources.IProject;
+
+import java.lang.reflect.InvocationTargetException;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Not Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.impl.NotPredicateImpl#getOperand <em>Operand</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class NotPredicateImpl extends MinimalEObjectImpl.Container implements NotPredicate
+{
+ /**
+ * The cached value of the '{@link #getOperand() <em>Operand</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOperand()
+ * @generated
+ * @ordered
+ */
+ protected Predicate operand;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NotPredicateImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return PredicatesPackage.Literals.NOT_PREDICATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Predicate getOperand()
+ {
+ return operand;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetOperand(Predicate newOperand, NotificationChain msgs)
+ {
+ Predicate oldOperand = operand;
+ operand = newOperand;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, PredicatesPackage.NOT_PREDICATE__OPERAND, oldOperand, newOperand);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOperand(Predicate newOperand)
+ {
+ if (newOperand != operand)
+ {
+ NotificationChain msgs = null;
+ if (operand != null)
+ msgs = ((InternalEObject)operand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - PredicatesPackage.NOT_PREDICATE__OPERAND, null, msgs);
+ if (newOperand != null)
+ msgs = ((InternalEObject)newOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - PredicatesPackage.NOT_PREDICATE__OPERAND, null, msgs);
+ msgs = basicSetOperand(newOperand, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PredicatesPackage.NOT_PREDICATE__OPERAND, newOperand, newOperand));
+ }
+
+ /**
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean matches(IProject project)
+ {
+ Predicate operand = getOperand();
+ return operand == null || !operand.matches(project);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.NOT_PREDICATE__OPERAND:
+ return basicSetOperand(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.NOT_PREDICATE__OPERAND:
+ return getOperand();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.NOT_PREDICATE__OPERAND:
+ setOperand((Predicate)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.NOT_PREDICATE__OPERAND:
+ setOperand((Predicate)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.NOT_PREDICATE__OPERAND:
+ return operand != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException
+ {
+ switch (operationID)
+ {
+ case PredicatesPackage.NOT_PREDICATE___MATCHES__IPROJECT:
+ return matches((IProject)arguments.get(0));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // NotPredicateImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/OrPredicateImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/OrPredicateImpl.java
new file mode 100644
index 0000000000..808b6dee95
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/OrPredicateImpl.java
@@ -0,0 +1,199 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.impl;
+
+import org.eclipse.emf.cdo.releng.predicates.OrPredicate;
+import org.eclipse.emf.cdo.releng.predicates.Predicate;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.core.resources.IProject;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.Collection;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Or Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.impl.OrPredicateImpl#getOperands <em>Operands</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class OrPredicateImpl extends MinimalEObjectImpl.Container implements OrPredicate
+{
+ /**
+ * The cached value of the '{@link #getOperands() <em>Operands</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOperands()
+ * @generated
+ * @ordered
+ */
+ protected EList<Predicate> operands;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OrPredicateImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return PredicatesPackage.Literals.OR_PREDICATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Predicate> getOperands()
+ {
+ if (operands == null)
+ {
+ operands = new EObjectContainmentEList<Predicate>(Predicate.class, this, PredicatesPackage.OR_PREDICATE__OPERANDS);
+ }
+ return operands;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean matches(IProject project)
+ {
+ for (Predicate operand : getOperands())
+ {
+ if (operand.matches(project))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.OR_PREDICATE__OPERANDS:
+ return ((InternalEList<?>)getOperands()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.OR_PREDICATE__OPERANDS:
+ return getOperands();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.OR_PREDICATE__OPERANDS:
+ getOperands().clear();
+ getOperands().addAll((Collection<? extends Predicate>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.OR_PREDICATE__OPERANDS:
+ getOperands().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.OR_PREDICATE__OPERANDS:
+ return operands != null && !operands.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException
+ {
+ switch (operationID)
+ {
+ case PredicatesPackage.OR_PREDICATE___MATCHES__IPROJECT:
+ return matches((IProject)arguments.get(0));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // OrPredicateImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/PredicatesFactoryImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/PredicatesFactoryImpl.java
new file mode 100644
index 0000000000..856beb9893
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/PredicatesFactoryImpl.java
@@ -0,0 +1,265 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.impl;
+
+import org.eclipse.emf.cdo.releng.predicates.AndPredicate;
+import org.eclipse.emf.cdo.releng.predicates.BuilderPredicate;
+import org.eclipse.emf.cdo.releng.predicates.NamePredicate;
+import org.eclipse.emf.cdo.releng.predicates.NaturePredicate;
+import org.eclipse.emf.cdo.releng.predicates.NotPredicate;
+import org.eclipse.emf.cdo.releng.predicates.OrPredicate;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesFactory;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+import org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.emf.cdo.releng.predicates.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PredicatesFactoryImpl extends EFactoryImpl implements PredicatesFactory
+{
+ private static final IWorkspaceRoot WORKSPACE_ROOT = ResourcesPlugin.getWorkspace().getRoot();
+
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PredicatesFactory init()
+ {
+ try
+ {
+ PredicatesFactory thePredicatesFactory = (PredicatesFactory)EPackage.Registry.INSTANCE.getEFactory(PredicatesPackage.eNS_URI);
+ if (thePredicatesFactory != null)
+ {
+ return thePredicatesFactory;
+ }
+ }
+ catch (Exception exception)
+ {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new PredicatesFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PredicatesFactoryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass)
+ {
+ switch (eClass.getClassifierID())
+ {
+ case PredicatesPackage.NAME_PREDICATE: return createNamePredicate();
+ case PredicatesPackage.REPOSITORY_PREDICATE: return createRepositoryPredicate();
+ case PredicatesPackage.AND_PREDICATE: return createAndPredicate();
+ case PredicatesPackage.OR_PREDICATE: return createOrPredicate();
+ case PredicatesPackage.NOT_PREDICATE: return createNotPredicate();
+ case PredicatesPackage.NATURE_PREDICATE: return createNaturePredicate();
+ case PredicatesPackage.BUILDER_PREDICATE: return createBuilderPredicate();
+ case PredicatesPackage.FILE_PREDICATE: return createFilePredicate();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ case PredicatesPackage.PROJECT:
+ return createProjectFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ case PredicatesPackage.PROJECT:
+ return convertProjectToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NamePredicate createNamePredicate()
+ {
+ NamePredicateImpl namePredicate = new NamePredicateImpl();
+ return namePredicate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RepositoryPredicate createRepositoryPredicate()
+ {
+ RepositoryPredicateImpl repositoryPredicate = new RepositoryPredicateImpl();
+ return repositoryPredicate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AndPredicate createAndPredicate()
+ {
+ AndPredicateImpl andPredicate = new AndPredicateImpl();
+ return andPredicate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OrPredicate createOrPredicate()
+ {
+ OrPredicateImpl orPredicate = new OrPredicateImpl();
+ return orPredicate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotPredicate createNotPredicate()
+ {
+ NotPredicateImpl notPredicate = new NotPredicateImpl();
+ return notPredicate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NaturePredicate createNaturePredicate()
+ {
+ NaturePredicateImpl naturePredicate = new NaturePredicateImpl();
+ return naturePredicate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BuilderPredicate createBuilderPredicate()
+ {
+ BuilderPredicateImpl builderPredicate = new BuilderPredicateImpl();
+ return builderPredicate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FilePredicate createFilePredicate()
+ {
+ FilePredicateImpl filePredicate = new FilePredicateImpl();
+ return filePredicate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public IProject createProjectFromString(EDataType eDataType, String initialValue)
+ {
+ if (initialValue == null)
+ {
+ return null;
+ }
+ return WORKSPACE_ROOT.getProject(initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertProjectToString(EDataType eDataType, Object instanceValue)
+ {
+ if (instanceValue == null)
+ {
+ return null;
+ }
+ IProject project = (IProject)instanceValue;
+ return project.getName();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PredicatesPackage getPredicatesPackage()
+ {
+ return (PredicatesPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static PredicatesPackage getPackage()
+ {
+ return PredicatesPackage.eINSTANCE;
+ }
+
+} // PredicatesFactoryImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/PredicatesPackageImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/PredicatesPackageImpl.java
new file mode 100644
index 0000000000..ed68ffe2fc
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/PredicatesPackageImpl.java
@@ -0,0 +1,507 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.impl;
+
+import org.eclipse.core.resources.IProject;
+
+import org.eclipse.emf.cdo.releng.predicates.AndPredicate;
+import org.eclipse.emf.cdo.releng.predicates.BuilderPredicate;
+import org.eclipse.emf.cdo.releng.predicates.FilePredicate;
+import org.eclipse.emf.cdo.releng.predicates.NamePredicate;
+import org.eclipse.emf.cdo.releng.predicates.NaturePredicate;
+import org.eclipse.emf.cdo.releng.predicates.NotPredicate;
+import org.eclipse.emf.cdo.releng.predicates.OrPredicate;
+import org.eclipse.emf.cdo.releng.predicates.Predicate;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesFactory;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+import org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PredicatesPackageImpl extends EPackageImpl implements PredicatesPackage
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass predicateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass namePredicateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass repositoryPredicateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass andPredicateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass orPredicateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass notPredicateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass naturePredicateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass builderPredicateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass filePredicateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType projectEDataType = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private PredicatesPackageImpl()
+ {
+ super(eNS_URI, PredicatesFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link PredicatesPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static PredicatesPackage init()
+ {
+ if (isInited) return (PredicatesPackage)EPackage.Registry.INSTANCE.getEPackage(PredicatesPackage.eNS_URI);
+
+ // Obtain or create and register package
+ PredicatesPackageImpl thePredicatesPackage = (PredicatesPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof PredicatesPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new PredicatesPackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ thePredicatesPackage.createPackageContents();
+
+ // Initialize created meta-data
+ thePredicatesPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ thePredicatesPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(PredicatesPackage.eNS_URI, thePredicatesPackage);
+ return thePredicatesPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPredicate()
+ {
+ return predicateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getPredicate__Matches__IProject()
+ {
+ return predicateEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getNamePredicate()
+ {
+ return namePredicateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getNamePredicate_Pattern()
+ {
+ return (EAttribute)namePredicateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRepositoryPredicate()
+ {
+ return repositoryPredicateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getRepositoryPredicate_Project()
+ {
+ return (EAttribute)repositoryPredicateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAndPredicate()
+ {
+ return andPredicateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAndPredicate_Operands()
+ {
+ return (EReference)andPredicateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getOrPredicate()
+ {
+ return orPredicateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOrPredicate_Operands()
+ {
+ return (EReference)orPredicateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getNotPredicate()
+ {
+ return notPredicateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getNotPredicate_Operand()
+ {
+ return (EReference)notPredicateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getNaturePredicate()
+ {
+ return naturePredicateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getNaturePredicate_Nature()
+ {
+ return (EAttribute)naturePredicateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getBuilderPredicate()
+ {
+ return builderPredicateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getBuilderPredicate_Builder()
+ {
+ return (EAttribute)builderPredicateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFilePredicate()
+ {
+ return filePredicateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFilePredicate_FilePattern()
+ {
+ return (EAttribute)filePredicateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFilePredicate_ContentPattern()
+ {
+ return (EAttribute)filePredicateEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EDataType getProject()
+ {
+ return projectEDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PredicatesFactory getPredicatesFactory()
+ {
+ return (PredicatesFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents()
+ {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ predicateEClass = createEClass(PREDICATE);
+ createEOperation(predicateEClass, PREDICATE___MATCHES__IPROJECT);
+
+ namePredicateEClass = createEClass(NAME_PREDICATE);
+ createEAttribute(namePredicateEClass, NAME_PREDICATE__PATTERN);
+
+ repositoryPredicateEClass = createEClass(REPOSITORY_PREDICATE);
+ createEAttribute(repositoryPredicateEClass, REPOSITORY_PREDICATE__PROJECT);
+
+ andPredicateEClass = createEClass(AND_PREDICATE);
+ createEReference(andPredicateEClass, AND_PREDICATE__OPERANDS);
+
+ orPredicateEClass = createEClass(OR_PREDICATE);
+ createEReference(orPredicateEClass, OR_PREDICATE__OPERANDS);
+
+ notPredicateEClass = createEClass(NOT_PREDICATE);
+ createEReference(notPredicateEClass, NOT_PREDICATE__OPERAND);
+
+ naturePredicateEClass = createEClass(NATURE_PREDICATE);
+ createEAttribute(naturePredicateEClass, NATURE_PREDICATE__NATURE);
+
+ builderPredicateEClass = createEClass(BUILDER_PREDICATE);
+ createEAttribute(builderPredicateEClass, BUILDER_PREDICATE__BUILDER);
+
+ filePredicateEClass = createEClass(FILE_PREDICATE);
+ createEAttribute(filePredicateEClass, FILE_PREDICATE__FILE_PATTERN);
+ createEAttribute(filePredicateEClass, FILE_PREDICATE__CONTENT_PATTERN);
+
+ // Create data types
+ projectEDataType = createEDataType(PROJECT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents()
+ {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ namePredicateEClass.getESuperTypes().add(this.getPredicate());
+ repositoryPredicateEClass.getESuperTypes().add(this.getPredicate());
+ andPredicateEClass.getESuperTypes().add(this.getPredicate());
+ orPredicateEClass.getESuperTypes().add(this.getPredicate());
+ notPredicateEClass.getESuperTypes().add(this.getPredicate());
+ naturePredicateEClass.getESuperTypes().add(this.getPredicate());
+ builderPredicateEClass.getESuperTypes().add(this.getPredicate());
+ filePredicateEClass.getESuperTypes().add(this.getPredicate());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(predicateEClass, Predicate.class, "Predicate", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ EOperation op = initEOperation(getPredicate__Matches__IProject(), ecorePackage.getEBoolean(), "matches", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getProject(), "project", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(namePredicateEClass, NamePredicate.class, "NamePredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getNamePredicate_Pattern(), ecorePackage.getEString(), "pattern", null, 1, 1, NamePredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(repositoryPredicateEClass, RepositoryPredicate.class, "RepositoryPredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getRepositoryPredicate_Project(), this.getProject(), "project", null, 0, 1, RepositoryPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(andPredicateEClass, AndPredicate.class, "AndPredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getAndPredicate_Operands(), this.getPredicate(), null, "operands", null, 0, -1, AndPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(orPredicateEClass, OrPredicate.class, "OrPredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getOrPredicate_Operands(), this.getPredicate(), null, "operands", null, 0, -1, OrPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(notPredicateEClass, NotPredicate.class, "NotPredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getNotPredicate_Operand(), this.getPredicate(), null, "operand", null, 0, 1, NotPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(naturePredicateEClass, NaturePredicate.class, "NaturePredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getNaturePredicate_Nature(), ecorePackage.getEString(), "nature", null, 1, 1, NaturePredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(builderPredicateEClass, BuilderPredicate.class, "BuilderPredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getBuilderPredicate_Builder(), ecorePackage.getEString(), "builder", null, 1, 1, BuilderPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(filePredicateEClass, FilePredicate.class, "FilePredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getFilePredicate_FilePattern(), ecorePackage.getEString(), "filePattern", null, 1, 1, FilePredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getFilePredicate_ContentPattern(), ecorePackage.getEString(), "contentPattern", null, 0, 1, FilePredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Initialize data types
+ initEDataType(projectEDataType, IProject.class, "Project", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //PredicatesPackageImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/RepositoryPredicateImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/RepositoryPredicateImpl.java
new file mode 100644
index 0000000000..71ea579298
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/RepositoryPredicateImpl.java
@@ -0,0 +1,229 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.impl;
+
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+import org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.egit.core.GitProvider;
+import org.eclipse.egit.core.project.GitProjectData;
+import org.eclipse.egit.core.project.RepositoryMapping;
+import org.eclipse.team.core.RepositoryProvider;
+
+import java.lang.reflect.InvocationTargetException;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Repository Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.impl.RepositoryPredicateImpl#getProject <em>Project</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class RepositoryPredicateImpl extends MinimalEObjectImpl.Container implements RepositoryPredicate
+{
+ /**
+ * The default value of the '{@link #getProject() <em>Project</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProject()
+ * @generated
+ * @ordered
+ */
+ protected static final IProject PROJECT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getProject() <em>Project</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProject()
+ * @generated
+ * @ordered
+ */
+ protected IProject project = PROJECT_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RepositoryPredicateImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return PredicatesPackage.Literals.REPOSITORY_PREDICATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IProject getProject()
+ {
+ return project;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setProject(IProject newProject)
+ {
+ IProject oldProject = project;
+ project = newProject;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PredicatesPackage.REPOSITORY_PREDICATE__PROJECT, oldProject, project));
+ }
+
+ private IPath getGitDirAbsolutePath(IProject project)
+ {
+ if (project != null)
+ {
+ RepositoryProvider provider = RepositoryProvider.getProvider(project);
+ if (provider instanceof GitProvider)
+ {
+ GitProvider gitProvider = (GitProvider)provider;
+ GitProjectData data = gitProvider.getData();
+ RepositoryMapping repositoryMapping = data.getRepositoryMapping(project);
+ return repositoryMapping.getGitDirAbsolutePath();
+ }
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean matches(IProject project)
+ {
+ IPath prototypeGitDirAbsolutePath = getGitDirAbsolutePath(getProject());
+ IPath gitDirAbsolutePath = getGitDirAbsolutePath(project);
+ return prototypeGitDirAbsolutePath != null && prototypeGitDirAbsolutePath.equals(gitDirAbsolutePath);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.REPOSITORY_PREDICATE__PROJECT:
+ return getProject();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.REPOSITORY_PREDICATE__PROJECT:
+ setProject((IProject)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.REPOSITORY_PREDICATE__PROJECT:
+ setProject(PROJECT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.REPOSITORY_PREDICATE__PROJECT:
+ return PROJECT_EDEFAULT == null ? project != null : !PROJECT_EDEFAULT.equals(project);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException
+ {
+ switch (operationID)
+ {
+ case PredicatesPackage.REPOSITORY_PREDICATE___MATCHES__IPROJECT:
+ return matches((IProject)arguments.get(0));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (project: ");
+ result.append(project);
+ result.append(')');
+ return result.toString();
+ }
+
+} // RepositoryPredicateImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/util/PredicatesAdapterFactory.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/util/PredicatesAdapterFactory.java
new file mode 100644
index 0000000000..c1e7d939f7
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/util/PredicatesAdapterFactory.java
@@ -0,0 +1,292 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.util;
+
+import org.eclipse.emf.cdo.releng.predicates.*;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage
+ * @generated
+ */
+public class PredicatesAdapterFactory extends AdapterFactoryImpl
+{
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static PredicatesPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PredicatesAdapterFactory()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = PredicatesPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object)
+ {
+ if (object == modelPackage)
+ {
+ return true;
+ }
+ if (object instanceof EObject)
+ {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PredicatesSwitch<Adapter> modelSwitch =
+ new PredicatesSwitch<Adapter>()
+ {
+ @Override
+ public Adapter casePredicate(Predicate object)
+ {
+ return createPredicateAdapter();
+ }
+ @Override
+ public Adapter caseNamePredicate(NamePredicate object)
+ {
+ return createNamePredicateAdapter();
+ }
+ @Override
+ public Adapter caseRepositoryPredicate(RepositoryPredicate object)
+ {
+ return createRepositoryPredicateAdapter();
+ }
+ @Override
+ public Adapter caseAndPredicate(AndPredicate object)
+ {
+ return createAndPredicateAdapter();
+ }
+ @Override
+ public Adapter caseOrPredicate(OrPredicate object)
+ {
+ return createOrPredicateAdapter();
+ }
+ @Override
+ public Adapter caseNotPredicate(NotPredicate object)
+ {
+ return createNotPredicateAdapter();
+ }
+ @Override
+ public Adapter caseNaturePredicate(NaturePredicate object)
+ {
+ return createNaturePredicateAdapter();
+ }
+ @Override
+ public Adapter caseBuilderPredicate(BuilderPredicate object)
+ {
+ return createBuilderPredicateAdapter();
+ }
+ @Override
+ public Adapter caseFilePredicate(FilePredicate object)
+ {
+ return createFilePredicateAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object)
+ {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target)
+ {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.predicates.Predicate <em>Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.predicates.Predicate
+ * @generated
+ */
+ public Adapter createPredicateAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.predicates.NamePredicate <em>Name Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.predicates.NamePredicate
+ * @generated
+ */
+ public Adapter createNamePredicateAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate <em>Repository Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate
+ * @generated
+ */
+ public Adapter createRepositoryPredicateAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.predicates.AndPredicate <em>And Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.predicates.AndPredicate
+ * @generated
+ */
+ public Adapter createAndPredicateAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.predicates.OrPredicate <em>Or Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.predicates.OrPredicate
+ * @generated
+ */
+ public Adapter createOrPredicateAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.predicates.NotPredicate <em>Not Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.predicates.NotPredicate
+ * @generated
+ */
+ public Adapter createNotPredicateAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.predicates.NaturePredicate <em>Nature Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.predicates.NaturePredicate
+ * @generated
+ */
+ public Adapter createNaturePredicateAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.predicates.BuilderPredicate <em>Builder Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.predicates.BuilderPredicate
+ * @generated
+ */
+ public Adapter createBuilderPredicateAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.predicates.FilePredicate <em>File Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.predicates.FilePredicate
+ * @generated
+ */
+ public Adapter createFilePredicateAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter()
+ {
+ return null;
+ }
+
+} //PredicatesAdapterFactory
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/util/PredicatesSwitch.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/util/PredicatesSwitch.java
new file mode 100644
index 0000000000..359d1eac38
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/util/PredicatesSwitch.java
@@ -0,0 +1,311 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.util;
+
+import org.eclipse.emf.cdo.releng.predicates.*;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage
+ * @generated
+ */
+public class PredicatesSwitch<T> extends Switch<T>
+{
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static PredicatesPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PredicatesSwitch()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = PredicatesPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage)
+ {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject)
+ {
+ switch (classifierID)
+ {
+ case PredicatesPackage.PREDICATE:
+ {
+ Predicate predicate = (Predicate)theEObject;
+ T result = casePredicate(predicate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PredicatesPackage.NAME_PREDICATE:
+ {
+ NamePredicate namePredicate = (NamePredicate)theEObject;
+ T result = caseNamePredicate(namePredicate);
+ if (result == null) result = casePredicate(namePredicate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PredicatesPackage.REPOSITORY_PREDICATE:
+ {
+ RepositoryPredicate repositoryPredicate = (RepositoryPredicate)theEObject;
+ T result = caseRepositoryPredicate(repositoryPredicate);
+ if (result == null) result = casePredicate(repositoryPredicate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PredicatesPackage.AND_PREDICATE:
+ {
+ AndPredicate andPredicate = (AndPredicate)theEObject;
+ T result = caseAndPredicate(andPredicate);
+ if (result == null) result = casePredicate(andPredicate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PredicatesPackage.OR_PREDICATE:
+ {
+ OrPredicate orPredicate = (OrPredicate)theEObject;
+ T result = caseOrPredicate(orPredicate);
+ if (result == null) result = casePredicate(orPredicate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PredicatesPackage.NOT_PREDICATE:
+ {
+ NotPredicate notPredicate = (NotPredicate)theEObject;
+ T result = caseNotPredicate(notPredicate);
+ if (result == null) result = casePredicate(notPredicate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PredicatesPackage.NATURE_PREDICATE:
+ {
+ NaturePredicate naturePredicate = (NaturePredicate)theEObject;
+ T result = caseNaturePredicate(naturePredicate);
+ if (result == null) result = casePredicate(naturePredicate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PredicatesPackage.BUILDER_PREDICATE:
+ {
+ BuilderPredicate builderPredicate = (BuilderPredicate)theEObject;
+ T result = caseBuilderPredicate(builderPredicate);
+ if (result == null) result = casePredicate(builderPredicate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PredicatesPackage.FILE_PREDICATE:
+ {
+ FilePredicate filePredicate = (FilePredicate)theEObject;
+ T result = caseFilePredicate(filePredicate);
+ if (result == null) result = casePredicate(filePredicate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Predicate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePredicate(Predicate object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Name Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Name Predicate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNamePredicate(NamePredicate object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Repository Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Repository Predicate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRepositoryPredicate(RepositoryPredicate object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>And Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>And Predicate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAndPredicate(AndPredicate object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Or Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Or Predicate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseOrPredicate(OrPredicate object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Not Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Not Predicate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNotPredicate(NotPredicate object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Nature Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Nature Predicate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNaturePredicate(NaturePredicate object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Builder Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Builder Predicate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBuilderPredicate(BuilderPredicate object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>File Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>File Predicate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFilePredicate(FilePredicate object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object)
+ {
+ return null;
+ }
+
+} //PredicatesSwitch

Back to the top