diff options
Diffstat (limited to 'core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate')
61 files changed, 9120 insertions, 0 deletions
diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/And.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/And.java new file mode 100644 index 000000000..94a278062 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/And.java @@ -0,0 +1,26 @@ +// And.java +package org.eclipse.stem.core.predicate; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +/** + * <code>And</code> is a {@link NaryBooleanOperator} whose value is + * <code>true</code> only if the values of all of its operands are + * <code>true</code>. + * + * @see Or + * @see Not + * @model + */ +public interface And extends NaryBooleanOperator { + // Nothing +} // And
\ No newline at end of file diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/BooleanExpression.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/BooleanExpression.java new file mode 100644 index 000000000..3920be469 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/BooleanExpression.java @@ -0,0 +1,25 @@ +// BooleanExpression.java +package org.eclipse.stem.core.predicate; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +/** + * A <code>BooleanExpression</code> is a {@link Predicate} whose value is the + * result of evaluating a logical (boolean) expression. + * + * @see Test + * @see PredicateReference + * @model abstract="true" + */ +public interface BooleanExpression extends Predicate { + // Nothing +} // BooleanExpression
\ No newline at end of file diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/BooleanOperator.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/BooleanOperator.java new file mode 100644 index 000000000..76942103b --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/BooleanOperator.java @@ -0,0 +1,25 @@ +// BooleanOperator.java +package org.eclipse.stem.core.predicate; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +/** + * A <code>BooleanOperator</code> is a {@link BooleanExpression} whose value is + * the result of evaluating a boolean operator. + * + * @see UnaryBooleanOperator + * @see NaryBooleanOperator + * @model abstract="true" + */ +public interface BooleanOperator extends BooleanExpression { + // Nothing +} // BooleanOperator
\ No newline at end of file diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/ElapsedTimeTest.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/ElapsedTimeTest.java new file mode 100644 index 000000000..412cff708 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/ElapsedTimeTest.java @@ -0,0 +1,83 @@ +// ElapsedTimeTest.java +package org.eclipse.stem.core.predicate; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import org.eclipse.stem.core.model.STEMTime; + +/** + * A <code>ElapsedTimeTest</code> is a {@link TimeTest} that returns a boolean + * value depending upon the difference between the first time value passed to + * {@link #evaluate(org.eclipse.stem.core.model.STEMTime, long, org.eclipse.stem.core.model.Decorator)} + * and subsequent values. + * + * @model + */ +public interface ElapsedTimeTest extends TimeTest { + + /** + * @return the time value used for comparison purposes. + * @model containment="true" + */ + STEMTime getReferenceTime(); + + /** + * Sets the value of the '{@link org.eclipse.stem.core.predicate.ElapsedTimeTest#getReferenceTime <em>Reference Time</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Reference Time</em>' containment reference. + * @see #getReferenceTime() + * @generated + */ + void setReferenceTime(STEMTime value); + + /** + * @return <code>true</code> if the reference time has been set + * @model default="false" + */ + boolean isReferenceTimeValid(); + + /** + * Sets the value of the '{@link org.eclipse.stem.core.predicate.ElapsedTimeTest#isReferenceTimeValid <em>Reference Time Valid</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Reference Time Valid</em>' attribute. + * @see #isReferenceTimeValid() + * @generated + */ + void setReferenceTimeValid(boolean value); + + /** + * @return the number of milliseconds of elapsed time to be used for + * comparison between the reference time and the current time. + * @model transient="true" changeable="false" + */ + long getElapsedMilliseconds(); + + /** + * @return the number of days of elapsed time to be used for the comparison + * between the reference time and the current time. + * @model default="0" + */ + int getNumberofDays(); + + /** + * Sets the value of the '{@link org.eclipse.stem.core.predicate.ElapsedTimeTest#getNumberofDays <em>Numberof Days</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Numberof Days</em>' attribute. + * @see #getNumberofDays() + * @generated + */ + void setNumberofDays(int value); + +} // ElapsedTimeTest
\ No newline at end of file diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/False.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/False.java new file mode 100644 index 000000000..5489f4dff --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/False.java @@ -0,0 +1,23 @@ +// False.java +package org.eclipse.stem.core.predicate; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +/** + * <code>False</code> is a {@link Test} whose value is always <code>false</code>. + * + * @see True + * @model + */ +public interface False extends Test { + // Nothing +} // False
\ No newline at end of file diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/IdentifiablePredicate.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/IdentifiablePredicate.java new file mode 100644 index 000000000..f6ee5aeb2 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/IdentifiablePredicate.java @@ -0,0 +1,31 @@ +// IdentifiablePredicate.java +package org.eclipse.stem.core.predicate; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import org.eclipse.emf.common.util.URI; +import org.eclipse.stem.core.common.Identifiable; + +/** + * A <code>IdentifiablePredicate</code> represents a testable condition that is + * Identifiable. + * + * @model abstract="true" + */ +public interface IdentifiablePredicate extends Identifiable, Predicate { + + /** + * This is the segment of the type {@link URI} that prefixes all other segments in a + * predicate {@link URI}s. + */ + String URI_TYPE_PREDICATE_SEGMENT = "predicate"; +} // IdentifiablePredicate
\ No newline at end of file diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/IdentifiablePredicateExpression.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/IdentifiablePredicateExpression.java new file mode 100644 index 000000000..f482b7db5 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/IdentifiablePredicateExpression.java @@ -0,0 +1,24 @@ +// IdentifiablePredicateExpression.java +package org.eclipse.stem.core.predicate; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +/** + * An <code>IdentifiablePredicateExpression</code> is a PredicateExpression that + * is Identifiable. + * + * @model + */ +public interface IdentifiablePredicateExpression extends IdentifiablePredicate, + PredicateExpression { + // Nothing +} // IdentifiablePredicateExpression
\ No newline at end of file diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/IdentifiableTest.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/IdentifiableTest.java new file mode 100644 index 000000000..70b133a04 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/IdentifiableTest.java @@ -0,0 +1,22 @@ +// IdentifiableTest.java +package org.eclipse.stem.core.predicate; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +/** + * A <code>IdentifiableTest<code> is a <code>IdentifiablePredicate</code> represents a testable condition. + * + * @model abstract="true" + */ +public interface IdentifiableTest extends IdentifiablePredicate, Test { + // Nothing +} // IdentifiableTest
\ No newline at end of file diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/NaryBooleanOperator.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/NaryBooleanOperator.java new file mode 100644 index 000000000..82758cceb --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/NaryBooleanOperator.java @@ -0,0 +1,31 @@ +// NaryBooleanOperator.java +package org.eclipse.stem.core.predicate; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import org.eclipse.emf.common.util.EList; + +/** + * A <code>NaryBooleanOperator</code> is a {@link BooleanOperator} whose value + * is the result of evaluating a boolean operator that takes one or (usually) + * more operands. + * + * @see UnaryBooleanOperator + * @model abstract="true" + */ +public interface NaryBooleanOperator extends BooleanOperator { + /** + * @return the collection of operands to this operator + * @model type="Predicate" containment="true" + */ + EList<Predicate> getOperands(); +} // NaryBooleanOperator
\ No newline at end of file diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/Not.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/Not.java new file mode 100644 index 000000000..f868c6c2a --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/Not.java @@ -0,0 +1,26 @@ +// Not.java +package org.eclipse.stem.core.predicate; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +/** + * <code>Not</code> is a {@link UnaryBooleanOperator} whose value is + * <code>true</code> if the value of its operand is <code>false</code>, + * otherwise it is <code>false</code>. + * + * @see And + * @see Or + * @model + */ +public interface Not extends UnaryBooleanOperator { + // Nothing +} // Not
\ No newline at end of file diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/Or.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/Or.java new file mode 100644 index 000000000..462246b72 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/Or.java @@ -0,0 +1,25 @@ +// Or.java +package org.eclipse.stem.core.predicate; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +/** + * An <code>Or</code> is a {@link NaryBooleanOperator} whose value is + * <code>true</code> if any of the values of its operands are <code>true</code>. + * + * @see And + * @see Not + * @model + */ +public interface Or extends NaryBooleanOperator { + // Nothing +} // Or
\ No newline at end of file diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/Predicate.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/Predicate.java new file mode 100644 index 000000000..3cf51bd48 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/Predicate.java @@ -0,0 +1,59 @@ +// Predicate.java +package org.eclipse.stem.core.predicate; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.stem.core.graph.Graph; +import org.eclipse.stem.core.model.Decorator; +import org.eclipse.stem.core.model.STEMTime; +import org.eclipse.stem.core.trigger.Trigger; + +/** + * A <code>Predicate</code> represents a testable condition. Instances of + * <code>Predicate</code> are referenced by {@link Trigger}s that use the value + * returned by {@link #evaluate(STEMTime, long, Decorator)} to control the + * execution of another {@link Decorator} called the {@link Trigger}'s "action". + * <p> + * This interface definition is also an "Annotated Java Interface" that defines + * one class in a <a href="http://www.uml.org/">UML</a> "model". The UML class + * diagram for the model is in the <code>documentation</code> folder of the + * project. This file and the other interfaces in this Java package are + * processed by the Eclipse Modeling Framework (aka EMF <a + * href="http://org.eclipse/emf">http://org.eclipse/emf</a>). to automatically + * generate an implementation of the model. EMF is documented in the book <a + * href="http://www.awprofessional.com/bookstore/product.asp?isbn=0131425420&rl=1">Eclipse + * Modeling Framework </a> by Budinsky, et al. + * </p> + * @see Trigger + * @see Modifier + * @model abstract="true" + */ +public interface Predicate extends EObject { + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model + * @generated + */ + boolean evaluate(STEMTime time, long timerPeriod, Graph graph); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model + * @generated + */ + void reset(); + +} // Predicate
\ No newline at end of file diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/PredicateExpression.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/PredicateExpression.java new file mode 100644 index 000000000..7bfd001c8 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/PredicateExpression.java @@ -0,0 +1,39 @@ +// PredicateExpression.java +package org.eclipse.stem.core.predicate; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +/** + * A <code>PredicateExpression</code> is a {@link BooleanExpression} whose value + * is the result of evaluating a {@link Predicate}. + * + * @model + */ +public interface PredicateExpression extends BooleanExpression { + + /** + * @return the {@link Predicate} that determines the value of this + * expression. + * @model containment="true" + */ + Predicate getPredicate(); + + /** + * Sets the value of the '{@link org.eclipse.stem.core.predicate.PredicateExpression#getPredicate <em>Predicate</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Predicate</em>' containment reference. + * @see #getPredicate() + * @generated + */ + void setPredicate(Predicate value); +} // PredicateExpression
\ No newline at end of file diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/PredicateFactory.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/PredicateFactory.java new file mode 100644 index 000000000..4e9f058b8 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/PredicateFactory.java @@ -0,0 +1,122 @@ +package org.eclipse.stem.core.predicate; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +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.stem.core.predicate.PredicatePackage + * @generated + */ +public interface PredicateFactory extends EFactory { + /** + * The singleton instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + PredicateFactory eINSTANCE = org.eclipse.stem.core.predicate.impl.PredicateFactoryImpl.init(); + + /** + * Returns a new object of class '<em>And</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>And</em>'. + * @generated + */ + And createAnd(); + + /** + * Returns a new object of class '<em>False</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>False</em>'. + * @generated + */ + False createFalse(); + + /** + * Returns a new object of class '<em>Not</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Not</em>'. + * @generated + */ + Not createNot(); + + /** + * Returns a new object of class '<em>Or</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Or</em>'. + * @generated + */ + Or createOr(); + + /** + * Returns a new object of class '<em>Reference</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Reference</em>'. + * @generated + */ + PredicateReference createPredicateReference(); + + /** + * Returns a new object of class '<em>True</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>True</em>'. + * @generated + */ + True createTrue(); + + /** + * Returns a new object of class '<em>Expression</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Expression</em>'. + * @generated + */ + PredicateExpression createPredicateExpression(); + + /** + * Returns a new object of class '<em>Identifiable Predicate Expression</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Identifiable Predicate Expression</em>'. + * @generated + */ + IdentifiablePredicateExpression createIdentifiablePredicateExpression(); + + /** + * Returns a new object of class '<em>Elapsed Time Test</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Elapsed Time Test</em>'. + * @generated + */ + ElapsedTimeTest createElapsedTimeTest(); + + /** + * Returns the package supported by this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the package supported by this factory. + * @generated + */ + PredicatePackage getPredicatePackage(); + +} //PredicateFactory diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/PredicatePackage.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/PredicatePackage.java new file mode 100644 index 000000000..96a421153 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/PredicatePackage.java @@ -0,0 +1,1141 @@ +package org.eclipse.stem.core.predicate; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.stem.core.common.CommonPackage; + +//import org.eclipse.stem.core.common.CommonPackage; + +/** + * <!-- 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 enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.PredicateFactory + * @model kind="package" + * @generated + */ +public interface PredicatePackage extends EPackage { + /** + * The package name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNAME = "predicate"; //$NON-NLS-1$ + + /** + * The package namespace URI. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNS_URI = "http:///org/eclipse/stem/core/predicate.ecore"; //$NON-NLS-1$ + + /** + * The package namespace name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNS_PREFIX = "org.eclipse.stem.core.predicate"; //$NON-NLS-1$ + + /** + * The singleton instance of the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + PredicatePackage eINSTANCE = org.eclipse.stem.core.predicate.impl.PredicatePackageImpl.init(); + + /** + * The meta object id for the '{@link org.eclipse.stem.core.predicate.impl.PredicateImpl <em>Predicate</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.PredicateImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getPredicate() + * @generated + */ + int PREDICATE = 7; + + /** + * 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 meta object id for the '{@link org.eclipse.stem.core.predicate.impl.BooleanExpressionImpl <em>Boolean Expression</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.BooleanExpressionImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getBooleanExpression() + * @generated + */ + int BOOLEAN_EXPRESSION = 1; + + /** + * The number of structural features of the '<em>Boolean Expression</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.stem.core.predicate.impl.BooleanOperatorImpl <em>Boolean Operator</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.BooleanOperatorImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getBooleanOperator() + * @generated + */ + int BOOLEAN_OPERATOR = 2; + + /** + * The number of structural features of the '<em>Boolean Operator</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BOOLEAN_OPERATOR_FEATURE_COUNT = BOOLEAN_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.stem.core.predicate.impl.NaryBooleanOperatorImpl <em>Nary Boolean Operator</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.NaryBooleanOperatorImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getNaryBooleanOperator() + * @generated + */ + int NARY_BOOLEAN_OPERATOR = 4; + + /** + * The feature id for the '<em><b>Operands</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NARY_BOOLEAN_OPERATOR__OPERANDS = BOOLEAN_OPERATOR_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Nary Boolean Operator</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NARY_BOOLEAN_OPERATOR_FEATURE_COUNT = BOOLEAN_OPERATOR_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.stem.core.predicate.impl.AndImpl <em>And</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.AndImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getAnd() + * @generated + */ + int AND = 0; + + /** + * The feature id for the '<em><b>Operands</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AND__OPERANDS = NARY_BOOLEAN_OPERATOR__OPERANDS; + + /** + * The number of structural features of the '<em>And</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int AND_FEATURE_COUNT = NARY_BOOLEAN_OPERATOR_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.stem.core.predicate.impl.TestImpl <em>Test</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.TestImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getTest() + * @generated + */ + int TEST = 9; + + /** + * The number of structural features of the '<em>Test</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TEST_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.stem.core.predicate.impl.FalseImpl <em>False</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.FalseImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getFalse() + * @generated + */ + int FALSE = 3; + + /** + * The number of structural features of the '<em>False</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FALSE_FEATURE_COUNT = TEST_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.stem.core.predicate.impl.UnaryBooleanOperatorImpl <em>Unary Boolean Operator</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.UnaryBooleanOperatorImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getUnaryBooleanOperator() + * @generated + */ + int UNARY_BOOLEAN_OPERATOR = 11; + + /** + * The feature id for the '<em><b>Operand</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int UNARY_BOOLEAN_OPERATOR__OPERAND = BOOLEAN_OPERATOR_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Unary Boolean Operator</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int UNARY_BOOLEAN_OPERATOR_FEATURE_COUNT = BOOLEAN_OPERATOR_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.stem.core.predicate.impl.NotImpl <em>Not</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.NotImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getNot() + * @generated + */ + int NOT = 5; + + /** + * The feature id for the '<em><b>Operand</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NOT__OPERAND = UNARY_BOOLEAN_OPERATOR__OPERAND; + + /** + * The number of structural features of the '<em>Not</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NOT_FEATURE_COUNT = UNARY_BOOLEAN_OPERATOR_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.stem.core.predicate.impl.OrImpl <em>Or</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.OrImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getOr() + * @generated + */ + int OR = 6; + + /** + * The feature id for the '<em><b>Operands</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int OR__OPERANDS = NARY_BOOLEAN_OPERATOR__OPERANDS; + + /** + * The number of structural features of the '<em>Or</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int OR_FEATURE_COUNT = NARY_BOOLEAN_OPERATOR_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.stem.core.predicate.impl.PredicateReferenceImpl <em>Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.PredicateReferenceImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getPredicateReference() + * @generated + */ + int PREDICATE_REFERENCE = 8; + + /** + * The feature id for the '<em><b>Predicate</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREDICATE_REFERENCE__PREDICATE = PREDICATE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Reference</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREDICATE_REFERENCE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.stem.core.predicate.impl.TrueImpl <em>True</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.TrueImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getTrue() + * @generated + */ + int TRUE = 10; + + /** + * The number of structural features of the '<em>True</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TRUE_FEATURE_COUNT = TEST_FEATURE_COUNT + 0; + + + /** + * The meta object id for the '{@link org.eclipse.stem.core.predicate.impl.PredicateExpressionImpl <em>Expression</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.PredicateExpressionImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getPredicateExpression() + * @generated + */ + int PREDICATE_EXPRESSION = 12; + + /** + * The feature id for the '<em><b>Predicate</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREDICATE_EXPRESSION__PREDICATE = BOOLEAN_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Expression</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREDICATE_EXPRESSION_FEATURE_COUNT = BOOLEAN_EXPRESSION_FEATURE_COUNT + 1; + + + /** + * The meta object id for the '{@link org.eclipse.stem.core.predicate.impl.IdentifiablePredicateImpl <em>Identifiable Predicate</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.IdentifiablePredicateImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getIdentifiablePredicate() + * @generated + */ + int IDENTIFIABLE_PREDICATE = 13; + + /** + * The feature id for the '<em><b>URI</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IDENTIFIABLE_PREDICATE__URI = CommonPackage.IDENTIFIABLE__URI; + + /** + * The feature id for the '<em><b>Type URI</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IDENTIFIABLE_PREDICATE__TYPE_URI = CommonPackage.IDENTIFIABLE__TYPE_URI; + + /** + * The feature id for the '<em><b>Dublin Core</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IDENTIFIABLE_PREDICATE__DUBLIN_CORE = CommonPackage.IDENTIFIABLE__DUBLIN_CORE; + + /** + * The number of structural features of the '<em>Identifiable Predicate</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IDENTIFIABLE_PREDICATE_FEATURE_COUNT = CommonPackage.IDENTIFIABLE_FEATURE_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.stem.core.predicate.impl.IdentifiablePredicateExpressionImpl <em>Identifiable Predicate Expression</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.IdentifiablePredicateExpressionImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getIdentifiablePredicateExpression() + * @generated + */ + int IDENTIFIABLE_PREDICATE_EXPRESSION = 14; + + /** + * The feature id for the '<em><b>URI</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IDENTIFIABLE_PREDICATE_EXPRESSION__URI = IDENTIFIABLE_PREDICATE__URI; + + /** + * The feature id for the '<em><b>Type URI</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IDENTIFIABLE_PREDICATE_EXPRESSION__TYPE_URI = IDENTIFIABLE_PREDICATE__TYPE_URI; + + /** + * The feature id for the '<em><b>Dublin Core</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IDENTIFIABLE_PREDICATE_EXPRESSION__DUBLIN_CORE = IDENTIFIABLE_PREDICATE__DUBLIN_CORE; + + /** + * The feature id for the '<em><b>Predicate</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IDENTIFIABLE_PREDICATE_EXPRESSION__PREDICATE = IDENTIFIABLE_PREDICATE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>Identifiable Predicate Expression</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IDENTIFIABLE_PREDICATE_EXPRESSION_FEATURE_COUNT = IDENTIFIABLE_PREDICATE_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.stem.core.predicate.impl.IdentifiableTestImpl <em>Identifiable Test</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.IdentifiableTestImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getIdentifiableTest() + * @generated + */ + int IDENTIFIABLE_TEST = 15; + + /** + * The feature id for the '<em><b>URI</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IDENTIFIABLE_TEST__URI = IDENTIFIABLE_PREDICATE__URI; + + /** + * The feature id for the '<em><b>Type URI</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IDENTIFIABLE_TEST__TYPE_URI = IDENTIFIABLE_PREDICATE__TYPE_URI; + + /** + * The feature id for the '<em><b>Dublin Core</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IDENTIFIABLE_TEST__DUBLIN_CORE = IDENTIFIABLE_PREDICATE__DUBLIN_CORE; + + /** + * The number of structural features of the '<em>Identifiable Test</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int IDENTIFIABLE_TEST_FEATURE_COUNT = IDENTIFIABLE_PREDICATE_FEATURE_COUNT + 0; + + + /** + * The meta object id for the '{@link org.eclipse.stem.core.predicate.impl.TimeTestImpl <em>Time Test</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.TimeTestImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getTimeTest() + * @generated + */ + int TIME_TEST = 16; + + /** + * The number of structural features of the '<em>Time Test</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TIME_TEST_FEATURE_COUNT = TEST_FEATURE_COUNT + 0; + + + /** + * The meta object id for the '{@link org.eclipse.stem.core.predicate.impl.ElapsedTimeTestImpl <em>Elapsed Time Test</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.ElapsedTimeTestImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getElapsedTimeTest() + * @generated + */ + int ELAPSED_TIME_TEST = 17; + + /** + * The feature id for the '<em><b>Reference Time Valid</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ELAPSED_TIME_TEST__REFERENCE_TIME_VALID = TIME_TEST_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Elapsed Milliseconds</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ELAPSED_TIME_TEST__ELAPSED_MILLISECONDS = TIME_TEST_FEATURE_COUNT + 1; + + /** + * The feature id for the '<em><b>Numberof Days</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ELAPSED_TIME_TEST__NUMBEROF_DAYS = TIME_TEST_FEATURE_COUNT + 2; + + /** + * The feature id for the '<em><b>Reference Time</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ELAPSED_TIME_TEST__REFERENCE_TIME = TIME_TEST_FEATURE_COUNT + 3; + + /** + * The number of structural features of the '<em>Elapsed Time Test</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ELAPSED_TIME_TEST_FEATURE_COUNT = TIME_TEST_FEATURE_COUNT + 4; + + + /** + * Returns the meta object for class '{@link org.eclipse.stem.core.predicate.And <em>And</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>And</em>'. + * @see org.eclipse.stem.core.predicate.And + * @generated + */ + EClass getAnd(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.core.predicate.BooleanExpression <em>Boolean Expression</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Boolean Expression</em>'. + * @see org.eclipse.stem.core.predicate.BooleanExpression + * @generated + */ + EClass getBooleanExpression(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.core.predicate.BooleanOperator <em>Boolean Operator</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Boolean Operator</em>'. + * @see org.eclipse.stem.core.predicate.BooleanOperator + * @generated + */ + EClass getBooleanOperator(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.core.predicate.False <em>False</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>False</em>'. + * @see org.eclipse.stem.core.predicate.False + * @generated + */ + EClass getFalse(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.core.predicate.NaryBooleanOperator <em>Nary Boolean Operator</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Nary Boolean Operator</em>'. + * @see org.eclipse.stem.core.predicate.NaryBooleanOperator + * @generated + */ + EClass getNaryBooleanOperator(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.stem.core.predicate.NaryBooleanOperator#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.stem.core.predicate.NaryBooleanOperator#getOperands() + * @see #getNaryBooleanOperator() + * @generated + */ + EReference getNaryBooleanOperator_Operands(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.core.predicate.Not <em>Not</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Not</em>'. + * @see org.eclipse.stem.core.predicate.Not + * @generated + */ + EClass getNot(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.core.predicate.Or <em>Or</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Or</em>'. + * @see org.eclipse.stem.core.predicate.Or + * @generated + */ + EClass getOr(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.core.predicate.Predicate <em>Predicate</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Predicate</em>'. + * @see org.eclipse.stem.core.predicate.Predicate + * @generated + */ + EClass getPredicate(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.core.predicate.PredicateReference <em>Reference</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Reference</em>'. + * @see org.eclipse.stem.core.predicate.PredicateReference + * @generated + */ + EClass getPredicateReference(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.stem.core.predicate.PredicateReference#getPredicate <em>Predicate</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Predicate</em>'. + * @see org.eclipse.stem.core.predicate.PredicateReference#getPredicate() + * @see #getPredicateReference() + * @generated + */ + EReference getPredicateReference_Predicate(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.core.predicate.Test <em>Test</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Test</em>'. + * @see org.eclipse.stem.core.predicate.Test + * @generated + */ + EClass getTest(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.core.predicate.True <em>True</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>True</em>'. + * @see org.eclipse.stem.core.predicate.True + * @generated + */ + EClass getTrue(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.core.predicate.UnaryBooleanOperator <em>Unary Boolean Operator</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Unary Boolean Operator</em>'. + * @see org.eclipse.stem.core.predicate.UnaryBooleanOperator + * @generated + */ + EClass getUnaryBooleanOperator(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.stem.core.predicate.UnaryBooleanOperator#getOperand <em>Operand</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Operand</em>'. + * @see org.eclipse.stem.core.predicate.UnaryBooleanOperator#getOperand() + * @see #getUnaryBooleanOperator() + * @generated + */ + EReference getUnaryBooleanOperator_Operand(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.core.predicate.PredicateExpression <em>Expression</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Expression</em>'. + * @see org.eclipse.stem.core.predicate.PredicateExpression + * @generated + */ + EClass getPredicateExpression(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.stem.core.predicate.PredicateExpression#getPredicate <em>Predicate</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Predicate</em>'. + * @see org.eclipse.stem.core.predicate.PredicateExpression#getPredicate() + * @see #getPredicateExpression() + * @generated + */ + EReference getPredicateExpression_Predicate(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.core.predicate.IdentifiablePredicate <em>Identifiable Predicate</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Identifiable Predicate</em>'. + * @see org.eclipse.stem.core.predicate.IdentifiablePredicate + * @generated + */ + EClass getIdentifiablePredicate(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.core.predicate.IdentifiablePredicateExpression <em>Identifiable Predicate Expression</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Identifiable Predicate Expression</em>'. + * @see org.eclipse.stem.core.predicate.IdentifiablePredicateExpression + * @generated + */ + EClass getIdentifiablePredicateExpression(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.core.predicate.IdentifiableTest <em>Identifiable Test</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Identifiable Test</em>'. + * @see org.eclipse.stem.core.predicate.IdentifiableTest + * @generated + */ + EClass getIdentifiableTest(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.core.predicate.TimeTest <em>Time Test</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Time Test</em>'. + * @see org.eclipse.stem.core.predicate.TimeTest + * @generated + */ + EClass getTimeTest(); + + /** + * Returns the meta object for class '{@link org.eclipse.stem.core.predicate.ElapsedTimeTest <em>Elapsed Time Test</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Elapsed Time Test</em>'. + * @see org.eclipse.stem.core.predicate.ElapsedTimeTest + * @generated + */ + EClass getElapsedTimeTest(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.stem.core.predicate.ElapsedTimeTest#isReferenceTimeValid <em>Reference Time Valid</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Reference Time Valid</em>'. + * @see org.eclipse.stem.core.predicate.ElapsedTimeTest#isReferenceTimeValid() + * @see #getElapsedTimeTest() + * @generated + */ + EAttribute getElapsedTimeTest_ReferenceTimeValid(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.stem.core.predicate.ElapsedTimeTest#getElapsedMilliseconds <em>Elapsed Milliseconds</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Elapsed Milliseconds</em>'. + * @see org.eclipse.stem.core.predicate.ElapsedTimeTest#getElapsedMilliseconds() + * @see #getElapsedTimeTest() + * @generated + */ + EAttribute getElapsedTimeTest_ElapsedMilliseconds(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.stem.core.predicate.ElapsedTimeTest#getNumberofDays <em>Numberof Days</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Numberof Days</em>'. + * @see org.eclipse.stem.core.predicate.ElapsedTimeTest#getNumberofDays() + * @see #getElapsedTimeTest() + * @generated + */ + EAttribute getElapsedTimeTest_NumberofDays(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.stem.core.predicate.ElapsedTimeTest#getReferenceTime <em>Reference Time</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Reference Time</em>'. + * @see org.eclipse.stem.core.predicate.ElapsedTimeTest#getReferenceTime() + * @see #getElapsedTimeTest() + * @generated + */ + EReference getElapsedTimeTest_ReferenceTime(); + + /** + * 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 + */ + PredicateFactory getPredicateFactory(); + + /** + * <!-- 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 enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * @generated + */ + interface Literals { + /** + * The meta object literal for the '{@link org.eclipse.stem.core.predicate.impl.AndImpl <em>And</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.AndImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getAnd() + * @generated + */ + EClass AND = eINSTANCE.getAnd(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.core.predicate.impl.BooleanExpressionImpl <em>Boolean Expression</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.BooleanExpressionImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getBooleanExpression() + * @generated + */ + EClass BOOLEAN_EXPRESSION = eINSTANCE.getBooleanExpression(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.core.predicate.impl.BooleanOperatorImpl <em>Boolean Operator</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.BooleanOperatorImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getBooleanOperator() + * @generated + */ + EClass BOOLEAN_OPERATOR = eINSTANCE.getBooleanOperator(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.core.predicate.impl.FalseImpl <em>False</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.FalseImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getFalse() + * @generated + */ + EClass FALSE = eINSTANCE.getFalse(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.core.predicate.impl.NaryBooleanOperatorImpl <em>Nary Boolean Operator</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.NaryBooleanOperatorImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getNaryBooleanOperator() + * @generated + */ + EClass NARY_BOOLEAN_OPERATOR = eINSTANCE.getNaryBooleanOperator(); + + /** + * The meta object literal for the '<em><b>Operands</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference NARY_BOOLEAN_OPERATOR__OPERANDS = eINSTANCE.getNaryBooleanOperator_Operands(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.core.predicate.impl.NotImpl <em>Not</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.NotImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getNot() + * @generated + */ + EClass NOT = eINSTANCE.getNot(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.core.predicate.impl.OrImpl <em>Or</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.OrImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getOr() + * @generated + */ + EClass OR = eINSTANCE.getOr(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.core.predicate.impl.PredicateImpl <em>Predicate</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.PredicateImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getPredicate() + * @generated + */ + EClass PREDICATE = eINSTANCE.getPredicate(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.core.predicate.impl.PredicateReferenceImpl <em>Reference</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.PredicateReferenceImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getPredicateReference() + * @generated + */ + EClass PREDICATE_REFERENCE = eINSTANCE.getPredicateReference(); + + /** + * The meta object literal for the '<em><b>Predicate</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference PREDICATE_REFERENCE__PREDICATE = eINSTANCE.getPredicateReference_Predicate(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.core.predicate.impl.TestImpl <em>Test</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.TestImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getTest() + * @generated + */ + EClass TEST = eINSTANCE.getTest(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.core.predicate.impl.TrueImpl <em>True</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.TrueImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getTrue() + * @generated + */ + EClass TRUE = eINSTANCE.getTrue(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.core.predicate.impl.UnaryBooleanOperatorImpl <em>Unary Boolean Operator</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.UnaryBooleanOperatorImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getUnaryBooleanOperator() + * @generated + */ + EClass UNARY_BOOLEAN_OPERATOR = eINSTANCE.getUnaryBooleanOperator(); + + /** + * The meta object literal for the '<em><b>Operand</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference UNARY_BOOLEAN_OPERATOR__OPERAND = eINSTANCE.getUnaryBooleanOperator_Operand(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.core.predicate.impl.PredicateExpressionImpl <em>Expression</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.PredicateExpressionImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getPredicateExpression() + * @generated + */ + EClass PREDICATE_EXPRESSION = eINSTANCE.getPredicateExpression(); + + /** + * The meta object literal for the '<em><b>Predicate</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference PREDICATE_EXPRESSION__PREDICATE = eINSTANCE.getPredicateExpression_Predicate(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.core.predicate.impl.IdentifiablePredicateImpl <em>Identifiable Predicate</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.IdentifiablePredicateImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getIdentifiablePredicate() + * @generated + */ + EClass IDENTIFIABLE_PREDICATE = eINSTANCE.getIdentifiablePredicate(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.core.predicate.impl.IdentifiablePredicateExpressionImpl <em>Identifiable Predicate Expression</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.IdentifiablePredicateExpressionImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getIdentifiablePredicateExpression() + * @generated + */ + EClass IDENTIFIABLE_PREDICATE_EXPRESSION = eINSTANCE.getIdentifiablePredicateExpression(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.core.predicate.impl.IdentifiableTestImpl <em>Identifiable Test</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.IdentifiableTestImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getIdentifiableTest() + * @generated + */ + EClass IDENTIFIABLE_TEST = eINSTANCE.getIdentifiableTest(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.core.predicate.impl.TimeTestImpl <em>Time Test</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.TimeTestImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getTimeTest() + * @generated + */ + EClass TIME_TEST = eINSTANCE.getTimeTest(); + + /** + * The meta object literal for the '{@link org.eclipse.stem.core.predicate.impl.ElapsedTimeTestImpl <em>Elapsed Time Test</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.stem.core.predicate.impl.ElapsedTimeTestImpl + * @see org.eclipse.stem.core.predicate.impl.PredicatePackageImpl#getElapsedTimeTest() + * @generated + */ + EClass ELAPSED_TIME_TEST = eINSTANCE.getElapsedTimeTest(); + + /** + * The meta object literal for the '<em><b>Reference Time Valid</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute ELAPSED_TIME_TEST__REFERENCE_TIME_VALID = eINSTANCE.getElapsedTimeTest_ReferenceTimeValid(); + + /** + * The meta object literal for the '<em><b>Elapsed Milliseconds</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute ELAPSED_TIME_TEST__ELAPSED_MILLISECONDS = eINSTANCE.getElapsedTimeTest_ElapsedMilliseconds(); + + /** + * The meta object literal for the '<em><b>Numberof Days</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute ELAPSED_TIME_TEST__NUMBEROF_DAYS = eINSTANCE.getElapsedTimeTest_NumberofDays(); + + /** + * The meta object literal for the '<em><b>Reference Time</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference ELAPSED_TIME_TEST__REFERENCE_TIME = eINSTANCE.getElapsedTimeTest_ReferenceTime(); + + } + +} //PredicatePackage diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/PredicateReference.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/PredicateReference.java new file mode 100644 index 000000000..09f76f718 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/PredicateReference.java @@ -0,0 +1,38 @@ +// PredicateReference.java +package org.eclipse.stem.core.predicate; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +/** + * An <code>PredicateReference</code> is a {@link Predicate} whose value is the + * result of evaluating a referenced (i.e., non-containment) {@link Predicate}. + * + * @see Test + * @see BooleanExpression + * @model + */ +public interface PredicateReference extends Predicate { + /** + * @model containment="false" + */ + Predicate getPredicate(); + + /** + * Sets the value of the '{@link org.eclipse.stem.core.predicate.PredicateReference#getPredicate <em>Predicate</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Predicate</em>' reference. + * @see #getPredicate() + * @generated + */ + void setPredicate(Predicate value); +} // PredicateReference
\ No newline at end of file diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/Test.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/Test.java new file mode 100644 index 000000000..9c5f0ce23 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/Test.java @@ -0,0 +1,26 @@ +// Test.java +package org.eclipse.stem.core.predicate; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +/** + * A <code>Test</code> is a {@link Predicate} whose value is the result of + * executing underlying code rather than from the evaluation of some boolean + * expression. + * + * @see BooleanExpression + * @see PredicateReference + * @model abstract="true" + */ +public interface Test extends Predicate { + // Nothing +} // Test
\ No newline at end of file diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/TimeTest.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/TimeTest.java new file mode 100644 index 000000000..67914e3be --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/TimeTest.java @@ -0,0 +1,26 @@ +// TimeTest.java +package org.eclipse.stem.core.predicate; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + + +/** + * A <code>TimeTest</code> is a <code>Test</code> that returns a boolean value + * depending upon the comparison of the time values passed to + * {@link #evaluate(org.eclipse.stem.core.model.STEMTime, long, org.eclipse.stem.core.model.Decorator)} + * and a reference time value. + * + * @model abstract="true" + */ +public interface TimeTest extends Test { + // Nothing +} // TimeTest
\ No newline at end of file diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/True.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/True.java new file mode 100644 index 000000000..a0412ad9d --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/True.java @@ -0,0 +1,23 @@ +// True.java +package org.eclipse.stem.core.predicate; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +/** + * <code>True</code> is a {@link Test} whose value is always <code>true</code>. + * + * @see False + * @model + */ +public interface True extends Test { + // Nothing +} // True
\ No newline at end of file diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/UnaryBooleanOperator.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/UnaryBooleanOperator.java new file mode 100644 index 000000000..4b9a582c1 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/UnaryBooleanOperator.java @@ -0,0 +1,39 @@ +// UnaryBooleanOperator.java +package org.eclipse.stem.core.predicate; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +/** + * An <code>UnaryBooleanOperator</code> is a {@link BooleanOperator} whose value + * is the result of evaluating a boolean operator that takes only a single + * operand. + * + * @see NaryBooleanOperator + * @model abstract="true" + */ +public interface UnaryBooleanOperator extends BooleanOperator { + /** + * @return the operand of the operator + * @model containment="true" + */ + Predicate getOperand(); + + /** + * Sets the value of the '{@link org.eclipse.stem.core.predicate.UnaryBooleanOperator#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); +} // UnaryBooleanOperator
\ No newline at end of file diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/AndImpl.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/AndImpl.java new file mode 100644 index 000000000..1f38560bc --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/AndImpl.java @@ -0,0 +1,66 @@ +package org.eclipse.stem.core.predicate.impl; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.stem.core.graph.Graph; +import org.eclipse.stem.core.model.STEMTime; +import org.eclipse.stem.core.predicate.And; +import org.eclipse.stem.core.predicate.Predicate; +import org.eclipse.stem.core.predicate.PredicatePackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>And</b></em>'. + * <!-- end-user-doc --> + * <p> + * </p> + * + * @generated + */ +public class AndImpl extends NaryBooleanOperatorImpl implements And { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected AndImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return PredicatePackage.Literals.AND; + } + + /** + * @see org.eclipse.stem.core.predicate.impl.PredicateImpl#evaluate(org.eclipse.stem.core.model.STEMTime, long, org.eclipse.stem.core.model.Decorator) + */ + @Override + public boolean evaluate(STEMTime time, long timerPeriod, Graph graph) { + boolean retValue = true; + for (Predicate predicate : getOperands()) { + retValue = predicate.evaluate(time, timerPeriod, graph); + // Is it false + if (!retValue) { + // Yes + break; + } // if + } // for each Predicate + return retValue; + } // evaluate +} //AndImpl diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/BooleanExpressionImpl.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/BooleanExpressionImpl.java new file mode 100644 index 000000000..db9745a95 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/BooleanExpressionImpl.java @@ -0,0 +1,47 @@ +package org.eclipse.stem.core.predicate.impl; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.stem.core.predicate.BooleanExpression; +import org.eclipse.stem.core.predicate.PredicatePackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Boolean Expression</b></em>'. + * <!-- end-user-doc --> + * <p> + * </p> + * + * @generated + */ +public abstract class BooleanExpressionImpl extends PredicateImpl implements BooleanExpression { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected BooleanExpressionImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return PredicatePackage.Literals.BOOLEAN_EXPRESSION; + } + +} //BooleanExpressionImpl diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/BooleanOperatorImpl.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/BooleanOperatorImpl.java new file mode 100644 index 000000000..b872cdd9a --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/BooleanOperatorImpl.java @@ -0,0 +1,47 @@ +package org.eclipse.stem.core.predicate.impl; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.stem.core.predicate.BooleanOperator; +import org.eclipse.stem.core.predicate.PredicatePackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Boolean Operator</b></em>'. + * <!-- end-user-doc --> + * <p> + * </p> + * + * @generated + */ +public abstract class BooleanOperatorImpl extends BooleanExpressionImpl implements BooleanOperator { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected BooleanOperatorImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return PredicatePackage.Literals.BOOLEAN_OPERATOR; + } + +} //BooleanOperatorImpl diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/ElapsedTimeTestImpl.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/ElapsedTimeTestImpl.java new file mode 100644 index 000000000..2f5fea038 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/ElapsedTimeTestImpl.java @@ -0,0 +1,374 @@ +package org.eclipse.stem.core.predicate.impl; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.stem.core.graph.Graph; +import org.eclipse.stem.core.model.ModelFactory; +import org.eclipse.stem.core.model.STEMTime; +import org.eclipse.stem.core.predicate.ElapsedTimeTest; +import org.eclipse.stem.core.predicate.PredicatePackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Elapsed Time Test</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.core.predicate.impl.ElapsedTimeTestImpl#isReferenceTimeValid <em>Reference Time Valid</em>}</li> + * <li>{@link org.eclipse.stem.core.predicate.impl.ElapsedTimeTestImpl#getElapsedMilliseconds <em>Elapsed Milliseconds</em>}</li> + * <li>{@link org.eclipse.stem.core.predicate.impl.ElapsedTimeTestImpl#getNumberofDays <em>Numberof Days</em>}</li> + * <li>{@link org.eclipse.stem.core.predicate.impl.ElapsedTimeTestImpl#getReferenceTime <em>Reference Time</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class ElapsedTimeTestImpl extends TimeTestImpl implements ElapsedTimeTest { + /** + * The default value of the '{@link #isReferenceTimeValid() <em>Reference Time Valid</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isReferenceTimeValid() + * @generated + * @ordered + */ + protected static final boolean REFERENCE_TIME_VALID_EDEFAULT = false; + + /** + * The cached value of the '{@link #isReferenceTimeValid() <em>Reference Time Valid</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isReferenceTimeValid() + * @generated + * @ordered + */ + protected boolean referenceTimeValid = REFERENCE_TIME_VALID_EDEFAULT; + + /** + * The default value of the '{@link #getElapsedMilliseconds() <em>Elapsed Milliseconds</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getElapsedMilliseconds() + * @generated + * @ordered + */ + protected static final long ELAPSED_MILLISECONDS_EDEFAULT = 0L; + + /** + * The cached value of the '{@link #getElapsedMilliseconds() <em>Elapsed Milliseconds</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getElapsedMilliseconds() + * @generated + * @ordered + */ + protected long elapsedMilliseconds = ELAPSED_MILLISECONDS_EDEFAULT; + + /** + * The default value of the '{@link #getNumberofDays() <em>Numberof Days</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getNumberofDays() + * @generated + * @ordered + */ + protected static final int NUMBEROF_DAYS_EDEFAULT = 0; + + /** + * The cached value of the '{@link #getNumberofDays() <em>Numberof Days</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getNumberofDays() + * @generated + * @ordered + */ + protected int numberofDays = NUMBEROF_DAYS_EDEFAULT; + + /** + * The cached value of the '{@link #getReferenceTime() <em>Reference Time</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getReferenceTime() + * @generated + * @ordered + */ + protected STEMTime referenceTime; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + protected ElapsedTimeTestImpl() { + super(); + setReferenceTime(ModelFactory.eINSTANCE.createSTEMTime()); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return PredicatePackage.Literals.ELAPSED_TIME_TEST; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isReferenceTimeValid() { + return referenceTimeValid; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setReferenceTimeValid(boolean newReferenceTimeValid) { + boolean oldReferenceTimeValid = referenceTimeValid; + referenceTimeValid = newReferenceTimeValid; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, PredicatePackage.ELAPSED_TIME_TEST__REFERENCE_TIME_VALID, oldReferenceTimeValid, referenceTimeValid)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public long getElapsedMilliseconds() { + return elapsedMilliseconds; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public int getNumberofDays() { + return numberofDays; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public void setNumberofDays(int newNumberofDays) { + int oldNumberofDays = getNumberofDays(); + numberofDays = newNumberofDays; + + elapsedMilliseconds = getNumberofDays() * STEMTime.Units.DAY.getMilliseconds(); + + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, PredicatePackage.ELAPSED_TIME_TEST__NUMBEROF_DAYS, oldNumberofDays, numberofDays)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public STEMTime getReferenceTime() { + return referenceTime; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetReferenceTime(STEMTime newReferenceTime, NotificationChain msgs) { + STEMTime oldReferenceTime = referenceTime; + referenceTime = newReferenceTime; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, PredicatePackage.ELAPSED_TIME_TEST__REFERENCE_TIME, oldReferenceTime, newReferenceTime); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setReferenceTime(STEMTime newReferenceTime) { + if (newReferenceTime != referenceTime) { + NotificationChain msgs = null; + if (referenceTime != null) + msgs = ((InternalEObject)referenceTime).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - PredicatePackage.ELAPSED_TIME_TEST__REFERENCE_TIME, null, msgs); + if (newReferenceTime != null) + msgs = ((InternalEObject)newReferenceTime).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - PredicatePackage.ELAPSED_TIME_TEST__REFERENCE_TIME, null, msgs); + msgs = basicSetReferenceTime(newReferenceTime, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, PredicatePackage.ELAPSED_TIME_TEST__REFERENCE_TIME, newReferenceTime, newReferenceTime)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case PredicatePackage.ELAPSED_TIME_TEST__REFERENCE_TIME: + return basicSetReferenceTime(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 PredicatePackage.ELAPSED_TIME_TEST__REFERENCE_TIME_VALID: + return isReferenceTimeValid(); + case PredicatePackage.ELAPSED_TIME_TEST__ELAPSED_MILLISECONDS: + return getElapsedMilliseconds(); + case PredicatePackage.ELAPSED_TIME_TEST__NUMBEROF_DAYS: + return getNumberofDays(); + case PredicatePackage.ELAPSED_TIME_TEST__REFERENCE_TIME: + return getReferenceTime(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case PredicatePackage.ELAPSED_TIME_TEST__REFERENCE_TIME_VALID: + setReferenceTimeValid((Boolean)newValue); + return; + case PredicatePackage.ELAPSED_TIME_TEST__NUMBEROF_DAYS: + setNumberofDays((Integer)newValue); + return; + case PredicatePackage.ELAPSED_TIME_TEST__REFERENCE_TIME: + setReferenceTime((STEMTime)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case PredicatePackage.ELAPSED_TIME_TEST__REFERENCE_TIME_VALID: + setReferenceTimeValid(REFERENCE_TIME_VALID_EDEFAULT); + return; + case PredicatePackage.ELAPSED_TIME_TEST__NUMBEROF_DAYS: + setNumberofDays(NUMBEROF_DAYS_EDEFAULT); + return; + case PredicatePackage.ELAPSED_TIME_TEST__REFERENCE_TIME: + setReferenceTime((STEMTime)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case PredicatePackage.ELAPSED_TIME_TEST__REFERENCE_TIME_VALID: + return referenceTimeValid != REFERENCE_TIME_VALID_EDEFAULT; + case PredicatePackage.ELAPSED_TIME_TEST__ELAPSED_MILLISECONDS: + return elapsedMilliseconds != ELAPSED_MILLISECONDS_EDEFAULT; + case PredicatePackage.ELAPSED_TIME_TEST__NUMBEROF_DAYS: + return numberofDays != NUMBEROF_DAYS_EDEFAULT; + case PredicatePackage.ELAPSED_TIME_TEST__REFERENCE_TIME: + return referenceTime != null; + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (referenceTimeValid: "); //$NON-NLS-1$ + result.append(referenceTimeValid); + result.append(", elapsedMilliseconds: "); //$NON-NLS-1$ + result.append(elapsedMilliseconds); + result.append(", numberofDays: "); //$NON-NLS-1$ + result.append(numberofDays); + result.append(')'); + return result.toString(); + } + + /** + * @see org.eclipse.stem.core.predicate.impl.PredicateImpl#evaluate(org.eclipse.stem.core.model.STEMTime, long, org.eclipse.stem.core.model.Decorator) + */ + @Override + public boolean evaluate(STEMTime time, long timerPeriod, Graph graph) { + boolean retValue = false; + // Is the reference time valid? + if (isReferenceTimeValid()) { + // Yes + final long elapsedTimeMS = time.getTime().getTime() - getReferenceTime().getTime().getTime(); + // Has enough time gone by? + retValue = elapsedTimeMS >= getElapsedMilliseconds(); + } // if reference time valid? + else { + // No + // This must be the first time this has been called so this must be + // the start of the simulation. Remember the time value passed in as + // the reference value. + + STEMTime newTime = (STEMTime)EcoreUtil.copy(time); + newTime = newTime.addIncrement(-timerPeriod); // Substract one time period + setReferenceTime(newTime); + setReferenceTimeValid(true); + } // else + + return retValue; + } // evaluate + +} //ElapsedTimeTestImpl diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/FalseImpl.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/FalseImpl.java new file mode 100644 index 000000000..cbcf787a5 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/FalseImpl.java @@ -0,0 +1,57 @@ +package org.eclipse.stem.core.predicate.impl; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.stem.core.graph.Graph; +import org.eclipse.stem.core.model.STEMTime; +import org.eclipse.stem.core.predicate.False; +import org.eclipse.stem.core.predicate.PredicatePackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>False</b></em>'. + * <!-- end-user-doc --> + * <p> + * </p> + * + * @generated + */ +public class FalseImpl extends TestImpl implements False { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected FalseImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return PredicatePackage.Literals.FALSE; + } + + /** + * @see org.eclipse.stem.core.predicate.impl.PredicateImpl#evaluate(org.eclipse.stem.core.model.STEMTime, long, org.eclipse.stem.core.model.Decorator) + */ + @Override + public boolean evaluate(STEMTime time, long timerPeriod, Graph graph) { + return false; + } + +} //FalseImpl diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/IdentifiablePredicateExpressionImpl.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/IdentifiablePredicateExpressionImpl.java new file mode 100644 index 000000000..90e2715f0 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/IdentifiablePredicateExpressionImpl.java @@ -0,0 +1,270 @@ +package org.eclipse.stem.core.predicate.impl; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.edit.provider.ComposedAdapterFactory; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.stem.core.common.Identifiable; +import org.eclipse.stem.core.graph.Graph; +import org.eclipse.stem.core.model.STEMTime; +import org.eclipse.stem.core.predicate.BooleanExpression; +import org.eclipse.stem.core.predicate.IdentifiablePredicateExpression; +import org.eclipse.stem.core.predicate.Predicate; +import org.eclipse.stem.core.predicate.PredicateExpression; +import org.eclipse.stem.core.predicate.PredicatePackage; + + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Identifiable Predicate Expression</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.core.predicate.impl.IdentifiablePredicateExpressionImpl#getPredicate <em>Predicate</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class IdentifiablePredicateExpressionImpl extends IdentifiablePredicateImpl implements IdentifiablePredicateExpression { + /** + * The cached value of the '{@link #getPredicate() <em>Predicate</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getPredicate() + * @generated + * @ordered + */ + protected Predicate predicate; + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IdentifiablePredicateExpressionImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public void reset() { + if(this.getPredicate() != null) + this.getPredicate().reset(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return PredicatePackage.Literals.IDENTIFIABLE_PREDICATE_EXPRESSION; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Predicate getPredicate() { + return predicate; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetPredicate(Predicate newPredicate, NotificationChain msgs) { + Predicate oldPredicate = predicate; + predicate = newPredicate; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, PredicatePackage.IDENTIFIABLE_PREDICATE_EXPRESSION__PREDICATE, oldPredicate, newPredicate); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setPredicate(Predicate newPredicate) { + if (newPredicate != predicate) { + NotificationChain msgs = null; + if (predicate != null) + msgs = ((InternalEObject)predicate).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - PredicatePackage.IDENTIFIABLE_PREDICATE_EXPRESSION__PREDICATE, null, msgs); + if (newPredicate != null) + msgs = ((InternalEObject)newPredicate).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - PredicatePackage.IDENTIFIABLE_PREDICATE_EXPRESSION__PREDICATE, null, msgs); + msgs = basicSetPredicate(newPredicate, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, PredicatePackage.IDENTIFIABLE_PREDICATE_EXPRESSION__PREDICATE, newPredicate, newPredicate)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case PredicatePackage.IDENTIFIABLE_PREDICATE_EXPRESSION__PREDICATE: + return basicSetPredicate(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 PredicatePackage.IDENTIFIABLE_PREDICATE_EXPRESSION__PREDICATE: + return getPredicate(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case PredicatePackage.IDENTIFIABLE_PREDICATE_EXPRESSION__PREDICATE: + setPredicate((Predicate)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case PredicatePackage.IDENTIFIABLE_PREDICATE_EXPRESSION__PREDICATE: + setPredicate((Predicate)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case PredicatePackage.IDENTIFIABLE_PREDICATE_EXPRESSION__PREDICATE: + return predicate != null; + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) { + if (baseClass == BooleanExpression.class) { + switch (derivedFeatureID) { + default: return -1; + } + } + if (baseClass == PredicateExpression.class) { + switch (derivedFeatureID) { + case PredicatePackage.IDENTIFIABLE_PREDICATE_EXPRESSION__PREDICATE: return PredicatePackage.PREDICATE_EXPRESSION__PREDICATE; + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) { + if (baseClass == BooleanExpression.class) { + switch (baseFeatureID) { + default: return -1; + } + } + if (baseClass == PredicateExpression.class) { + switch (baseFeatureID) { + case PredicatePackage.PREDICATE_EXPRESSION__PREDICATE: return PredicatePackage.IDENTIFIABLE_PREDICATE_EXPRESSION__PREDICATE; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * @see Identifiable#compareTo(Identifiable) + */ + @Override + public int compareTo(Identifiable o) { + final ComposedAdapterFactory itemProviderFactory = new ComposedAdapterFactory( + ComposedAdapterFactory.Descriptor.Registry.INSTANCE); + + final IItemLabelProvider lp1 = (IItemLabelProvider) itemProviderFactory.adapt( + this, IItemLabelProvider.class); + final IItemLabelProvider lp2 = (IItemLabelProvider) itemProviderFactory.adapt(o, + IItemLabelProvider.class); + return lp1.getText(this).compareTo(lp2.getText(o)); + } // compareTo + + /** + * @see org.eclipse.stem.core.predicate.impl.IdentifiablePredicateImpl#evaluate(org.eclipse.stem.core.model.STEMTime, long, org.eclipse.stem.core.model.Decorator) + */ + @Override + public boolean evaluate(STEMTime time, long timerPeriod, Graph graph) { + boolean retValue = false; + final Predicate predicate = getPredicate(); + // Was a predicate supplied? + if (predicate != null) { + // Yes + retValue = predicate.evaluate(time, timerPeriod, graph); + } + return retValue; + } // evaluate + +} //IdentifiablePredicateExpressionImpl diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/IdentifiablePredicateImpl.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/IdentifiablePredicateImpl.java new file mode 100644 index 000000000..319a5f5ee --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/IdentifiablePredicateImpl.java @@ -0,0 +1,75 @@ +package org.eclipse.stem.core.predicate.impl; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.stem.core.STEMURI; +import org.eclipse.stem.core.common.impl.IdentifiableImpl; +import org.eclipse.stem.core.graph.Graph; +import org.eclipse.stem.core.model.STEMTime; +import org.eclipse.stem.core.predicate.IdentifiablePredicate; +import org.eclipse.stem.core.predicate.PredicatePackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Identifiable Predicate</b></em>'. + * <!-- end-user-doc --> + * <p> + * </p> + * + * @generated + */ +public abstract class IdentifiablePredicateImpl extends IdentifiableImpl implements IdentifiablePredicate { + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + protected IdentifiablePredicateImpl() { + super(); + setURI(STEMURI.createURI(URI_TYPE_PREDICATE_SEGMENT + "/" + + STEMURI.generateUniquePart())); + setTypeURI(STEMURI.PREDICATE_TYPE_URI); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return PredicatePackage.Literals.IDENTIFIABLE_PREDICATE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean evaluate(STEMTime time, long timerPeriod, Graph graph) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public void reset() { + // Nothing, override in subclass + } + +} //IdentifiablePredicateImpl diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/IdentifiableTestImpl.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/IdentifiableTestImpl.java new file mode 100644 index 000000000..df837a013 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/IdentifiableTestImpl.java @@ -0,0 +1,47 @@ +package org.eclipse.stem.core.predicate.impl; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.stem.core.predicate.IdentifiableTest; +import org.eclipse.stem.core.predicate.PredicatePackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Identifiable Test</b></em>'. + * <!-- end-user-doc --> + * <p> + * </p> + * + * @generated + */ +public abstract class IdentifiableTestImpl extends IdentifiablePredicateImpl implements IdentifiableTest { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IdentifiableTestImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return PredicatePackage.Literals.IDENTIFIABLE_TEST; + } + +} //IdentifiableTestImpl diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/NaryBooleanOperatorImpl.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/NaryBooleanOperatorImpl.java new file mode 100644 index 000000000..5ee604ec4 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/NaryBooleanOperatorImpl.java @@ -0,0 +1,155 @@ +package org.eclipse.stem.core.predicate.impl; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import java.util.Collection; + +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.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; +import org.eclipse.stem.core.predicate.NaryBooleanOperator; +import org.eclipse.stem.core.predicate.Predicate; +import org.eclipse.stem.core.predicate.PredicatePackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Nary Boolean Operator</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.core.predicate.impl.NaryBooleanOperatorImpl#getOperands <em>Operands</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public abstract class NaryBooleanOperatorImpl extends BooleanOperatorImpl implements NaryBooleanOperator { + /** + * 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 NaryBooleanOperatorImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return PredicatePackage.Literals.NARY_BOOLEAN_OPERATOR; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<Predicate> getOperands() { + if (operands == null) { + operands = new EObjectContainmentEList<Predicate>(Predicate.class, this, PredicatePackage.NARY_BOOLEAN_OPERATOR__OPERANDS); + } + return operands; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case PredicatePackage.NARY_BOOLEAN_OPERATOR__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 PredicatePackage.NARY_BOOLEAN_OPERATOR__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 PredicatePackage.NARY_BOOLEAN_OPERATOR__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 PredicatePackage.NARY_BOOLEAN_OPERATOR__OPERANDS: + getOperands().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case PredicatePackage.NARY_BOOLEAN_OPERATOR__OPERANDS: + return operands != null && !operands.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //NaryBooleanOperatorImpl diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/NotImpl.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/NotImpl.java new file mode 100644 index 000000000..89d4e3bb6 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/NotImpl.java @@ -0,0 +1,58 @@ +package org.eclipse.stem.core.predicate.impl; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.stem.core.graph.Graph; +import org.eclipse.stem.core.model.STEMTime; +import org.eclipse.stem.core.predicate.Not; +import org.eclipse.stem.core.predicate.PredicatePackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Not</b></em>'. + * <!-- end-user-doc --> + * <p> + * </p> + * + * @generated + */ +public class NotImpl extends UnaryBooleanOperatorImpl implements Not { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected NotImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return PredicatePackage.Literals.NOT; + } + + /** + * @see org.eclipse.stem.core.predicate.impl.PredicateImpl#evaluate(org.eclipse.stem.core.model.STEMTime, long, org.eclipse.stem.core.model.Decorator) + */ + @Override + public boolean evaluate(STEMTime time, long timerPeriod, Graph graph) { + return !getOperand().evaluate(time, timerPeriod, graph); + } + + +} //NotImpl diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/OrImpl.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/OrImpl.java new file mode 100644 index 000000000..91ffc9c01 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/OrImpl.java @@ -0,0 +1,68 @@ +package org.eclipse.stem.core.predicate.impl; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.stem.core.graph.Graph; +import org.eclipse.stem.core.model.STEMTime; +import org.eclipse.stem.core.predicate.Or; +import org.eclipse.stem.core.predicate.Predicate; +import org.eclipse.stem.core.predicate.PredicatePackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Or</b></em>'. + * <!-- end-user-doc --> + * <p> + * </p> + * + * @generated + */ +public class OrImpl extends NaryBooleanOperatorImpl implements Or { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected OrImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return PredicatePackage.Literals.OR; + } + + /** + * @see org.eclipse.stem.core.predicate.impl.PredicateImpl#evaluate(org.eclipse.stem.core.model.STEMTime, long, org.eclipse.stem.core.model.Decorator) + */ + @Override + public boolean evaluate(STEMTime time, long timerPeriod, Graph graph) { + boolean retValue = false; + for (Predicate predicate : getOperands()) { + retValue = predicate.evaluate(time, timerPeriod, graph); + // One is true? + if (retValue) { + // Yes + break; + } // if + } // for each Predicate + return retValue; + } // evaluate + + +} //OrImpl diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/PredicateExpressionImpl.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/PredicateExpressionImpl.java new file mode 100644 index 000000000..281b9d1aa --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/PredicateExpressionImpl.java @@ -0,0 +1,196 @@ +package org.eclipse.stem.core.predicate.impl; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.stem.core.graph.Graph; +import org.eclipse.stem.core.model.STEMTime; +import org.eclipse.stem.core.predicate.Predicate; +import org.eclipse.stem.core.predicate.PredicateExpression; +import org.eclipse.stem.core.predicate.PredicatePackage; + + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Expression</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.core.predicate.impl.PredicateExpressionImpl#getPredicate <em>Predicate</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class PredicateExpressionImpl extends BooleanExpressionImpl implements PredicateExpression { + /** + * The cached value of the '{@link #getPredicate() <em>Predicate</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getPredicate() + * @generated + * @ordered + */ + protected Predicate predicate; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected PredicateExpressionImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return PredicatePackage.Literals.PREDICATE_EXPRESSION; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Predicate getPredicate() { + return predicate; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetPredicate(Predicate newPredicate, NotificationChain msgs) { + Predicate oldPredicate = predicate; + predicate = newPredicate; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, PredicatePackage.PREDICATE_EXPRESSION__PREDICATE, oldPredicate, newPredicate); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setPredicate(Predicate newPredicate) { + if (newPredicate != predicate) { + NotificationChain msgs = null; + if (predicate != null) + msgs = ((InternalEObject)predicate).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - PredicatePackage.PREDICATE_EXPRESSION__PREDICATE, null, msgs); + if (newPredicate != null) + msgs = ((InternalEObject)newPredicate).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - PredicatePackage.PREDICATE_EXPRESSION__PREDICATE, null, msgs); + msgs = basicSetPredicate(newPredicate, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, PredicatePackage.PREDICATE_EXPRESSION__PREDICATE, newPredicate, newPredicate)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case PredicatePackage.PREDICATE_EXPRESSION__PREDICATE: + return basicSetPredicate(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 PredicatePackage.PREDICATE_EXPRESSION__PREDICATE: + return getPredicate(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case PredicatePackage.PREDICATE_EXPRESSION__PREDICATE: + setPredicate((Predicate)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case PredicatePackage.PREDICATE_EXPRESSION__PREDICATE: + setPredicate((Predicate)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case PredicatePackage.PREDICATE_EXPRESSION__PREDICATE: + return predicate != null; + } + return super.eIsSet(featureID); + } + + /** + * @see org.eclipse.stem.core.predicate.impl.PredicateImpl#evaluate(org.eclipse.stem.core.model.STEMTime, long, org.eclipse.stem.core.model.Decorator) + */ + @Override + public boolean evaluate(STEMTime time, long timerPeriod, Graph graph) { + try { + return getPredicate().evaluate(time, timerPeriod, graph); + } catch (Exception e) { + return false; + } + } + +} //PredicateExpressionImpl diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/PredicateFactoryImpl.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/PredicateFactoryImpl.java new file mode 100644 index 000000000..b8f163b4d --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/PredicateFactoryImpl.java @@ -0,0 +1,199 @@ +package org.eclipse.stem.core.predicate.impl; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import org.eclipse.emf.ecore.EClass; +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.stem.core.predicate.And; +import org.eclipse.stem.core.predicate.ElapsedTimeTest; +import org.eclipse.stem.core.predicate.False; +import org.eclipse.stem.core.predicate.IdentifiablePredicateExpression; +import org.eclipse.stem.core.predicate.Not; +import org.eclipse.stem.core.predicate.Or; +import org.eclipse.stem.core.predicate.PredicateExpression; +import org.eclipse.stem.core.predicate.PredicateFactory; +import org.eclipse.stem.core.predicate.PredicatePackage; +import org.eclipse.stem.core.predicate.PredicateReference; +import org.eclipse.stem.core.predicate.True; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Factory</b>. + * <!-- end-user-doc --> + * @generated + */ +public class PredicateFactoryImpl extends EFactoryImpl implements PredicateFactory { + /** + * Creates the default factory implementation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static PredicateFactory init() { + try { + PredicateFactory thePredicateFactory = (PredicateFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org/eclipse/stem/core/predicate.ecore"); //$NON-NLS-1$ + if (thePredicateFactory != null) { + return thePredicateFactory; + } + } + catch (Exception exception) { + EcorePlugin.INSTANCE.log(exception); + } + return new PredicateFactoryImpl(); + } + + /** + * Creates an instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PredicateFactoryImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EObject create(EClass eClass) { + switch (eClass.getClassifierID()) { + case PredicatePackage.AND: return createAnd(); + case PredicatePackage.FALSE: return createFalse(); + case PredicatePackage.NOT: return createNot(); + case PredicatePackage.OR: return createOr(); + case PredicatePackage.PREDICATE_REFERENCE: return createPredicateReference(); + case PredicatePackage.TRUE: return createTrue(); + case PredicatePackage.PREDICATE_EXPRESSION: return createPredicateExpression(); + case PredicatePackage.IDENTIFIABLE_PREDICATE_EXPRESSION: return createIdentifiablePredicateExpression(); + case PredicatePackage.ELAPSED_TIME_TEST: return createElapsedTimeTest(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$ + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public And createAnd() { + AndImpl and = new AndImpl(); + return and; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public False createFalse() { + FalseImpl false_ = new FalseImpl(); + return false_; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Not createNot() { + NotImpl not = new NotImpl(); + return not; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Or createOr() { + OrImpl or = new OrImpl(); + return or; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PredicateReference createPredicateReference() { + PredicateReferenceImpl predicateReference = new PredicateReferenceImpl(); + return predicateReference; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public True createTrue() { + TrueImpl true_ = new TrueImpl(); + return true_; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PredicateExpression createPredicateExpression() { + PredicateExpressionImpl predicateExpression = new PredicateExpressionImpl(); + return predicateExpression; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public IdentifiablePredicateExpression createIdentifiablePredicateExpression() { + IdentifiablePredicateExpressionImpl identifiablePredicateExpression = new IdentifiablePredicateExpressionImpl(); + return identifiablePredicateExpression; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ElapsedTimeTest createElapsedTimeTest() { + ElapsedTimeTestImpl elapsedTimeTest = new ElapsedTimeTestImpl(); + return elapsedTimeTest; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PredicatePackage getPredicatePackage() { + return (PredicatePackage)getEPackage(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @deprecated + * @generated + */ + @Deprecated + public static PredicatePackage getPackage() { + return PredicatePackage.eINSTANCE; + } + +} //PredicateFactoryImpl diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/PredicateImpl.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/PredicateImpl.java new file mode 100644 index 000000000..03f5f9a5a --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/PredicateImpl.java @@ -0,0 +1,70 @@ +package org.eclipse.stem.core.predicate.impl; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.EObjectImpl; +import org.eclipse.stem.core.graph.Graph; +import org.eclipse.stem.core.model.STEMTime; +import org.eclipse.stem.core.predicate.Predicate; +import org.eclipse.stem.core.predicate.PredicatePackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Predicate</b></em>'. + * <!-- end-user-doc --> + * <p> + * </p> + * + * @generated + */ +public abstract class PredicateImpl extends EObjectImpl implements Predicate { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected PredicateImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return PredicatePackage.Literals.PREDICATE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean evaluate(STEMTime time, long timerPeriod, Graph graph) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public void reset() { + // Subclasses overrides if necessary + } + +} //PredicateImpl diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/PredicatePackageImpl.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/PredicatePackageImpl.java new file mode 100644 index 000000000..7d8c696c1 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/PredicatePackageImpl.java @@ -0,0 +1,708 @@ +package org.eclipse.stem.core.predicate.impl; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.EcorePackage; +import org.eclipse.emf.ecore.impl.EPackageImpl; +import org.eclipse.stem.core.common.CommonPackage; +import org.eclipse.stem.core.common.impl.CommonPackageImpl; +import org.eclipse.stem.core.experiment.ExperimentPackage; +import org.eclipse.stem.core.experiment.impl.ExperimentPackageImpl; +import org.eclipse.stem.core.graph.GraphPackage; +import org.eclipse.stem.core.graph.impl.GraphPackageImpl; +import org.eclipse.stem.core.logger.LoggerPackage; +import org.eclipse.stem.core.logger.impl.LoggerPackageImpl; +import org.eclipse.stem.core.model.ModelPackage; +import org.eclipse.stem.core.model.impl.ModelPackageImpl; +import org.eclipse.stem.core.modifier.ModifierPackage; +import org.eclipse.stem.core.modifier.impl.ModifierPackageImpl; +import org.eclipse.stem.core.predicate.And; +import org.eclipse.stem.core.predicate.BooleanExpression; +import org.eclipse.stem.core.predicate.BooleanOperator; +import org.eclipse.stem.core.predicate.ElapsedTimeTest; +import org.eclipse.stem.core.predicate.False; +import org.eclipse.stem.core.predicate.IdentifiablePredicate; +import org.eclipse.stem.core.predicate.IdentifiablePredicateExpression; +import org.eclipse.stem.core.predicate.IdentifiableTest; +import org.eclipse.stem.core.predicate.NaryBooleanOperator; +import org.eclipse.stem.core.predicate.Not; +import org.eclipse.stem.core.predicate.Or; +import org.eclipse.stem.core.predicate.Predicate; +import org.eclipse.stem.core.predicate.PredicateExpression; +import org.eclipse.stem.core.predicate.PredicateFactory; +import org.eclipse.stem.core.predicate.PredicatePackage; +import org.eclipse.stem.core.predicate.PredicateReference; +import org.eclipse.stem.core.predicate.Test; +import org.eclipse.stem.core.predicate.TimeTest; +import org.eclipse.stem.core.predicate.True; +import org.eclipse.stem.core.predicate.UnaryBooleanOperator; +import org.eclipse.stem.core.scenario.ScenarioPackage; +import org.eclipse.stem.core.scenario.impl.ScenarioPackageImpl; +import org.eclipse.stem.core.sequencer.SequencerPackage; +import org.eclipse.stem.core.sequencer.impl.SequencerPackageImpl; +import org.eclipse.stem.core.solver.SolverPackage; +import org.eclipse.stem.core.solver.impl.SolverPackageImpl; +import org.eclipse.stem.core.trigger.TriggerPackage; +import org.eclipse.stem.core.trigger.impl.TriggerPackageImpl; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Package</b>. + * <!-- end-user-doc --> + * @generated + */ +public class PredicatePackageImpl extends EPackageImpl implements PredicatePackage { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass andEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass booleanExpressionEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass booleanOperatorEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass falseEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass naryBooleanOperatorEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass notEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass orEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass predicateEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass predicateReferenceEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass testEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass trueEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass unaryBooleanOperatorEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass predicateExpressionEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass identifiablePredicateEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass identifiablePredicateExpressionEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass identifiableTestEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass timeTestEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass elapsedTimeTestEClass = 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.stem.core.predicate.PredicatePackage#eNS_URI + * @see #init() + * @generated + */ + private PredicatePackageImpl() { + super(eNS_URI, PredicateFactory.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 PredicatePackage#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 PredicatePackage init() { + if (isInited) return (PredicatePackage)EPackage.Registry.INSTANCE.getEPackage(PredicatePackage.eNS_URI); + + // Obtain or create and register package + PredicatePackageImpl thePredicatePackage = (PredicatePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof PredicatePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new PredicatePackageImpl()); + + isInited = true; + + // Initialize simple dependencies + EcorePackage.eINSTANCE.eClass(); + + // Obtain or create and register interdependencies + CommonPackageImpl theCommonPackage = (CommonPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(CommonPackage.eNS_URI) instanceof CommonPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(CommonPackage.eNS_URI) : CommonPackage.eINSTANCE); + ExperimentPackageImpl theExperimentPackage = (ExperimentPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ExperimentPackage.eNS_URI) instanceof ExperimentPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ExperimentPackage.eNS_URI) : ExperimentPackage.eINSTANCE); + GraphPackageImpl theGraphPackage = (GraphPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(GraphPackage.eNS_URI) instanceof GraphPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(GraphPackage.eNS_URI) : GraphPackage.eINSTANCE); + ModelPackageImpl theModelPackage = (ModelPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ModelPackage.eNS_URI) instanceof ModelPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ModelPackage.eNS_URI) : ModelPackage.eINSTANCE); + ModifierPackageImpl theModifierPackage = (ModifierPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ModifierPackage.eNS_URI) instanceof ModifierPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ModifierPackage.eNS_URI) : ModifierPackage.eINSTANCE); + ScenarioPackageImpl theScenarioPackage = (ScenarioPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ScenarioPackage.eNS_URI) instanceof ScenarioPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ScenarioPackage.eNS_URI) : ScenarioPackage.eINSTANCE); + SequencerPackageImpl theSequencerPackage = (SequencerPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SequencerPackage.eNS_URI) instanceof SequencerPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SequencerPackage.eNS_URI) : SequencerPackage.eINSTANCE); + TriggerPackageImpl theTriggerPackage = (TriggerPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(TriggerPackage.eNS_URI) instanceof TriggerPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(TriggerPackage.eNS_URI) : TriggerPackage.eINSTANCE); + SolverPackageImpl theSolverPackage = (SolverPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(SolverPackage.eNS_URI) instanceof SolverPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(SolverPackage.eNS_URI) : SolverPackage.eINSTANCE); + LoggerPackageImpl theLoggerPackage = (LoggerPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(LoggerPackage.eNS_URI) instanceof LoggerPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(LoggerPackage.eNS_URI) : LoggerPackage.eINSTANCE); + + // Create package meta-data objects + thePredicatePackage.createPackageContents(); + theCommonPackage.createPackageContents(); + theExperimentPackage.createPackageContents(); + theGraphPackage.createPackageContents(); + theModelPackage.createPackageContents(); + theModifierPackage.createPackageContents(); + theScenarioPackage.createPackageContents(); + theSequencerPackage.createPackageContents(); + theTriggerPackage.createPackageContents(); + theSolverPackage.createPackageContents(); + theLoggerPackage.createPackageContents(); + + // Initialize created meta-data + thePredicatePackage.initializePackageContents(); + theCommonPackage.initializePackageContents(); + theExperimentPackage.initializePackageContents(); + theGraphPackage.initializePackageContents(); + theModelPackage.initializePackageContents(); + theModifierPackage.initializePackageContents(); + theScenarioPackage.initializePackageContents(); + theSequencerPackage.initializePackageContents(); + theTriggerPackage.initializePackageContents(); + theSolverPackage.initializePackageContents(); + theLoggerPackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + thePredicatePackage.freeze(); + + + // Update the registry and return the package + EPackage.Registry.INSTANCE.put(PredicatePackage.eNS_URI, thePredicatePackage); + return thePredicatePackage; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getAnd() { + return andEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getBooleanExpression() { + return booleanExpressionEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getBooleanOperator() { + return booleanOperatorEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getFalse() { + return falseEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getNaryBooleanOperator() { + return naryBooleanOperatorEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getNaryBooleanOperator_Operands() { + return (EReference)naryBooleanOperatorEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getNot() { + return notEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getOr() { + return orEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getPredicate() { + return predicateEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getPredicateReference() { + return predicateReferenceEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getPredicateReference_Predicate() { + return (EReference)predicateReferenceEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getTest() { + return testEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getTrue() { + return trueEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getUnaryBooleanOperator() { + return unaryBooleanOperatorEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getUnaryBooleanOperator_Operand() { + return (EReference)unaryBooleanOperatorEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getPredicateExpression() { + return predicateExpressionEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getPredicateExpression_Predicate() { + return (EReference)predicateExpressionEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getIdentifiablePredicate() { + return identifiablePredicateEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getIdentifiablePredicateExpression() { + return identifiablePredicateExpressionEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getIdentifiableTest() { + return identifiableTestEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getTimeTest() { + return timeTestEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getElapsedTimeTest() { + return elapsedTimeTestEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getElapsedTimeTest_ReferenceTimeValid() { + return (EAttribute)elapsedTimeTestEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getElapsedTimeTest_ElapsedMilliseconds() { + return (EAttribute)elapsedTimeTestEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getElapsedTimeTest_NumberofDays() { + return (EAttribute)elapsedTimeTestEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getElapsedTimeTest_ReferenceTime() { + return (EReference)elapsedTimeTestEClass.getEStructuralFeatures().get(3); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PredicateFactory getPredicateFactory() { + return (PredicateFactory)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 + andEClass = createEClass(AND); + + booleanExpressionEClass = createEClass(BOOLEAN_EXPRESSION); + + booleanOperatorEClass = createEClass(BOOLEAN_OPERATOR); + + falseEClass = createEClass(FALSE); + + naryBooleanOperatorEClass = createEClass(NARY_BOOLEAN_OPERATOR); + createEReference(naryBooleanOperatorEClass, NARY_BOOLEAN_OPERATOR__OPERANDS); + + notEClass = createEClass(NOT); + + orEClass = createEClass(OR); + + predicateEClass = createEClass(PREDICATE); + + predicateReferenceEClass = createEClass(PREDICATE_REFERENCE); + createEReference(predicateReferenceEClass, PREDICATE_REFERENCE__PREDICATE); + + testEClass = createEClass(TEST); + + trueEClass = createEClass(TRUE); + + unaryBooleanOperatorEClass = createEClass(UNARY_BOOLEAN_OPERATOR); + createEReference(unaryBooleanOperatorEClass, UNARY_BOOLEAN_OPERATOR__OPERAND); + + predicateExpressionEClass = createEClass(PREDICATE_EXPRESSION); + createEReference(predicateExpressionEClass, PREDICATE_EXPRESSION__PREDICATE); + + identifiablePredicateEClass = createEClass(IDENTIFIABLE_PREDICATE); + + identifiablePredicateExpressionEClass = createEClass(IDENTIFIABLE_PREDICATE_EXPRESSION); + + identifiableTestEClass = createEClass(IDENTIFIABLE_TEST); + + timeTestEClass = createEClass(TIME_TEST); + + elapsedTimeTestEClass = createEClass(ELAPSED_TIME_TEST); + createEAttribute(elapsedTimeTestEClass, ELAPSED_TIME_TEST__REFERENCE_TIME_VALID); + createEAttribute(elapsedTimeTestEClass, ELAPSED_TIME_TEST__ELAPSED_MILLISECONDS); + createEAttribute(elapsedTimeTestEClass, ELAPSED_TIME_TEST__NUMBEROF_DAYS); + createEReference(elapsedTimeTestEClass, ELAPSED_TIME_TEST__REFERENCE_TIME); + } + + /** + * <!-- 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); + + // Obtain other dependent packages + ModelPackage theModelPackage = (ModelPackage)EPackage.Registry.INSTANCE.getEPackage(ModelPackage.eNS_URI); + GraphPackage theGraphPackage = (GraphPackage)EPackage.Registry.INSTANCE.getEPackage(GraphPackage.eNS_URI); + CommonPackage theCommonPackage = (CommonPackage)EPackage.Registry.INSTANCE.getEPackage(CommonPackage.eNS_URI); + + // Create type parameters + + // Set bounds for type parameters + + // Add supertypes to classes + andEClass.getESuperTypes().add(this.getNaryBooleanOperator()); + booleanExpressionEClass.getESuperTypes().add(this.getPredicate()); + booleanOperatorEClass.getESuperTypes().add(this.getBooleanExpression()); + falseEClass.getESuperTypes().add(this.getTest()); + naryBooleanOperatorEClass.getESuperTypes().add(this.getBooleanOperator()); + notEClass.getESuperTypes().add(this.getUnaryBooleanOperator()); + orEClass.getESuperTypes().add(this.getNaryBooleanOperator()); + predicateReferenceEClass.getESuperTypes().add(this.getPredicate()); + testEClass.getESuperTypes().add(this.getPredicate()); + trueEClass.getESuperTypes().add(this.getTest()); + unaryBooleanOperatorEClass.getESuperTypes().add(this.getBooleanOperator()); + predicateExpressionEClass.getESuperTypes().add(this.getBooleanExpression()); + identifiablePredicateEClass.getESuperTypes().add(theCommonPackage.getIdentifiable()); + identifiablePredicateEClass.getESuperTypes().add(this.getPredicate()); + identifiablePredicateExpressionEClass.getESuperTypes().add(this.getIdentifiablePredicate()); + identifiablePredicateExpressionEClass.getESuperTypes().add(this.getPredicateExpression()); + identifiableTestEClass.getESuperTypes().add(this.getIdentifiablePredicate()); + identifiableTestEClass.getESuperTypes().add(this.getTest()); + timeTestEClass.getESuperTypes().add(this.getTest()); + elapsedTimeTestEClass.getESuperTypes().add(this.getTimeTest()); + + // Initialize classes and features; add operations and parameters + initEClass(andEClass, And.class, "And", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ + + initEClass(booleanExpressionEClass, BooleanExpression.class, "BooleanExpression", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ + + initEClass(booleanOperatorEClass, BooleanOperator.class, "BooleanOperator", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ + + initEClass(falseEClass, False.class, "False", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ + + initEClass(naryBooleanOperatorEClass, NaryBooleanOperator.class, "NaryBooleanOperator", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ + initEReference(getNaryBooleanOperator_Operands(), this.getPredicate(), null, "operands", null, 0, -1, NaryBooleanOperator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ + + initEClass(notEClass, Not.class, "Not", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ + + initEClass(orEClass, Or.class, "Or", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ + + initEClass(predicateEClass, Predicate.class, "Predicate", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ + + EOperation op = addEOperation(predicateEClass, ecorePackage.getEBoolean(), "evaluate", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$ + addEParameter(op, theModelPackage.getSTEMTime(), "time", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$ + addEParameter(op, ecorePackage.getELong(), "timerPeriod", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$ + addEParameter(op, theGraphPackage.getGraph(), "graph", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$ + + addEOperation(predicateEClass, null, "reset", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$ + + initEClass(predicateReferenceEClass, PredicateReference.class, "PredicateReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ + initEReference(getPredicateReference_Predicate(), this.getPredicate(), null, "predicate", null, 0, 1, PredicateReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ + + initEClass(testEClass, Test.class, "Test", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ + + initEClass(trueEClass, True.class, "True", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ + + initEClass(unaryBooleanOperatorEClass, UnaryBooleanOperator.class, "UnaryBooleanOperator", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ + initEReference(getUnaryBooleanOperator_Operand(), this.getPredicate(), null, "operand", null, 0, 1, UnaryBooleanOperator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ + + initEClass(predicateExpressionEClass, PredicateExpression.class, "PredicateExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ + initEReference(getPredicateExpression_Predicate(), this.getPredicate(), null, "predicate", null, 0, 1, PredicateExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ + + initEClass(identifiablePredicateEClass, IdentifiablePredicate.class, "IdentifiablePredicate", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ + + initEClass(identifiablePredicateExpressionEClass, IdentifiablePredicateExpression.class, "IdentifiablePredicateExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ + + initEClass(identifiableTestEClass, IdentifiableTest.class, "IdentifiableTest", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ + + initEClass(timeTestEClass, TimeTest.class, "TimeTest", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ + + initEClass(elapsedTimeTestEClass, ElapsedTimeTest.class, "ElapsedTimeTest", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ + initEAttribute(getElapsedTimeTest_ReferenceTimeValid(), ecorePackage.getEBoolean(), "referenceTimeValid", "false", 0, 1, ElapsedTimeTest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$ + initEAttribute(getElapsedTimeTest_ElapsedMilliseconds(), ecorePackage.getELong(), "elapsedMilliseconds", null, 0, 1, ElapsedTimeTest.class, IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ + initEAttribute(getElapsedTimeTest_NumberofDays(), ecorePackage.getEInt(), "numberofDays", "0", 0, 1, ElapsedTimeTest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$ + initEReference(getElapsedTimeTest_ReferenceTime(), theModelPackage.getSTEMTime(), null, "referenceTime", null, 0, 1, ElapsedTimeTest.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ + + // Create resource + createResource(eNS_URI); + } + +} //PredicatePackageImpl diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/PredicateReferenceImpl.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/PredicateReferenceImpl.java new file mode 100644 index 000000000..c7a641098 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/PredicateReferenceImpl.java @@ -0,0 +1,175 @@ +package org.eclipse.stem.core.predicate.impl; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.stem.core.graph.Graph; +import org.eclipse.stem.core.model.STEMTime; +import org.eclipse.stem.core.predicate.Predicate; +import org.eclipse.stem.core.predicate.PredicatePackage; +import org.eclipse.stem.core.predicate.PredicateReference; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Reference</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.core.predicate.impl.PredicateReferenceImpl#getPredicate <em>Predicate</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class PredicateReferenceImpl extends PredicateImpl implements PredicateReference { + /** + * The cached value of the '{@link #getPredicate() <em>Predicate</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getPredicate() + * @generated + * @ordered + */ + protected Predicate predicate; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected PredicateReferenceImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return PredicatePackage.Literals.PREDICATE_REFERENCE; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Predicate getPredicate() { + if (predicate != null && predicate.eIsProxy()) { + InternalEObject oldPredicate = (InternalEObject)predicate; + predicate = (Predicate)eResolveProxy(oldPredicate); + if (predicate != oldPredicate) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, PredicatePackage.PREDICATE_REFERENCE__PREDICATE, oldPredicate, predicate)); + } + } + return predicate; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Predicate basicGetPredicate() { + return predicate; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setPredicate(Predicate newPredicate) { + Predicate oldPredicate = predicate; + predicate = newPredicate; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, PredicatePackage.PREDICATE_REFERENCE__PREDICATE, oldPredicate, predicate)); + } + + + /** + * @see org.eclipse.stem.core.predicate.impl.PredicateImpl#evaluate(org.eclipse.stem.core.model.STEMTime, long, org.eclipse.stem.core.model.Decorator) + */ + @Override + public boolean evaluate(STEMTime time, long timerPeriod, Graph graph) { + return getPredicate().evaluate(time, timerPeriod, graph); + } // evaluate + + + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case PredicatePackage.PREDICATE_REFERENCE__PREDICATE: + if (resolve) return getPredicate(); + return basicGetPredicate(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case PredicatePackage.PREDICATE_REFERENCE__PREDICATE: + setPredicate((Predicate)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case PredicatePackage.PREDICATE_REFERENCE__PREDICATE: + setPredicate((Predicate)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case PredicatePackage.PREDICATE_REFERENCE__PREDICATE: + return predicate != null; + } + return super.eIsSet(featureID); + } + +} //PredicateReferenceImpl diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/TestImpl.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/TestImpl.java new file mode 100644 index 000000000..1376b6f49 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/TestImpl.java @@ -0,0 +1,47 @@ +package org.eclipse.stem.core.predicate.impl; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.stem.core.predicate.PredicatePackage; +import org.eclipse.stem.core.predicate.Test; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Test</b></em>'. + * <!-- end-user-doc --> + * <p> + * </p> + * + * @generated + */ +public abstract class TestImpl extends PredicateImpl implements Test { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected TestImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return PredicatePackage.Literals.TEST; + } + +} //TestImpl diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/TimeTestImpl.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/TimeTestImpl.java new file mode 100644 index 000000000..67add7128 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/TimeTestImpl.java @@ -0,0 +1,48 @@ +// TimeTestImpl.java +package org.eclipse.stem.core.predicate.impl; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.stem.core.predicate.PredicatePackage; +import org.eclipse.stem.core.predicate.TimeTest; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Time Test</b></em>'. + * <!-- end-user-doc --> + * <p> + * </p> + * + * @generated + */ +public abstract class TimeTestImpl extends TestImpl implements TimeTest { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected TimeTestImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return PredicatePackage.Literals.TIME_TEST; + } + +} //TimeTestImpl diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/TrueImpl.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/TrueImpl.java new file mode 100644 index 000000000..a77faea3a --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/TrueImpl.java @@ -0,0 +1,57 @@ +package org.eclipse.stem.core.predicate.impl; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.stem.core.graph.Graph; +import org.eclipse.stem.core.model.STEMTime; +import org.eclipse.stem.core.predicate.PredicatePackage; +import org.eclipse.stem.core.predicate.True; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>True</b></em>'. + * <!-- end-user-doc --> + * <p> + * </p> + * + * @generated + */ +public class TrueImpl extends TestImpl implements True { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected TrueImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return PredicatePackage.Literals.TRUE; + } + + /** + * @see org.eclipse.stem.core.predicate.impl.PredicateImpl#evaluate(org.eclipse.stem.core.model.STEMTime, long, org.eclipse.stem.core.model.Decorator) + */ + @Override + public boolean evaluate(STEMTime time, long timerPeriod, Graph graph) { + return true; + } + +} //TrueImpl diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/UnaryBooleanOperatorImpl.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/UnaryBooleanOperatorImpl.java new file mode 100644 index 000000000..2a838f73a --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/impl/UnaryBooleanOperatorImpl.java @@ -0,0 +1,181 @@ +package org.eclipse.stem.core.predicate.impl; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.stem.core.predicate.Predicate; +import org.eclipse.stem.core.predicate.PredicatePackage; +import org.eclipse.stem.core.predicate.UnaryBooleanOperator; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Unary Boolean Operator</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.stem.core.predicate.impl.UnaryBooleanOperatorImpl#getOperand <em>Operand</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public abstract class UnaryBooleanOperatorImpl extends BooleanOperatorImpl implements UnaryBooleanOperator { + /** + * 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 UnaryBooleanOperatorImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return PredicatePackage.Literals.UNARY_BOOLEAN_OPERATOR; + } + + /** + * <!-- 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, PredicatePackage.UNARY_BOOLEAN_OPERATOR__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 - PredicatePackage.UNARY_BOOLEAN_OPERATOR__OPERAND, null, msgs); + if (newOperand != null) + msgs = ((InternalEObject)newOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - PredicatePackage.UNARY_BOOLEAN_OPERATOR__OPERAND, null, msgs); + msgs = basicSetOperand(newOperand, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, PredicatePackage.UNARY_BOOLEAN_OPERATOR__OPERAND, newOperand, newOperand)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case PredicatePackage.UNARY_BOOLEAN_OPERATOR__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 PredicatePackage.UNARY_BOOLEAN_OPERATOR__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 PredicatePackage.UNARY_BOOLEAN_OPERATOR__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 PredicatePackage.UNARY_BOOLEAN_OPERATOR__OPERAND: + setOperand((Predicate)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case PredicatePackage.UNARY_BOOLEAN_OPERATOR__OPERAND: + return operand != null; + } + return super.eIsSet(featureID); + } + +} //UnaryBooleanOperatorImpl diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/AndItemProvider.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/AndItemProvider.java new file mode 100644 index 000000000..094a62695 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/AndItemProvider.java @@ -0,0 +1,123 @@ +package org.eclipse.stem.core.predicate.provider; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; + +/** + * This is the item provider adapter for a {@link org.eclipse.stem.core.predicate.And} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class AndItemProvider + extends NaryBooleanOperatorItemProvider + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public AndItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns And.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/customobj16/And.png")); //$NON-NLS-1$ + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public String getText(Object object) { + return "&"; + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +// @Override + public String getTextGen(Object object) { + return getString("_UI_And_type"); //$NON-NLS-1$ + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) { + updateChildren(notification); + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + +} diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/BooleanExpressionItemProvider.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/BooleanExpressionItemProvider.java new file mode 100644 index 000000000..7382b526d --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/BooleanExpressionItemProvider.java @@ -0,0 +1,102 @@ +package org.eclipse.stem.core.predicate.provider; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; + +/** + * This is the item provider adapter for a {@link org.eclipse.stem.core.predicate.BooleanExpression} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class BooleanExpressionItemProvider + extends PredicateItemProvider + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public BooleanExpressionItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_BooleanExpression_type"); //$NON-NLS-1$ + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) { + updateChildren(notification); + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + +} diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/BooleanOperatorItemProvider.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/BooleanOperatorItemProvider.java new file mode 100644 index 000000000..93dd1eaf5 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/BooleanOperatorItemProvider.java @@ -0,0 +1,102 @@ +package org.eclipse.stem.core.predicate.provider; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; + + +/** + * This is the item provider adapter for a {@link org.eclipse.stem.core.predicate.BooleanOperator} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class BooleanOperatorItemProvider + extends BooleanExpressionItemProvider + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public BooleanOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_BooleanOperator_type"); //$NON-NLS-1$ + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) { + updateChildren(notification); + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + +} diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/ElapsedTimeTestItemProvider.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/ElapsedTimeTestItemProvider.java new file mode 100644 index 000000000..28681eadc --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/ElapsedTimeTestItemProvider.java @@ -0,0 +1,159 @@ +package org.eclipse.stem.core.predicate.provider; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.ViewerNotification; +import org.eclipse.stem.core.predicate.ElapsedTimeTest; +import org.eclipse.stem.core.predicate.PredicatePackage; + +/** + * This is the item provider adapter for a {@link org.eclipse.stem.core.predicate.ElapsedTimeTest} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class ElapsedTimeTestItemProvider + extends TimeTestItemProvider + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ElapsedTimeTestItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + addNumberofDaysPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Numberof Days feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addNumberofDaysPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_ElapsedTimeTest_numberofDays_feature"), //$NON-NLS-1$ + getString("_UI_PropertyDescriptor_description", "_UI_ElapsedTimeTest_numberofDays_feature", "_UI_ElapsedTimeTest_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + PredicatePackage.Literals.ELAPSED_TIME_TEST__NUMBEROF_DAYS, + true, + false, + false, + ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE, + null, + null)); + } + + /** + * This returns ElapsedTimeTest.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/customobj16/ElapsedTimeTest.png")); //$NON-NLS-1$ + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public String getText(Object object) { + final ElapsedTimeTest ett = (ElapsedTimeTest)object; + return "After " + ett.getNumberofDays() + " days"; + } // getText + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + //@Override + public String getTextGen(Object object) { + ElapsedTimeTest elapsedTimeTest = (ElapsedTimeTest)object; + return getString("_UI_ElapsedTimeTest_type") + " " + elapsedTimeTest.isReferenceTimeValid(); //$NON-NLS-1$ //$NON-NLS-2$ + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) { + updateChildren(notification); + + switch (notification.getFeatureID(ElapsedTimeTest.class)) { + case PredicatePackage.ELAPSED_TIME_TEST__NUMBEROF_DAYS: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + +} // ElapsedTimeTestItemProvider diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/FalseItemProvider.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/FalseItemProvider.java new file mode 100644 index 000000000..00cd2b7af --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/FalseItemProvider.java @@ -0,0 +1,124 @@ +package org.eclipse.stem.core.predicate.provider; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; + +/** + * This is the item provider adapter for a {@link org.eclipse.stem.core.predicate.False} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class FalseItemProvider + extends TestItemProvider + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public FalseItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns False.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/False")); //$NON-NLS-1$ + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public String getText(Object object) { + return "False"; + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + //@Override + public String getTextGen(Object object) { + return getString("_UI_False_type"); //$NON-NLS-1$ + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) { + updateChildren(notification); + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + +} diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/IdentifiablePredicateExpressionItemProvider.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/IdentifiablePredicateExpressionItemProvider.java new file mode 100644 index 000000000..061090d74 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/IdentifiablePredicateExpressionItemProvider.java @@ -0,0 +1,283 @@ +package org.eclipse.stem.core.predicate.provider; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ViewerNotification; +import org.eclipse.stem.core.common.provider.IdentifiableItemProvider; +import org.eclipse.stem.core.predicate.IdentifiablePredicateExpression; +import org.eclipse.stem.core.predicate.PredicateFactory; +import org.eclipse.stem.core.predicate.PredicatePackage; + +/** + * This is the item provider adapter for a {@link org.eclipse.stem.core.predicate.IdentifiablePredicateExpression} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class IdentifiablePredicateExpressionItemProvider + extends IdentifiablePredicateItemProvider + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public IdentifiablePredicateExpressionItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an + * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or + * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE); + } + return childrenFeatures; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EStructuralFeature getChildFeature(Object object, Object child) { + // Check the type of the specified child object and return the proper feature to use for + // adding (see {@link AddCommand}) it as a child. + + return super.getChildFeature(object, child); + } + + /** + * This returns Predicate.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/customobj16/Predicate")); + } + + /** + * This returns IdentifiablePredicateExpression.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object getImageGen(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/IdentifiablePredicateExpression")); //$NON-NLS-1$ + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see IdentifiableItemProvider#getText(Object) + * @generated NOT + */ + @Override + public String getText(Object object) { + return super.getText(object); + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getTextGen(Object object) { + URI labelValue = ((IdentifiablePredicateExpression)object).getURI(); + String label = labelValue == null ? null : labelValue.toString(); + return label == null || label.length() == 0 ? + getString("_UI_IdentifiablePredicateExpression_type") : //$NON-NLS-1$ + getString("_UI_IdentifiablePredicateExpression_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$ + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) { + updateChildren(notification); + + switch (notification.getFeatureID(IdentifiablePredicateExpression.class)) { + case PredicatePackage.IDENTIFIABLE_PREDICATE_EXPRESSION__PREDICATE: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createAnd())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createFalse())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createNot())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createOr())); + +// newChildDescriptors.add +// (createChildParameter +// (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, +// PredicateFactory.eINSTANCE.createPredicateReference())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createTrue())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createPredicateExpression())); + +// newChildDescriptors.add +// (createChildParameter +// (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, +// PredicateFactory.eINSTANCE.createIdentifiablePredicateExpression())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createElapsedTimeTest())); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + //@Override + protected void collectNewChildDescriptorsGen(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createAnd())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createFalse())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createNot())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createOr())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createPredicateReference())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createTrue())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createPredicateExpression())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createIdentifiablePredicateExpression())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createElapsedTimeTest())); + } + +} diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/IdentifiablePredicateItemProvider.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/IdentifiablePredicateItemProvider.java new file mode 100644 index 000000000..6da0a2af2 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/IdentifiablePredicateItemProvider.java @@ -0,0 +1,115 @@ +package org.eclipse.stem.core.predicate.provider; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.ResourceLocator; +import org.eclipse.emf.edit.provider.IChildCreationExtender; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.stem.core.common.provider.IdentifiableItemProvider; + +/** + * This is the item provider adapter for a {@link org.eclipse.stem.core.predicate.IdentifiablePredicate} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class IdentifiablePredicateItemProvider + extends IdentifiableItemProvider + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public IdentifiablePredicateItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public String getText(Object object) { + return super.getText(object); + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) { + updateChildren(notification); + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * Return the resource locator for this item provider's resources. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return ((IChildCreationExtender)adapterFactory).getResourceLocator(); + } + +} diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/IdentifiableTestItemProvider.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/IdentifiableTestItemProvider.java new file mode 100644 index 000000000..bdd6ac16c --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/IdentifiableTestItemProvider.java @@ -0,0 +1,107 @@ +package org.eclipse.stem.core.predicate.provider; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.stem.core.predicate.IdentifiableTest; + +/** + * This is the item provider adapter for a {@link org.eclipse.stem.core.predicate.IdentifiableTest} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class IdentifiableTestItemProvider + extends IdentifiablePredicateItemProvider + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public IdentifiableTestItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getText(Object object) { + URI labelValue = ((IdentifiableTest)object).getURI(); + String label = labelValue == null ? null : labelValue.toString(); + return label == null || label.length() == 0 ? + getString("_UI_IdentifiableTest_type") : //$NON-NLS-1$ + getString("_UI_IdentifiableTest_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$ + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) { + updateChildren(notification); + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + +} diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/NaryBooleanOperatorItemProvider.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/NaryBooleanOperatorItemProvider.java new file mode 100644 index 000000000..b82d9b8c5 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/NaryBooleanOperatorItemProvider.java @@ -0,0 +1,246 @@ +package org.eclipse.stem.core.predicate.provider; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ViewerNotification; +import org.eclipse.stem.core.predicate.NaryBooleanOperator; +import org.eclipse.stem.core.predicate.PredicateFactory; +import org.eclipse.stem.core.predicate.PredicatePackage; + +/** + * This is the item provider adapter for a {@link org.eclipse.stem.core.predicate.NaryBooleanOperator} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class NaryBooleanOperatorItemProvider + extends BooleanOperatorItemProvider + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NaryBooleanOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an + * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or + * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(PredicatePackage.Literals.NARY_BOOLEAN_OPERATOR__OPERANDS); + } + return childrenFeatures; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EStructuralFeature getChildFeature(Object object, Object child) { + // Check the type of the specified child object and return the proper feature to use for + // adding (see {@link AddCommand}) it as a child. + + return super.getChildFeature(object, child); + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_NaryBooleanOperator_type"); //$NON-NLS-1$ + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) { + updateChildren(notification); + + switch (notification.getFeatureID(NaryBooleanOperator.class)) { + case PredicatePackage.NARY_BOOLEAN_OPERATOR__OPERANDS: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.NARY_BOOLEAN_OPERATOR__OPERANDS, + PredicateFactory.eINSTANCE.createAnd())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.NARY_BOOLEAN_OPERATOR__OPERANDS, + PredicateFactory.eINSTANCE.createFalse())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.NARY_BOOLEAN_OPERATOR__OPERANDS, + PredicateFactory.eINSTANCE.createNot())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.NARY_BOOLEAN_OPERATOR__OPERANDS, + PredicateFactory.eINSTANCE.createOr())); + +// newChildDescriptors.add +// (createChildParameter +// (PredicatePackage.Literals.NARY_BOOLEAN_OPERATOR__OPERANDS, +// PredicateFactory.eINSTANCE.createPredicateReference())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.NARY_BOOLEAN_OPERATOR__OPERANDS, + PredicateFactory.eINSTANCE.createTrue())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.NARY_BOOLEAN_OPERATOR__OPERANDS, + PredicateFactory.eINSTANCE.createPredicateExpression())); + +// newChildDescriptors.add +// (createChildParameter +// (PredicatePackage.Literals.NARY_BOOLEAN_OPERATOR__OPERANDS, +// PredicateFactory.eINSTANCE.createIdentifiablePredicateExpression())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.NARY_BOOLEAN_OPERATOR__OPERANDS, + PredicateFactory.eINSTANCE.createElapsedTimeTest())); + } // collectNewChildDescriptors + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + //@Override + protected void collectNewChildDescriptorsGen(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.NARY_BOOLEAN_OPERATOR__OPERANDS, + PredicateFactory.eINSTANCE.createAnd())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.NARY_BOOLEAN_OPERATOR__OPERANDS, + PredicateFactory.eINSTANCE.createFalse())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.NARY_BOOLEAN_OPERATOR__OPERANDS, + PredicateFactory.eINSTANCE.createNot())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.NARY_BOOLEAN_OPERATOR__OPERANDS, + PredicateFactory.eINSTANCE.createOr())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.NARY_BOOLEAN_OPERATOR__OPERANDS, + PredicateFactory.eINSTANCE.createPredicateReference())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.NARY_BOOLEAN_OPERATOR__OPERANDS, + PredicateFactory.eINSTANCE.createTrue())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.NARY_BOOLEAN_OPERATOR__OPERANDS, + PredicateFactory.eINSTANCE.createPredicateExpression())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.NARY_BOOLEAN_OPERATOR__OPERANDS, + PredicateFactory.eINSTANCE.createIdentifiablePredicateExpression())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.NARY_BOOLEAN_OPERATOR__OPERANDS, + PredicateFactory.eINSTANCE.createElapsedTimeTest())); + } + + +} // NaryBooleanOperatorItemProvider diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/NotItemProvider.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/NotItemProvider.java new file mode 100644 index 000000000..32b03f08d --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/NotItemProvider.java @@ -0,0 +1,123 @@ +package org.eclipse.stem.core.predicate.provider; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; + +/** + * This is the item provider adapter for a {@link org.eclipse.stem.core.predicate.Not} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class NotItemProvider + extends UnaryBooleanOperatorItemProvider + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns Not.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/customobj16/Not.png")); //$NON-NLS-1$ + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public String getText(Object object) { + return "!"; + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + //@Override + public String getTextGen(Object object) { + return getString("_UI_Not_type"); //$NON-NLS-1$ + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) { + updateChildren(notification); + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + +} diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/OrItemProvider.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/OrItemProvider.java new file mode 100644 index 000000000..4063fa090 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/OrItemProvider.java @@ -0,0 +1,124 @@ +package org.eclipse.stem.core.predicate.provider; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; + +/** + * This is the item provider adapter for a {@link org.eclipse.stem.core.predicate.Or} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class OrItemProvider + extends NaryBooleanOperatorItemProvider + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public OrItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns Or.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/customobj16/Or.png")); //$NON-NLS-1$ + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_Or_type"); //$NON-NLS-1$ + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + //@Override + public String getTextGen(Object object) { + return getString("_UI_Or_type"); //$NON-NLS-1$ + } + + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) { + updateChildren(notification); + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + +} diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/PredicateExpressionItemProvider.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/PredicateExpressionItemProvider.java new file mode 100644 index 000000000..024f8eadb --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/PredicateExpressionItemProvider.java @@ -0,0 +1,279 @@ +package org.eclipse.stem.core.predicate.provider; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ViewerNotification; +import org.eclipse.stem.core.predicate.PredicateExpression; +import org.eclipse.stem.core.predicate.PredicateFactory; +import org.eclipse.stem.core.predicate.PredicatePackage; + +/** + * This is the item provider adapter for a {@link org.eclipse.stem.core.predicate.PredicateExpression} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class PredicateExpressionItemProvider + extends BooleanExpressionItemProvider + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PredicateExpressionItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an + * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or + * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE); + } + return childrenFeatures; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EStructuralFeature getChildFeature(Object object, Object child) { + // Check the type of the specified child object and return the proper feature to use for + // adding (see {@link AddCommand}) it as a child. + + return super.getChildFeature(object, child); + } + + /** + * This returns PredicateExpression.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/customobj16/Predicate")); + } + + /** + * This returns PredicateExpression.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImageGen(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PredicateExpression")); //$NON-NLS-1$ + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public String getText(Object object) { + return "()"; + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + //@Override + public String getTextGen(Object object) { + return getString("_UI_PredicateExpression_type"); //$NON-NLS-1$ + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) { + updateChildren(notification); + + switch (notification.getFeatureID(PredicateExpression.class)) { + case PredicatePackage.PREDICATE_EXPRESSION__PREDICATE: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createAnd())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createFalse())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createNot())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createOr())); + +// newChildDescriptors.add +// (createChildParameter +// (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, +// PredicateFactory.eINSTANCE.createPredicateReference())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createTrue())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createPredicateExpression())); + +// newChildDescriptors.add +// (createChildParameter +// (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, +// PredicateFactory.eINSTANCE.createIdentifiablePredicateExpression())); + + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createElapsedTimeTest())); + + } // collectNewChildDescriptors + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + //@Override + protected void collectNewChildDescriptorsGen(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createAnd())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createFalse())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createNot())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createOr())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createPredicateReference())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createTrue())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createPredicateExpression())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createIdentifiablePredicateExpression())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE, + PredicateFactory.eINSTANCE.createElapsedTimeTest())); + } + +} // PredicateExpressionItemProvider diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/PredicateItemProvider.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/PredicateItemProvider.java new file mode 100644 index 000000000..9b0c03f9c --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/PredicateItemProvider.java @@ -0,0 +1,145 @@ +package org.eclipse.stem.core.predicate.provider; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.ResourceLocator; +import org.eclipse.emf.edit.provider.IChildCreationExtender; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ItemProviderAdapter; + +/** + * This is the item provider adapter for a {@link org.eclipse.stem.core.predicate.Predicate} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class PredicateItemProvider + extends ItemProviderAdapter + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PredicateItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns Predicate.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/customobj16/Predicate")); + } + + /** + * This returns Predicate.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Object getImageGen(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Predicate")); //$NON-NLS-1$ + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_Predicate_type"); //$NON-NLS-1$ + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) { + updateChildren(notification); + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * Return the resource locator for this item provider's resources. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return ((IChildCreationExtender)adapterFactory).getResourceLocator(); + } + + /** + * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#isWrappingNeeded(java.lang.Object) + */ + @Override + protected boolean isWrappingNeeded(Object object) { + return true; + } + + +} // diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/PredicateItemProviderAdapterFactory.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/PredicateItemProviderAdapterFactory.java new file mode 100644 index 000000000..f56307345 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/PredicateItemProviderAdapterFactory.java @@ -0,0 +1,441 @@ +package org.eclipse.stem.core.predicate.provider; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.Notifier; +import org.eclipse.emf.common.util.ResourceLocator; +import org.eclipse.emf.edit.domain.EditingDomain; +import org.eclipse.emf.edit.provider.ChangeNotifier; +import org.eclipse.emf.edit.provider.ChildCreationExtenderManager; +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.ComposedAdapterFactory; +import org.eclipse.emf.edit.provider.IChangeNotifier; +import org.eclipse.emf.edit.provider.IChildCreationExtender; +import org.eclipse.emf.edit.provider.IDisposable; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.INotifyChangedListener; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.stem.core.common.provider.CoreEditPlugin; +import org.eclipse.stem.core.predicate.PredicatePackage; +import org.eclipse.stem.core.predicate.util.PredicateAdapterFactory; + +/** + * This is the factory that is used to provide the interfaces needed to support Viewers. + * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}. + * The adapters also support Eclipse property sheets. + * Note that most of the adapters are shared among multiple instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class PredicateItemProviderAdapterFactory extends PredicateAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable, IChildCreationExtender { + /** + * This keeps track of the root adapter factory that delegates to this adapter factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ComposedAdapterFactory parentAdapterFactory; + + /** + * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IChangeNotifier changeNotifier = new ChangeNotifier(); + + /** + * This helps manage the child creation extenders. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ChildCreationExtenderManager childCreationExtenderManager = new ChildCreationExtenderManager(CoreEditPlugin.INSTANCE, PredicatePackage.eNS_URI); + + /** + * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<Object> supportedTypes = new ArrayList<Object>(); + + /** + * This constructs an instance. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PredicateItemProviderAdapterFactory() { + supportedTypes.add(IEditingDomainItemProvider.class); + supportedTypes.add(IStructuredItemContentProvider.class); + supportedTypes.add(ITreeItemContentProvider.class); + supportedTypes.add(IItemLabelProvider.class); + supportedTypes.add(IItemPropertySource.class); + } + + /** + * This keeps track of the one adapter used for all {@link org.eclipse.stem.core.predicate.And} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected AndItemProvider andItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.stem.core.predicate.And}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createAndAdapter() { + if (andItemProvider == null) { + andItemProvider = new AndItemProvider(this); + } + + return andItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link org.eclipse.stem.core.predicate.False} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected FalseItemProvider falseItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.stem.core.predicate.False}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createFalseAdapter() { + if (falseItemProvider == null) { + falseItemProvider = new FalseItemProvider(this); + } + + return falseItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link org.eclipse.stem.core.predicate.Not} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected NotItemProvider notItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.stem.core.predicate.Not}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createNotAdapter() { + if (notItemProvider == null) { + notItemProvider = new NotItemProvider(this); + } + + return notItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link org.eclipse.stem.core.predicate.Or} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected OrItemProvider orItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.stem.core.predicate.Or}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createOrAdapter() { + if (orItemProvider == null) { + orItemProvider = new OrItemProvider(this); + } + + return orItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link org.eclipse.stem.core.predicate.PredicateReference} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected PredicateReferenceItemProvider predicateReferenceItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.stem.core.predicate.PredicateReference}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createPredicateReferenceAdapter() { + if (predicateReferenceItemProvider == null) { + predicateReferenceItemProvider = new PredicateReferenceItemProvider(this); + } + + return predicateReferenceItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link org.eclipse.stem.core.predicate.True} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected TrueItemProvider trueItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.stem.core.predicate.True}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createTrueAdapter() { + if (trueItemProvider == null) { + trueItemProvider = new TrueItemProvider(this); + } + + return trueItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link org.eclipse.stem.core.predicate.PredicateExpression} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected PredicateExpressionItemProvider predicateExpressionItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.stem.core.predicate.PredicateExpression}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createPredicateExpressionAdapter() { + if (predicateExpressionItemProvider == null) { + predicateExpressionItemProvider = new PredicateExpressionItemProvider(this); + } + + return predicateExpressionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link org.eclipse.stem.core.predicate.IdentifiablePredicateExpression} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IdentifiablePredicateExpressionItemProvider identifiablePredicateExpressionItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.stem.core.predicate.IdentifiablePredicateExpression}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createIdentifiablePredicateExpressionAdapter() { + if (identifiablePredicateExpressionItemProvider == null) { + identifiablePredicateExpressionItemProvider = new IdentifiablePredicateExpressionItemProvider(this); + } + + return identifiablePredicateExpressionItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link org.eclipse.stem.core.predicate.ElapsedTimeTest} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ElapsedTimeTestItemProvider elapsedTimeTestItemProvider; + + /** + * This creates an adapter for a {@link org.eclipse.stem.core.predicate.ElapsedTimeTest}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createElapsedTimeTestAdapter() { + if (elapsedTimeTestItemProvider == null) { + elapsedTimeTestItemProvider = new ElapsedTimeTestItemProvider(this); + } + + return elapsedTimeTestItemProvider; + } + + /** + * This returns the root adapter factory that contains this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ComposeableAdapterFactory getRootAdapterFactory() { + return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory(); + } + + /** + * This sets the composed adapter factory that contains this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) { + this.parentAdapterFactory = parentAdapterFactory; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean isFactoryForType(Object type) { + return supportedTypes.contains(type) || super.isFactoryForType(type); + } + + /** + * This implementation substitutes the factory itself as the key for the adapter. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter adapt(Notifier notifier, Object type) { + return super.adapt(notifier, this); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public Object adapt(Object object, Object type) { + if (isFactoryForType(type)) { + Object adapter = super.adapt(object, type); + if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) { + return adapter; + } + } + + return null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public List<IChildCreationExtender> getChildCreationExtenders() { + return childCreationExtenderManager.getChildCreationExtenders(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Collection<?> getNewChildDescriptors(Object object, EditingDomain editingDomain) { + return childCreationExtenderManager.getNewChildDescriptors(object, editingDomain); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ResourceLocator getResourceLocator() { + return childCreationExtenderManager; + } + + /** + * This adds a listener. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void addListener(INotifyChangedListener notifyChangedListener) { + changeNotifier.addListener(notifyChangedListener); + } + + /** + * This removes a listener. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void removeListener(INotifyChangedListener notifyChangedListener) { + changeNotifier.removeListener(notifyChangedListener); + } + + /** + * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void fireNotifyChanged(Notification notification) { + changeNotifier.fireNotifyChanged(notification); + + if (parentAdapterFactory != null) { + parentAdapterFactory.fireNotifyChanged(notification); + } + } + + /** + * This disposes all of the item providers created by this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void dispose() { + if (andItemProvider != null) andItemProvider.dispose(); + if (falseItemProvider != null) falseItemProvider.dispose(); + if (notItemProvider != null) notItemProvider.dispose(); + if (orItemProvider != null) orItemProvider.dispose(); + if (predicateReferenceItemProvider != null) predicateReferenceItemProvider.dispose(); + if (trueItemProvider != null) trueItemProvider.dispose(); + if (predicateExpressionItemProvider != null) predicateExpressionItemProvider.dispose(); + if (identifiablePredicateExpressionItemProvider != null) identifiablePredicateExpressionItemProvider.dispose(); + if (elapsedTimeTestItemProvider != null) elapsedTimeTestItemProvider.dispose(); + } + +} diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/PredicateReferenceItemProvider.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/PredicateReferenceItemProvider.java new file mode 100644 index 000000000..0b85b58d6 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/PredicateReferenceItemProvider.java @@ -0,0 +1,153 @@ +package org.eclipse.stem.core.predicate.provider; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ViewerNotification; +import org.eclipse.stem.core.predicate.PredicatePackage; +import org.eclipse.stem.core.predicate.PredicateReference; + +/** + * This is the item provider adapter for a {@link org.eclipse.stem.core.predicate.PredicateReference} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class PredicateReferenceItemProvider + extends PredicateItemProvider + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PredicateReferenceItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an + * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or + * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(PredicatePackage.Literals.PREDICATE_REFERENCE__PREDICATE); + } + return childrenFeatures; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EStructuralFeature getChildFeature(Object object, Object child) { + // Check the type of the specified child object and return the proper feature to use for + // adding (see {@link AddCommand}) it as a child. + + return super.getChildFeature(object, child); + } + + /** + * This returns PredicateReference.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PredicateReference")); //$NON-NLS-1$ + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_PredicateReference_type"); //$NON-NLS-1$ + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) { + updateChildren(notification); + + switch (notification.getFeatureID(PredicateReference.class)) { + case PredicatePackage.PREDICATE_REFERENCE__PREDICATE: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + +} diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/TestItemProvider.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/TestItemProvider.java new file mode 100644 index 000000000..3e8d8a995 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/TestItemProvider.java @@ -0,0 +1,113 @@ +package org.eclipse.stem.core.predicate.provider; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; + +/** + * This is the item provider adapter for a {@link org.eclipse.stem.core.predicate.Test} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class TestItemProvider + extends PredicateItemProvider + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TestItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns Test.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Test")); //$NON-NLS-1$ + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_Test_type"); //$NON-NLS-1$ + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) { + updateChildren(notification); + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + +} diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/TimeTestItemProvider.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/TimeTestItemProvider.java new file mode 100644 index 000000000..c60fcd4e3 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/TimeTestItemProvider.java @@ -0,0 +1,101 @@ +package org.eclipse.stem.core.predicate.provider; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; + +/** + * This is the item provider adapter for a {@link org.eclipse.stem.core.predicate.TimeTest} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class TimeTestItemProvider + extends TestItemProvider + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TimeTestItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_TimeTest_type"); //$NON-NLS-1$ + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) { + updateChildren(notification); + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + +} diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/TrueItemProvider.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/TrueItemProvider.java new file mode 100644 index 000000000..825d7765d --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/TrueItemProvider.java @@ -0,0 +1,124 @@ +package org.eclipse.stem.core.predicate.provider; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; + +/** + * This is the item provider adapter for a {@link org.eclipse.stem.core.predicate.True} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class TrueItemProvider + extends TestItemProvider + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TrueItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns True.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/True")); //$NON-NLS-1$ + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public String getText(Object object) { + return "True"; + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + //@Override + public String getTextGen(Object object) { + return getString("_UI_True_type"); //$NON-NLS-1$ + } + + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) { + updateChildren(notification); + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + +} diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/UnaryBooleanOperatorItemProvider.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/UnaryBooleanOperatorItemProvider.java new file mode 100644 index 000000000..35f3088c0 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/provider/UnaryBooleanOperatorItemProvider.java @@ -0,0 +1,245 @@ +package org.eclipse.stem.core.predicate.provider; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ViewerNotification; +import org.eclipse.stem.core.predicate.PredicateFactory; +import org.eclipse.stem.core.predicate.PredicatePackage; +import org.eclipse.stem.core.predicate.UnaryBooleanOperator; + +/** + * This is the item provider adapter for a {@link org.eclipse.stem.core.predicate.UnaryBooleanOperator} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class UnaryBooleanOperatorItemProvider + extends BooleanOperatorItemProvider + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public UnaryBooleanOperatorItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an + * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or + * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(PredicatePackage.Literals.UNARY_BOOLEAN_OPERATOR__OPERAND); + } + return childrenFeatures; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EStructuralFeature getChildFeature(Object object, Object child) { + // Check the type of the specified child object and return the proper feature to use for + // adding (see {@link AddCommand}) it as a child. + + return super.getChildFeature(object, child); + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getText(Object object) { + return getString("_UI_UnaryBooleanOperator_type"); //$NON-NLS-1$ + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) { + updateChildren(notification); + + switch (notification.getFeatureID(UnaryBooleanOperator.class)) { + case PredicatePackage.UNARY_BOOLEAN_OPERATOR__OPERAND: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.UNARY_BOOLEAN_OPERATOR__OPERAND, + PredicateFactory.eINSTANCE.createAnd())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.UNARY_BOOLEAN_OPERATOR__OPERAND, + PredicateFactory.eINSTANCE.createFalse())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.UNARY_BOOLEAN_OPERATOR__OPERAND, + PredicateFactory.eINSTANCE.createNot())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.UNARY_BOOLEAN_OPERATOR__OPERAND, + PredicateFactory.eINSTANCE.createOr())); + +// newChildDescriptors.add +// (createChildParameter +// (PredicatePackage.Literals.UNARY_BOOLEAN_OPERATOR__OPERAND, +// PredicateFactory.eINSTANCE.createPredicateReference())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.UNARY_BOOLEAN_OPERATOR__OPERAND, + PredicateFactory.eINSTANCE.createTrue())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.UNARY_BOOLEAN_OPERATOR__OPERAND, + PredicateFactory.eINSTANCE.createPredicateExpression())); + +// newChildDescriptors.add +// (createChildParameter +// (PredicatePackage.Literals.UNARY_BOOLEAN_OPERATOR__OPERAND, +// PredicateFactory.eINSTANCE.createIdentifiablePredicateExpression())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.UNARY_BOOLEAN_OPERATOR__OPERAND, + PredicateFactory.eINSTANCE.createElapsedTimeTest())); + } // collectNewChildDescriptors + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + //@Override + protected void collectNewChildDescriptorsGen(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.UNARY_BOOLEAN_OPERATOR__OPERAND, + PredicateFactory.eINSTANCE.createAnd())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.UNARY_BOOLEAN_OPERATOR__OPERAND, + PredicateFactory.eINSTANCE.createFalse())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.UNARY_BOOLEAN_OPERATOR__OPERAND, + PredicateFactory.eINSTANCE.createNot())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.UNARY_BOOLEAN_OPERATOR__OPERAND, + PredicateFactory.eINSTANCE.createOr())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.UNARY_BOOLEAN_OPERATOR__OPERAND, + PredicateFactory.eINSTANCE.createPredicateReference())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.UNARY_BOOLEAN_OPERATOR__OPERAND, + PredicateFactory.eINSTANCE.createTrue())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.UNARY_BOOLEAN_OPERATOR__OPERAND, + PredicateFactory.eINSTANCE.createPredicateExpression())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.UNARY_BOOLEAN_OPERATOR__OPERAND, + PredicateFactory.eINSTANCE.createIdentifiablePredicateExpression())); + + newChildDescriptors.add + (createChildParameter + (PredicatePackage.Literals.UNARY_BOOLEAN_OPERATOR__OPERAND, + PredicateFactory.eINSTANCE.createElapsedTimeTest())); + } + +} // UnaryBooleanOperatorItemProvider diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/util/PredicateAdapterFactory.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/util/PredicateAdapterFactory.java new file mode 100644 index 000000000..72391a294 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/util/PredicateAdapterFactory.java @@ -0,0 +1,506 @@ +package org.eclipse.stem.core.predicate.util; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +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; +import org.eclipse.stem.core.common.Identifiable; +import org.eclipse.stem.core.common.SanityChecker; +import org.eclipse.stem.core.predicate.And; +import org.eclipse.stem.core.predicate.BooleanExpression; +import org.eclipse.stem.core.predicate.BooleanOperator; +import org.eclipse.stem.core.predicate.ElapsedTimeTest; +import org.eclipse.stem.core.predicate.False; +import org.eclipse.stem.core.predicate.IdentifiablePredicate; +import org.eclipse.stem.core.predicate.IdentifiablePredicateExpression; +import org.eclipse.stem.core.predicate.IdentifiableTest; +import org.eclipse.stem.core.predicate.NaryBooleanOperator; +import org.eclipse.stem.core.predicate.Not; +import org.eclipse.stem.core.predicate.Or; +import org.eclipse.stem.core.predicate.Predicate; +import org.eclipse.stem.core.predicate.PredicateExpression; +import org.eclipse.stem.core.predicate.PredicatePackage; +import org.eclipse.stem.core.predicate.PredicateReference; +import org.eclipse.stem.core.predicate.Test; +import org.eclipse.stem.core.predicate.TimeTest; +import org.eclipse.stem.core.predicate.True; +import org.eclipse.stem.core.predicate.UnaryBooleanOperator; + +/** + * <!-- 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.stem.core.predicate.PredicatePackage + * @generated + */ +public class PredicateAdapterFactory extends AdapterFactoryImpl { + /** + * The cached model package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static PredicatePackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PredicateAdapterFactory() { + if (modelPackage == null) { + modelPackage = PredicatePackage.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 PredicateSwitch<Adapter> modelSwitch = + new PredicateSwitch<Adapter>() { + @Override + public Adapter caseAnd(And object) { + return createAndAdapter(); + } + @Override + public Adapter caseBooleanExpression(BooleanExpression object) { + return createBooleanExpressionAdapter(); + } + @Override + public Adapter caseBooleanOperator(BooleanOperator object) { + return createBooleanOperatorAdapter(); + } + @Override + public Adapter caseFalse(False object) { + return createFalseAdapter(); + } + @Override + public Adapter caseNaryBooleanOperator(NaryBooleanOperator object) { + return createNaryBooleanOperatorAdapter(); + } + @Override + public Adapter caseNot(Not object) { + return createNotAdapter(); + } + @Override + public Adapter caseOr(Or object) { + return createOrAdapter(); + } + @Override + public Adapter casePredicate(Predicate object) { + return createPredicateAdapter(); + } + @Override + public Adapter casePredicateReference(PredicateReference object) { + return createPredicateReferenceAdapter(); + } + @Override + public Adapter caseTest(Test object) { + return createTestAdapter(); + } + @Override + public Adapter caseTrue(True object) { + return createTrueAdapter(); + } + @Override + public Adapter caseUnaryBooleanOperator(UnaryBooleanOperator object) { + return createUnaryBooleanOperatorAdapter(); + } + @Override + public Adapter casePredicateExpression(PredicateExpression object) { + return createPredicateExpressionAdapter(); + } + @Override + public Adapter caseIdentifiablePredicate(IdentifiablePredicate object) { + return createIdentifiablePredicateAdapter(); + } + @Override + public Adapter caseIdentifiablePredicateExpression(IdentifiablePredicateExpression object) { + return createIdentifiablePredicateExpressionAdapter(); + } + @Override + public Adapter caseIdentifiableTest(IdentifiableTest object) { + return createIdentifiableTestAdapter(); + } + @Override + public Adapter caseTimeTest(TimeTest object) { + return createTimeTestAdapter(); + } + @Override + public Adapter caseElapsedTimeTest(ElapsedTimeTest object) { + return createElapsedTimeTestAdapter(); + } + @Override + public <T> Adapter caseComparable(Comparable<T> object) { + return createComparableAdapter(); + } + @Override + public Adapter caseSanityChecker(SanityChecker object) { + return createSanityCheckerAdapter(); + } + @Override + public Adapter caseIdentifiable(Identifiable object) { + return createIdentifiableAdapter(); + } + @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.stem.core.predicate.And <em>And</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.stem.core.predicate.And + * @generated + */ + public Adapter createAndAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.predicate.BooleanExpression <em>Boolean Expression</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.stem.core.predicate.BooleanExpression + * @generated + */ + public Adapter createBooleanExpressionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.predicate.BooleanOperator <em>Boolean Operator</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.stem.core.predicate.BooleanOperator + * @generated + */ + public Adapter createBooleanOperatorAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.predicate.False <em>False</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.stem.core.predicate.False + * @generated + */ + public Adapter createFalseAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.predicate.NaryBooleanOperator <em>Nary Boolean Operator</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.stem.core.predicate.NaryBooleanOperator + * @generated + */ + public Adapter createNaryBooleanOperatorAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.predicate.Not <em>Not</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.stem.core.predicate.Not + * @generated + */ + public Adapter createNotAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.predicate.Or <em>Or</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.stem.core.predicate.Or + * @generated + */ + public Adapter createOrAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.predicate.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.stem.core.predicate.Predicate + * @generated + */ + public Adapter createPredicateAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.predicate.PredicateReference <em>Reference</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.stem.core.predicate.PredicateReference + * @generated + */ + public Adapter createPredicateReferenceAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.predicate.Test <em>Test</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.stem.core.predicate.Test + * @generated + */ + public Adapter createTestAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.predicate.True <em>True</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.stem.core.predicate.True + * @generated + */ + public Adapter createTrueAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.predicate.UnaryBooleanOperator <em>Unary Boolean Operator</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.stem.core.predicate.UnaryBooleanOperator + * @generated + */ + public Adapter createUnaryBooleanOperatorAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.predicate.PredicateExpression <em>Expression</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.stem.core.predicate.PredicateExpression + * @generated + */ + public Adapter createPredicateExpressionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.predicate.IdentifiablePredicate <em>Identifiable 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.stem.core.predicate.IdentifiablePredicate + * @generated + */ + public Adapter createIdentifiablePredicateAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.predicate.IdentifiablePredicateExpression <em>Identifiable Predicate Expression</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.stem.core.predicate.IdentifiablePredicateExpression + * @generated + */ + public Adapter createIdentifiablePredicateExpressionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.predicate.IdentifiableTest <em>Identifiable Test</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.stem.core.predicate.IdentifiableTest + * @generated + */ + public Adapter createIdentifiableTestAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.predicate.TimeTest <em>Time Test</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.stem.core.predicate.TimeTest + * @generated + */ + public Adapter createTimeTestAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.predicate.ElapsedTimeTest <em>Elapsed Time Test</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.stem.core.predicate.ElapsedTimeTest + * @generated + */ + public Adapter createElapsedTimeTestAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link java.lang.Comparable <em>Comparable</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 java.lang.Comparable + * @generated + */ + public Adapter createComparableAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.common.SanityChecker <em>Sanity Checker</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.stem.core.common.SanityChecker + * @generated + */ + public Adapter createSanityCheckerAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.common.Identifiable <em>Identifiable</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.stem.core.common.Identifiable + * @generated + */ + public Adapter createIdentifiableAdapter() { + 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; + } + +} //PredicateAdapterFactory diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/util/PredicateSwitch.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/util/PredicateSwitch.java new file mode 100644 index 000000000..518a58be5 --- /dev/null +++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/predicate/util/PredicateSwitch.java @@ -0,0 +1,606 @@ +package org.eclipse.stem.core.predicate.util; + +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +import java.util.List; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.stem.core.common.Identifiable; +import org.eclipse.stem.core.common.SanityChecker; +import org.eclipse.stem.core.predicate.And; +import org.eclipse.stem.core.predicate.BooleanExpression; +import org.eclipse.stem.core.predicate.BooleanOperator; +import org.eclipse.stem.core.predicate.ElapsedTimeTest; +import org.eclipse.stem.core.predicate.False; +import org.eclipse.stem.core.predicate.IdentifiablePredicate; +import org.eclipse.stem.core.predicate.IdentifiablePredicateExpression; +import org.eclipse.stem.core.predicate.IdentifiableTest; +import org.eclipse.stem.core.predicate.NaryBooleanOperator; +import org.eclipse.stem.core.predicate.Not; +import org.eclipse.stem.core.predicate.Or; +import org.eclipse.stem.core.predicate.Predicate; +import org.eclipse.stem.core.predicate.PredicateExpression; +import org.eclipse.stem.core.predicate.PredicatePackage; +import org.eclipse.stem.core.predicate.PredicateReference; +import org.eclipse.stem.core.predicate.Test; +import org.eclipse.stem.core.predicate.TimeTest; +import org.eclipse.stem.core.predicate.True; +import org.eclipse.stem.core.predicate.UnaryBooleanOperator; + +/** + * <!-- 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.stem.core.predicate.PredicatePackage + * @generated + */ +public class PredicateSwitch<T1> { + /** + * The cached model package + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static PredicatePackage modelPackage; + + /** + * Creates an instance of the switch. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PredicateSwitch() { + if (modelPackage == null) { + modelPackage = PredicatePackage.eINSTANCE; + } + } + + /** + * 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 + */ + public T1 doSwitch(EObject theEObject) { + return doSwitch(theEObject.eClass(), theEObject); + } + + /** + * 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 + */ + protected T1 doSwitch(EClass theEClass, EObject theEObject) { + if (theEClass.eContainer() == modelPackage) { + return doSwitch(theEClass.getClassifierID(), theEObject); + } + else { + List<EClass> eSuperTypes = theEClass.getESuperTypes(); + return + eSuperTypes.isEmpty() ? + defaultCase(theEObject) : + doSwitch(eSuperTypes.get(0), theEObject); + } + } + + /** + * 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 + */ + protected T1 doSwitch(int classifierID, EObject theEObject) { + switch (classifierID) { + case PredicatePackage.AND: { + And and = (And)theEObject; + T1 result = caseAnd(and); + if (result == null) result = caseNaryBooleanOperator(and); + if (result == null) result = caseBooleanOperator(and); + if (result == null) result = caseBooleanExpression(and); + if (result == null) result = casePredicate(and); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PredicatePackage.BOOLEAN_EXPRESSION: { + BooleanExpression booleanExpression = (BooleanExpression)theEObject; + T1 result = caseBooleanExpression(booleanExpression); + if (result == null) result = casePredicate(booleanExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PredicatePackage.BOOLEAN_OPERATOR: { + BooleanOperator booleanOperator = (BooleanOperator)theEObject; + T1 result = caseBooleanOperator(booleanOperator); + if (result == null) result = caseBooleanExpression(booleanOperator); + if (result == null) result = casePredicate(booleanOperator); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PredicatePackage.FALSE: { + False false_ = (False)theEObject; + T1 result = caseFalse(false_); + if (result == null) result = caseTest(false_); + if (result == null) result = casePredicate(false_); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PredicatePackage.NARY_BOOLEAN_OPERATOR: { + NaryBooleanOperator naryBooleanOperator = (NaryBooleanOperator)theEObject; + T1 result = caseNaryBooleanOperator(naryBooleanOperator); + if (result == null) result = caseBooleanOperator(naryBooleanOperator); + if (result == null) result = caseBooleanExpression(naryBooleanOperator); + if (result == null) result = casePredicate(naryBooleanOperator); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PredicatePackage.NOT: { + Not not = (Not)theEObject; + T1 result = caseNot(not); + if (result == null) result = caseUnaryBooleanOperator(not); + if (result == null) result = caseBooleanOperator(not); + if (result == null) result = caseBooleanExpression(not); + if (result == null) result = casePredicate(not); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PredicatePackage.OR: { + Or or = (Or)theEObject; + T1 result = caseOr(or); + if (result == null) result = caseNaryBooleanOperator(or); + if (result == null) result = caseBooleanOperator(or); + if (result == null) result = caseBooleanExpression(or); + if (result == null) result = casePredicate(or); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PredicatePackage.PREDICATE: { + Predicate predicate = (Predicate)theEObject; + T1 result = casePredicate(predicate); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PredicatePackage.PREDICATE_REFERENCE: { + PredicateReference predicateReference = (PredicateReference)theEObject; + T1 result = casePredicateReference(predicateReference); + if (result == null) result = casePredicate(predicateReference); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PredicatePackage.TEST: { + Test test = (Test)theEObject; + T1 result = caseTest(test); + if (result == null) result = casePredicate(test); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PredicatePackage.TRUE: { + True true_ = (True)theEObject; + T1 result = caseTrue(true_); + if (result == null) result = caseTest(true_); + if (result == null) result = casePredicate(true_); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PredicatePackage.UNARY_BOOLEAN_OPERATOR: { + UnaryBooleanOperator unaryBooleanOperator = (UnaryBooleanOperator)theEObject; + T1 result = caseUnaryBooleanOperator(unaryBooleanOperator); + if (result == null) result = caseBooleanOperator(unaryBooleanOperator); + if (result == null) result = caseBooleanExpression(unaryBooleanOperator); + if (result == null) result = casePredicate(unaryBooleanOperator); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PredicatePackage.PREDICATE_EXPRESSION: { + PredicateExpression predicateExpression = (PredicateExpression)theEObject; + T1 result = casePredicateExpression(predicateExpression); + if (result == null) result = caseBooleanExpression(predicateExpression); + if (result == null) result = casePredicate(predicateExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PredicatePackage.IDENTIFIABLE_PREDICATE: { + IdentifiablePredicate identifiablePredicate = (IdentifiablePredicate)theEObject; + T1 result = caseIdentifiablePredicate(identifiablePredicate); + if (result == null) result = caseIdentifiable(identifiablePredicate); + if (result == null) result = casePredicate(identifiablePredicate); + if (result == null) result = caseComparable(identifiablePredicate); + if (result == null) result = caseSanityChecker(identifiablePredicate); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PredicatePackage.IDENTIFIABLE_PREDICATE_EXPRESSION: { + IdentifiablePredicateExpression identifiablePredicateExpression = (IdentifiablePredicateExpression)theEObject; + T1 result = caseIdentifiablePredicateExpression(identifiablePredicateExpression); + if (result == null) result = caseIdentifiablePredicate(identifiablePredicateExpression); + if (result == null) result = casePredicateExpression(identifiablePredicateExpression); + if (result == null) result = caseIdentifiable(identifiablePredicateExpression); + if (result == null) result = caseBooleanExpression(identifiablePredicateExpression); + if (result == null) result = caseComparable(identifiablePredicateExpression); + if (result == null) result = caseSanityChecker(identifiablePredicateExpression); + if (result == null) result = casePredicate(identifiablePredicateExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PredicatePackage.IDENTIFIABLE_TEST: { + IdentifiableTest identifiableTest = (IdentifiableTest)theEObject; + T1 result = caseIdentifiableTest(identifiableTest); + if (result == null) result = caseIdentifiablePredicate(identifiableTest); + if (result == null) result = caseTest(identifiableTest); + if (result == null) result = caseIdentifiable(identifiableTest); + if (result == null) result = casePredicate(identifiableTest); + if (result == null) result = caseComparable(identifiableTest); + if (result == null) result = caseSanityChecker(identifiableTest); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PredicatePackage.TIME_TEST: { + TimeTest timeTest = (TimeTest)theEObject; + T1 result = caseTimeTest(timeTest); + if (result == null) result = caseTest(timeTest); + if (result == null) result = casePredicate(timeTest); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PredicatePackage.ELAPSED_TIME_TEST: { + ElapsedTimeTest elapsedTimeTest = (ElapsedTimeTest)theEObject; + T1 result = caseElapsedTimeTest(elapsedTimeTest); + if (result == null) result = caseTimeTest(elapsedTimeTest); + if (result == null) result = caseTest(elapsedTimeTest); + if (result == null) result = casePredicate(elapsedTimeTest); + if (result == null) result = defaultCase(theEObject); + return result; + } + default: return defaultCase(theEObject); + } + } + + /** + * Returns the result of interpreting the object as an instance of '<em>And</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</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T1 caseAnd(And object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Boolean Expression</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>Boolean Expression</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T1 caseBooleanExpression(BooleanExpression object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Boolean Operator</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>Boolean Operator</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T1 caseBooleanOperator(BooleanOperator object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>False</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>False</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T1 caseFalse(False object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Nary Boolean Operator</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>Nary Boolean Operator</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T1 caseNaryBooleanOperator(NaryBooleanOperator object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Not</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</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T1 caseNot(Not object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Or</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</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T1 caseOr(Or object) { + return null; + } + + /** + * 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 T1 casePredicate(Predicate object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Reference</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>Reference</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T1 casePredicateReference(PredicateReference object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Test</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>Test</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T1 caseTest(Test object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>True</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>True</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T1 caseTrue(True object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Unary Boolean Operator</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>Unary Boolean Operator</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T1 caseUnaryBooleanOperator(UnaryBooleanOperator object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Expression</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>Expression</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T1 casePredicateExpression(PredicateExpression object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Identifiable 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>Identifiable Predicate</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T1 caseIdentifiablePredicate(IdentifiablePredicate object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Identifiable Predicate Expression</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>Identifiable Predicate Expression</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T1 caseIdentifiablePredicateExpression(IdentifiablePredicateExpression object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Identifiable Test</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>Identifiable Test</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T1 caseIdentifiableTest(IdentifiableTest object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Time Test</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>Time Test</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T1 caseTimeTest(TimeTest object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Elapsed Time Test</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>Elapsed Time Test</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T1 caseElapsedTimeTest(ElapsedTimeTest object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Comparable</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>Comparable</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public <T> T1 caseComparable(Comparable<T> object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Sanity Checker</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>Sanity Checker</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T1 caseSanityChecker(SanityChecker object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Identifiable</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>Identifiable</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T1 caseIdentifiable(Identifiable 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 + */ + public T1 defaultCase(EObject object) { + return null; + } + +} //PredicateSwitch |