aboutsummaryrefslogtreecommitdiffstats
path: root/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src-gen/hu/bme/mit/inf/dslreasoner/domains/cps/queries/internal/FreeMemoryPercentage.java
diff options
context:
space:
mode:
Diffstat (limited to 'Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src-gen/hu/bme/mit/inf/dslreasoner/domains/cps/queries/internal/FreeMemoryPercentage.java')
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src-gen/hu/bme/mit/inf/dslreasoner/domains/cps/queries/internal/FreeMemoryPercentage.java172
1 files changed, 172 insertions, 0 deletions
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src-gen/hu/bme/mit/inf/dslreasoner/domains/cps/queries/internal/FreeMemoryPercentage.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src-gen/hu/bme/mit/inf/dslreasoner/domains/cps/queries/internal/FreeMemoryPercentage.java
new file mode 100644
index 00000000..b5923ba9
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src-gen/hu/bme/mit/inf/dslreasoner/domains/cps/queries/internal/FreeMemoryPercentage.java
@@ -0,0 +1,172 @@
1/**
2 * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/queries/CpsQueries.vql
3 */
4package hu.bme.mit.inf.dslreasoner.domains.cps.queries.internal;
5
6import hu.bme.mit.inf.dslreasoner.domains.cps.queries.internal.AvailableMemory;
7import hu.bme.mit.inf.dslreasoner.domains.cps.queries.internal.TotalMemory;
8import java.util.Arrays;
9import java.util.LinkedHashSet;
10import java.util.List;
11import java.util.Set;
12import org.eclipse.emf.ecore.EClass;
13import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
14import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
15import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
16import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
17import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey;
18import org.eclipse.viatra.query.runtime.matchers.psystem.IExpressionEvaluator;
19import org.eclipse.viatra.query.runtime.matchers.psystem.IValueProvider;
20import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
21import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
22import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
23import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
24import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExpressionEvaluation;
25import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint;
26import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall;
27import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
28import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
29import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
30import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
31import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
32
33/**
34 * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
35 *
36 * <p>Original source:
37 * <code><pre>
38 * private pattern freeMemoryPercentage(Host : HostInstance, Free : java Double) {
39 * find totalMemory(Host, Total);
40 * find availableMemory(Host, Available);
41 * Free == eval((Available as double) / Total);
42 * }
43 * </pre></code>
44 *
45 * @see GenericPatternMatcher
46 * @see GenericPatternMatch
47 *
48 */
49@SuppressWarnings("all")
50public final class FreeMemoryPercentage extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
51 private FreeMemoryPercentage() {
52 super(GeneratedPQuery.INSTANCE);
53 }
54
55 /**
56 * @return the singleton instance of the query specification
57 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
58 *
59 */
60 public static FreeMemoryPercentage instance() {
61 try{
62 return LazyHolder.INSTANCE;
63 } catch (ExceptionInInitializerError err) {
64 throw processInitializerError(err);
65 }
66 }
67
68 /**
69 * Inner class allowing the singleton instance of {@link FreeMemoryPercentage} to be created
70 * <b>not</b> at the class load time of the outer class,
71 * but rather at the first call to {@link FreeMemoryPercentage#instance()}.
72 *
73 * <p> This workaround is required e.g. to support recursion.
74 *
75 */
76 private static class LazyHolder {
77 private static final FreeMemoryPercentage INSTANCE = new FreeMemoryPercentage();
78
79 /**
80 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
81 * This initialization order is required to support indirect recursion.
82 *
83 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
84 *
85 */
86 private static final Object STATIC_INITIALIZER = ensureInitialized();
87
88 public static Object ensureInitialized() {
89 INSTANCE.ensureInitializedInternal();
90 return null;
91 }
92 }
93
94 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
95 private static final FreeMemoryPercentage.GeneratedPQuery INSTANCE = new GeneratedPQuery();
96
97 private final PParameter parameter_Host = new PParameter("Host", "hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "HostInstance")), PParameterDirection.INOUT);
98
99 private final PParameter parameter_Free = new PParameter("Free", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT);
100
101 private final List<PParameter> parameters = Arrays.asList(parameter_Host, parameter_Free);
102
103 private GeneratedPQuery() {
104 super(PVisibility.PRIVATE);
105 }
106
107 @Override
108 public String getFullyQualifiedName() {
109 return "hu.bme.mit.inf.dslreasoner.domains.cps.queries.freeMemoryPercentage";
110 }
111
112 @Override
113 public List<String> getParameterNames() {
114 return Arrays.asList("Host","Free");
115 }
116
117 @Override
118 public List<PParameter> getParameters() {
119 return parameters;
120 }
121
122 @Override
123 public Set<PBody> doGetContainedBodies() {
124 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
125 Set<PBody> bodies = new LinkedHashSet<>();
126 {
127 PBody body = new PBody(this);
128 PVariable var_Host = body.getOrCreateVariableByName("Host");
129 PVariable var_Free = body.getOrCreateVariableByName("Free");
130 PVariable var_Total = body.getOrCreateVariableByName("Total");
131 PVariable var_Available = body.getOrCreateVariableByName("Available");
132 new TypeConstraint(body, Tuples.flatTupleOf(var_Host), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.example.org/cps", "HostInstance")));
133 new TypeFilterConstraint(body, Tuples.flatTupleOf(var_Free), new JavaTransitiveInstancesKey(java.lang.Double.class));
134 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
135 new ExportedParameter(body, var_Host, parameter_Host),
136 new ExportedParameter(body, var_Free, parameter_Free)
137 ));
138 // find totalMemory(Host, Total)
139 new PositivePatternCall(body, Tuples.flatTupleOf(var_Host, var_Total), TotalMemory.instance().getInternalQueryRepresentation());
140 // find availableMemory(Host, Available)
141 new PositivePatternCall(body, Tuples.flatTupleOf(var_Host, var_Available), AvailableMemory.instance().getInternalQueryRepresentation());
142 // Free == eval((Available as double) / Total)
143 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
144 new ExpressionEvaluation(body, new IExpressionEvaluator() {
145
146 @Override
147 public String getShortDescription() {
148 return "Expression evaluation from pattern freeMemoryPercentage";
149 }
150
151 @Override
152 public Iterable<String> getInputParameterNames() {
153 return Arrays.asList("Available", "Total");}
154
155 @Override
156 public Object evaluateExpression(IValueProvider provider) throws Exception {
157 Integer Available = (Integer) provider.getValue("Available");
158 Integer Total = (Integer) provider.getValue("Total");
159 return evaluateExpression_1_1(Available, Total);
160 }
161 }, var__virtual_0_ );
162 new Equality(body, var_Free, var__virtual_0_);
163 bodies.add(body);
164 }
165 return bodies;
166 }
167 }
168
169 private static double evaluateExpression_1_1(final Integer Available, final Integer Total) {
170 return (((double) (Available).intValue()) / (Total).intValue());
171 }
172}