1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
/*******************************************************************************
* Copyright (c) 2014, 2016 Willink Transformations 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:
* E.D.Willink - initial API and implementation
*******************************************************************************/
package org.eclipse.qvtd.xtext.qvtimperative.as2cs;
import java.util.Map;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.ocl.pivot.Namespace;
import org.eclipse.ocl.pivot.PivotPackage;
import org.eclipse.ocl.pivot.internal.utilities.EnvironmentFactoryInternal;
import org.eclipse.ocl.pivot.resource.ASResource;
import org.eclipse.ocl.xtext.base.as2cs.AS2CS;
import org.eclipse.ocl.xtext.base.as2cs.AS2CSConversion;
import org.eclipse.ocl.xtext.base.as2cs.BaseDeclarationVisitor;
import org.eclipse.ocl.xtext.base.as2cs.BaseReferenceVisitor;
import org.eclipse.ocl.xtext.base.utilities.BaseCSResource;
import org.eclipse.ocl.xtext.essentialocl.as2cs.EssentialOCLAS2CS;
import org.eclipse.ocl.xtext.essentialocl.as2cs.EssentialOCLReferenceVisitor;
public class QVTimperativeAS2CS extends EssentialOCLAS2CS
{
private static final class Factory extends AbstractFactory
{
private static AS2CS.@NonNull Factory INSTANCE = new Factory();
@Override
public @NonNull QVTimperativeDeclarationVisitor createDeclarationVisitor(@NonNull AS2CSConversion converter) {
return new QVTimperativeDeclarationVisitor(converter);
}
@Override
public @NonNull BaseReferenceVisitor createReferenceVisitor(@NonNull AS2CSConversion converter, @Nullable Namespace scope) {
return new EssentialOCLReferenceVisitor(converter, scope);
}
@SuppressWarnings("null")
@Override
public @NonNull EClass @NonNull [] getEClasses() {
return new @NonNull EClass[] {
PivotPackage.Literals.CLASS,
PivotPackage.Literals.CONSTRAINT,
PivotPackage.Literals.OPERATION,
PivotPackage.Literals.PACKAGE,
PivotPackage.Literals.PARAMETER,
PivotPackage.Literals.PROPERTY,
PivotPackage.Literals.TYPE
};
}
}
public QVTimperativeAS2CS(@NonNull Map<? extends BaseCSResource, ? extends ASResource> cs2asResourceMap, @NonNull EnvironmentFactoryInternal environmentFactory) {
super(cs2asResourceMap, environmentFactory);
addFactory(Factory.INSTANCE);
for (BaseCSResource csResource : cs2asResourceMap.keySet()) {
assert csResource != null;
environmentFactory.adapt(csResource);
}
}
@Override
public @NonNull BaseDeclarationVisitor createDefaultDeclarationVisitor(@NonNull AS2CSConversion converter) {
return new QVTimperativeDeclarationVisitor(converter);
}
@Override
public @NonNull BaseReferenceVisitor createDefaultReferenceVisitor(@NonNull AS2CSConversion converter) {
return new EssentialOCLReferenceVisitor(converter, null);
}
}
|