aboutsummaryrefslogtreecommitdiffstats
path: root/Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/validation/QueryAndMetamodelValidator.java
diff options
context:
space:
mode:
Diffstat (limited to 'Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/validation/QueryAndMetamodelValidator.java')
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/validation/QueryAndMetamodelValidator.java86
1 files changed, 0 insertions, 86 deletions
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/validation/QueryAndMetamodelValidator.java b/Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/validation/QueryAndMetamodelValidator.java
deleted file mode 100644
index 0b5b8f03..00000000
--- a/Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/validation/QueryAndMetamodelValidator.java
+++ /dev/null
@@ -1,86 +0,0 @@
1package hu.bme.mit.inf.dslreasoner.application.validation;
2
3import com.google.common.collect.Iterables;
4import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor;
5import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor;
6import java.util.Collections;
7import java.util.LinkedList;
8import java.util.List;
9import java.util.Set;
10import org.eclipse.emf.common.util.EList;
11import org.eclipse.emf.ecore.EAttribute;
12import org.eclipse.emf.ecore.EClass;
13import org.eclipse.emf.ecore.EClassifier;
14import org.eclipse.emf.ecore.EEnum;
15import org.eclipse.emf.ecore.EEnumLiteral;
16import org.eclipse.emf.ecore.ENamedElement;
17import org.eclipse.emf.ecore.EObject;
18import org.eclipse.emf.ecore.EReference;
19import org.eclipse.viatra.query.patternlanguage.emf.vql.Pattern;
20import org.eclipse.xtend2.lib.StringConcatenation;
21import org.eclipse.xtext.xbase.lib.CollectionLiterals;
22import org.eclipse.xtext.xbase.lib.Functions.Function1;
23import org.eclipse.xtext.xbase.lib.IterableExtensions;
24import org.eclipse.xtext.xbase.lib.IteratorExtensions;
25import org.eclipse.xtext.xbase.lib.ListExtensions;
26import org.eclipse.xtext.xbase.lib.Pair;
27
28@SuppressWarnings("all")
29public class QueryAndMetamodelValidator {
30 public LinkedList<String> validateQueryAndMetamodel(final EcoreMetamodelDescriptor metamodel, final Pair<ViatraQuerySetDescriptor, Set<Pattern>> viatra) {
31 final Set<Pattern> patterns = viatra.getValue();
32 List<EClass> _classes = metamodel.getClasses();
33 List<EEnum> _enums = metamodel.getEnums();
34 Iterable<EClassifier> _plus = Iterables.<EClassifier>concat(_classes, _enums);
35 List<EEnumLiteral> _literals = metamodel.getLiterals();
36 Iterable<ENamedElement> _plus_1 = Iterables.<ENamedElement>concat(_plus, _literals);
37 List<EAttribute> _attributes = metamodel.getAttributes();
38 Iterable<ENamedElement> _plus_2 = Iterables.<ENamedElement>concat(_plus_1, _attributes);
39 List<EReference> _references = metamodel.getReferences();
40 final Set<ENamedElement> elementsInMetamodel = IterableExtensions.<ENamedElement>toSet(Iterables.<ENamedElement>concat(_plus_2, _references));
41 final LinkedList<String> errors = new LinkedList<String>();
42 for (final Pattern pattern : patterns) {
43 {
44 final Iterable<ENamedElement> elements = this.getReferredNamedElements(pattern);
45 for (final ENamedElement element : elements) {
46 boolean _contains = elementsInMetamodel.contains(element);
47 boolean _not = (!_contains);
48 if (_not) {
49 StringConcatenation _builder = new StringConcatenation();
50 _builder.append("Pattern \"");
51 String _name = pattern.getName();
52 _builder.append(_name);
53 _builder.append("\" refers to an element \"");
54 _builder.append(element);
55 _builder.append("\" that is not included to the selected metamodel!");
56 errors.add(_builder.toString());
57 }
58 }
59 }
60 }
61 return errors;
62 }
63
64 public Iterable<ENamedElement> getReferredNamedElements(final Pattern pattern) {
65 final List<EObject> elements = IteratorExtensions.<EObject>toList(pattern.eAllContents());
66 final Function1<EObject, Iterable<ENamedElement>> _function = (EObject element) -> {
67 final EList<EReference> references = element.eClass().getEAllReferences();
68 final Function1<EReference, Iterable<ENamedElement>> _function_1 = (EReference r) -> {
69 boolean _isMany = r.isMany();
70 if (_isMany) {
71 Object _eGet = element.eGet(r);
72 return Iterables.<ENamedElement>filter(((List<?>) _eGet), ENamedElement.class);
73 } else {
74 final Object value = element.eGet(r);
75 if ((value instanceof ENamedElement)) {
76 return Collections.<ENamedElement>unmodifiableList(CollectionLiterals.<ENamedElement>newArrayList(((ENamedElement)value)));
77 } else {
78 return Collections.<ENamedElement>unmodifiableList(CollectionLiterals.<ENamedElement>newArrayList());
79 }
80 }
81 };
82 return Iterables.<ENamedElement>filter((Iterables.<ENamedElement>concat(ListExtensions.<EReference, Iterable<ENamedElement>>map(references, _function_1))), ENamedElement.class);
83 };
84 return Iterables.<ENamedElement>concat(ListExtensions.<EObject, Iterable<ENamedElement>>map(elements, _function));
85 }
86}