Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Willink2016-11-07 11:03:40 +0000
committerEd Willink2016-12-20 21:48:11 +0000
commit2c84293f83887b4155a83a7480aa2f83cec59b76 (patch)
tree8ce542a1b5b1f23b76420201dc820fcc2dce26ab
parentd3bd63d7d8f8ee04ad908a863839cd5764e458d4 (diff)
downloadorg.eclipse.qvtd-2c84293f83887b4155a83a7480aa2f83cec59b76.tar.gz
org.eclipse.qvtd-2c84293f83887b4155a83a7480aa2f83cec59b76.tar.xz
org.eclipse.qvtd-2c84293f83887b4155a83a7480aa2f83cec59b76.zip
[500962] Promote Incremental init to Trnasformer.Incremental
-rw-r--r--plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/java/QVTiCG2JavaVisitor.java16
-rw-r--r--plugins/org.eclipse.qvtd.runtime/src/org/eclipse/qvtd/runtime/evaluation/AbstractTransformer.java13
-rw-r--r--plugins/org.eclipse.qvtd.runtime/src/org/eclipse/qvtd/runtime/internal/evaluation/AbstractTransformerInternal.java24
3 files changed, 38 insertions, 15 deletions
diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/java/QVTiCG2JavaVisitor.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/java/QVTiCG2JavaVisitor.java
index 4c2c2093c..a162d40c2 100644
--- a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/java/QVTiCG2JavaVisitor.java
+++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/java/QVTiCG2JavaVisitor.java
@@ -126,14 +126,10 @@ import org.eclipse.qvtd.runtime.evaluation.AbstractInvocation;
import org.eclipse.qvtd.runtime.evaluation.AbstractTransformer;
import org.eclipse.qvtd.runtime.evaluation.Connection;
import org.eclipse.qvtd.runtime.evaluation.InvocationConstructor;
-import org.eclipse.qvtd.runtime.evaluation.InvocationManager;
-import org.eclipse.qvtd.runtime.evaluation.ObjectManager;
import org.eclipse.qvtd.runtime.evaluation.TransformationExecutor;
import org.eclipse.qvtd.runtime.evaluation.Transformer;
import org.eclipse.qvtd.runtime.internal.evaluation.AbstractComputationConstructor;
import org.eclipse.qvtd.runtime.internal.evaluation.AbstractInvocationConstructor;
-import org.eclipse.qvtd.runtime.internal.evaluation.IncrementalInvocationManager;
-import org.eclipse.qvtd.runtime.internal.evaluation.IncrementalObjectManager;
import com.google.common.collect.Iterables;
@@ -437,7 +433,7 @@ public class QVTiCG2JavaVisitor extends CG2JavaVisitor<@NonNull QVTiCodeGenerato
js.append("}\n");
}
- protected void doCreateIncrementalManagers() {
+ /* protected void doCreateIncrementalManagers() {
js.append("@Override\n");
js.append("protected ");
js.appendIsRequired(true);
@@ -467,7 +463,7 @@ public class QVTiCG2JavaVisitor extends CG2JavaVisitor<@NonNull QVTiCodeGenerato
js.append(")invocationManager);\n");
js.popIndentation();
js.append("}\n");
- }
+ } */
protected boolean doEcoreCreateClass(@NonNull CGValuedElement cgElement, @NonNull EClass eClass) {
String createMethodName = "create" + eClass.getName();
@@ -1477,8 +1473,8 @@ public class QVTiCG2JavaVisitor extends CG2JavaVisitor<@NonNull QVTiCodeGenerato
js.append("}\n");
}
- protected @NonNull Class<? extends AbstractTransformer> getAbstractTransformationExecutorClass() {
- return AbstractTransformer.class;
+ protected @NonNull Class<? extends Transformer> getAbstractTransformationExecutorClass() {
+ return isIncremental ? AbstractTransformer.Incremental.class : AbstractTransformer.class;
}
@Override
@@ -2416,10 +2412,10 @@ public class QVTiCG2JavaVisitor extends CG2JavaVisitor<@NonNull QVTiCodeGenerato
js.append("\n");
doConstructor(cgTransformation, oppositeIndex2propertyIdName, allInstancesNames);
js.append("\n");
- if (isIncremental) {
+ /* if (isIncremental) {
doCreateIncrementalManagers();
js.append("\n");
- }
+ } */
doRun(cgTransformation);
for (@NonNull CGOperation cgOperation : ClassUtil.nullFree(cgOperations)) {
if (!(cgOperation instanceof CGCachedOperation)) {
diff --git a/plugins/org.eclipse.qvtd.runtime/src/org/eclipse/qvtd/runtime/evaluation/AbstractTransformer.java b/plugins/org.eclipse.qvtd.runtime/src/org/eclipse/qvtd/runtime/evaluation/AbstractTransformer.java
index 7f31d5cec..b26f158e0 100644
--- a/plugins/org.eclipse.qvtd.runtime/src/org/eclipse/qvtd/runtime/evaluation/AbstractTransformer.java
+++ b/plugins/org.eclipse.qvtd.runtime/src/org/eclipse/qvtd/runtime/evaluation/AbstractTransformer.java
@@ -24,6 +24,14 @@ import org.eclipse.qvtd.runtime.internal.evaluation.AbstractTransformerInternal;
*/
public abstract class AbstractTransformer extends AbstractTransformerInternal
{
+ public static abstract class Incremental extends AbstractTransformerInternal.Incremental
+ {
+ protected Incremental(@NonNull TransformationExecutor executor, @NonNull String @NonNull [] modelNames,
+ @NonNull PropertyId @Nullable [] propertyIndex2propertyId, @NonNull ClassId @NonNull [] classIndex2classId, int @Nullable [] @NonNull [] classIndex2allClassIndexes) {
+ super(executor, modelNames, propertyIndex2propertyId, classIndex2classId, classIndex2allClassIndexes) ;
+ }
+ }
+
public static final @NonNull String PLUGIN_ID = "org.eclipse.qvtd.runtime";
public static final @NonNull TracingOption APPENDS = new TracingOption(PLUGIN_ID, "tx/appends");
public static final @NonNull TracingOption CONSUMES = new TracingOption(PLUGIN_ID, "tx/consumes");
@@ -34,9 +42,4 @@ public abstract class AbstractTransformer extends AbstractTransformerInternal
@NonNull PropertyId @Nullable [] propertyIndex2propertyId, @NonNull ClassId @NonNull [] classIndex2classId, int @Nullable [] @NonNull [] classIndex2allClassIndexes) {
super(executor, modelNames, propertyIndex2propertyId, classIndex2classId, classIndex2allClassIndexes) ;
}
-
- @Override
- public <R> R accept(@NonNull ExecutionVisitor<R> visitor) {
- return visitor.visitTransformer(this);
- }
}
diff --git a/plugins/org.eclipse.qvtd.runtime/src/org/eclipse/qvtd/runtime/internal/evaluation/AbstractTransformerInternal.java b/plugins/org.eclipse.qvtd.runtime/src/org/eclipse/qvtd/runtime/internal/evaluation/AbstractTransformerInternal.java
index e4ff9d1f6..3b969dbe3 100644
--- a/plugins/org.eclipse.qvtd.runtime/src/org/eclipse/qvtd/runtime/internal/evaluation/AbstractTransformerInternal.java
+++ b/plugins/org.eclipse.qvtd.runtime/src/org/eclipse/qvtd/runtime/internal/evaluation/AbstractTransformerInternal.java
@@ -48,6 +48,7 @@ import org.eclipse.qvtd.runtime.evaluation.AbstractTransformer;
import org.eclipse.qvtd.runtime.evaluation.AbstractTypedModelInstance;
import org.eclipse.qvtd.runtime.evaluation.Connection;
import org.eclipse.qvtd.runtime.evaluation.ExecutionVisitable;
+import org.eclipse.qvtd.runtime.evaluation.ExecutionVisitor;
import org.eclipse.qvtd.runtime.evaluation.InvocationFailedException;
import org.eclipse.qvtd.runtime.evaluation.InvocationManager;
import org.eclipse.qvtd.runtime.evaluation.ObjectManager;
@@ -60,6 +61,24 @@ import org.eclipse.qvtd.runtime.evaluation.Transformer;
*/
public abstract class AbstractTransformerInternal extends AbstractModelManager implements Transformer, ExecutionVisitable
{
+ public static abstract class Incremental extends AbstractTransformerInternal
+ {
+ protected Incremental(@NonNull TransformationExecutor executor, @NonNull String @NonNull [] modelNames,
+ @NonNull PropertyId @Nullable [] propertyIndex2propertyId, @NonNull ClassId @NonNull [] classIndex2classId, int @Nullable [] @NonNull [] classIndex2allClassIndexes) {
+ super(executor, modelNames, propertyIndex2propertyId, classIndex2classId, classIndex2allClassIndexes) ;
+ }
+
+ @Override
+ protected @NonNull InvocationManager createInvocationManager() {
+ return new IncrementalInvocationManager(executor);
+ }
+
+ @Override
+ protected @NonNull ObjectManager createObjectManager() {
+ return new IncrementalObjectManager((IncrementalInvocationManager)invocationManager);
+ }
+ }
+
private static final @NonNull List<@NonNull Integer> EMPTY_INDEX_LIST = Collections.emptyList();
private static final @NonNull List<@NonNull Object> EMPTY_EOBJECT_LIST = Collections.emptyList();
@@ -582,6 +601,11 @@ public abstract class AbstractTransformerInternal extends AbstractModelManager i
}
}
+ @Override
+ public <R> R accept(@NonNull ExecutionVisitor<R> visitor) {
+ return visitor.visitTransformer(this);
+ }
+
/**
* Add eRootObjects to the modelIndex model.
*/

Back to the top