Skip to content

Commit

Permalink
move old metamodel to test to be able to check computed metamode
Browse files Browse the repository at this point in the history
  • Loading branch information
pvojtechovsky committed Jun 10, 2018
1 parent 89123b2 commit 7e7f89f
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 139 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,36 +14,26 @@
* The fact that you are presently reading this means that you have had
* knowledge of the CeCILL-C license and that you accept its terms.
*/
package spoon;
package spoon.test.api;

import spoon.reflect.code.CtForEach;
import spoon.reflect.declaration.CtClass;
import spoon.reflect.declaration.CtElement;
import spoon.reflect.declaration.CtInterface;
import spoon.reflect.declaration.CtModuleDirective;
import spoon.reflect.declaration.CtPackageExport;
import spoon.reflect.declaration.CtProvidedService;
import spoon.reflect.declaration.CtType;
import spoon.reflect.factory.Factory;
import spoon.reflect.factory.FactoryImpl;
import spoon.reflect.meta.ContainerKind;
import spoon.reflect.meta.RoleHandler;
import spoon.reflect.meta.impl.RoleHandlerHelper;
import spoon.reflect.path.CtRole;
import spoon.reflect.visitor.CtScanner;
import spoon.support.DefaultCoreFactory;
import spoon.support.StandardEnvironment;
import spoon.support.reflect.code.CtForEachImpl;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Consumer;

/**
Expand All @@ -52,132 +42,6 @@
public class Metamodel {
private Metamodel() { }

/**
* Returns all interfaces of the Spoon metamodel.
* This method is stateless for sake of maintenance.
* If you need to call it several times, you should store the result.
*/
public static Set<CtType<?>> getAllMetamodelInterfaces() {
Set<CtType<?>> result = new HashSet<>();
Factory factory = new FactoryImpl(new DefaultCoreFactory(), new StandardEnvironment());
result.add(factory.Type().get(spoon.reflect.code.BinaryOperatorKind.class));
result.add(factory.Type().get(spoon.reflect.code.CtAbstractInvocation.class));
result.add(factory.Type().get(spoon.reflect.code.CtAnnotationFieldAccess.class));
result.add(factory.Type().get(spoon.reflect.code.CtArrayAccess.class));
result.add(factory.Type().get(spoon.reflect.code.CtArrayRead.class));
result.add(factory.Type().get(spoon.reflect.code.CtArrayWrite.class));
result.add(factory.Type().get(spoon.reflect.code.CtAssert.class));
result.add(factory.Type().get(spoon.reflect.code.CtAssignment.class));
result.add(factory.Type().get(spoon.reflect.code.CtBinaryOperator.class));
result.add(factory.Type().get(spoon.reflect.code.CtBlock.class));
result.add(factory.Type().get(spoon.reflect.code.CtBodyHolder.class));
result.add(factory.Type().get(spoon.reflect.code.CtBreak.class));
result.add(factory.Type().get(spoon.reflect.code.CtCFlowBreak.class));
result.add(factory.Type().get(spoon.reflect.code.CtCase.class));
result.add(factory.Type().get(spoon.reflect.code.CtCatch.class));
result.add(factory.Type().get(spoon.reflect.code.CtCatchVariable.class));
result.add(factory.Type().get(spoon.reflect.code.CtCodeElement.class));
result.add(factory.Type().get(spoon.reflect.code.CtCodeSnippetExpression.class));
result.add(factory.Type().get(spoon.reflect.code.CtCodeSnippetStatement.class));
result.add(factory.Type().get(spoon.reflect.code.CtComment.class));
result.add(factory.Type().get(spoon.reflect.code.CtConditional.class));
result.add(factory.Type().get(spoon.reflect.code.CtConstructorCall.class));
result.add(factory.Type().get(spoon.reflect.code.CtContinue.class));
result.add(factory.Type().get(spoon.reflect.code.CtDo.class));
result.add(factory.Type().get(spoon.reflect.code.CtExecutableReferenceExpression.class));
result.add(factory.Type().get(spoon.reflect.code.CtExpression.class));
result.add(factory.Type().get(spoon.reflect.code.CtFieldAccess.class));
result.add(factory.Type().get(spoon.reflect.code.CtFieldRead.class));
result.add(factory.Type().get(spoon.reflect.code.CtFieldWrite.class));
result.add(factory.Type().get(spoon.reflect.code.CtFor.class));
result.add(factory.Type().get(spoon.reflect.code.CtForEach.class));
result.add(factory.Type().get(spoon.reflect.code.CtIf.class));
result.add(factory.Type().get(spoon.reflect.code.CtInvocation.class));
result.add(factory.Type().get(spoon.reflect.code.CtJavaDoc.class));
result.add(factory.Type().get(spoon.reflect.code.CtJavaDocTag.class));
result.add(factory.Type().get(spoon.reflect.code.CtLabelledFlowBreak.class));
result.add(factory.Type().get(spoon.reflect.code.CtLambda.class));
result.add(factory.Type().get(spoon.reflect.code.CtLiteral.class));
result.add(factory.Type().get(spoon.reflect.code.CtLocalVariable.class));
result.add(factory.Type().get(spoon.reflect.code.CtLoop.class));
result.add(factory.Type().get(spoon.reflect.code.CtNewArray.class));
result.add(factory.Type().get(spoon.reflect.code.CtNewClass.class));
result.add(factory.Type().get(spoon.reflect.code.CtOperatorAssignment.class));
result.add(factory.Type().get(spoon.reflect.code.CtRHSReceiver.class));
result.add(factory.Type().get(spoon.reflect.code.CtReturn.class));
result.add(factory.Type().get(spoon.reflect.code.CtStatement.class));
result.add(factory.Type().get(spoon.reflect.code.CtStatementList.class));
result.add(factory.Type().get(spoon.reflect.code.CtSuperAccess.class));
result.add(factory.Type().get(spoon.reflect.code.CtSwitch.class));
result.add(factory.Type().get(spoon.reflect.code.CtSynchronized.class));
result.add(factory.Type().get(spoon.reflect.code.CtTargetedExpression.class));
result.add(factory.Type().get(spoon.reflect.code.CtThisAccess.class));
result.add(factory.Type().get(spoon.reflect.code.CtThrow.class));
result.add(factory.Type().get(spoon.reflect.code.CtTry.class));
result.add(factory.Type().get(spoon.reflect.code.CtTryWithResource.class));
result.add(factory.Type().get(spoon.reflect.code.CtTypeAccess.class));
result.add(factory.Type().get(spoon.reflect.code.CtUnaryOperator.class));
result.add(factory.Type().get(spoon.reflect.code.CtVariableAccess.class));
result.add(factory.Type().get(spoon.reflect.code.CtVariableRead.class));
result.add(factory.Type().get(spoon.reflect.code.CtVariableWrite.class));
result.add(factory.Type().get(spoon.reflect.code.CtWhile.class));
result.add(factory.Type().get(spoon.reflect.code.UnaryOperatorKind.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtAnnotatedElementType.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtAnnotation.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtAnnotationMethod.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtAnnotationType.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtAnonymousExecutable.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtClass.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtCodeSnippet.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtConstructor.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtElement.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtEnum.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtEnumValue.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtExecutable.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtField.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtFormalTypeDeclarer.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtInterface.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtMethod.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtModifiable.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtMultiTypedElement.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtNamedElement.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtPackage.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtParameter.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtShadowable.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtType.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtTypeInformation.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtTypeMember.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtTypeParameter.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtTypedElement.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtVariable.class));
result.add(factory.Type().get(spoon.reflect.declaration.ModifierKind.class));
result.add(factory.Type().get(spoon.reflect.declaration.ParentNotInitializedException.class));
result.add(factory.Type().get(spoon.reflect.reference.CtActualTypeContainer.class));
result.add(factory.Type().get(spoon.reflect.reference.CtArrayTypeReference.class));
result.add(factory.Type().get(spoon.reflect.reference.CtCatchVariableReference.class));
result.add(factory.Type().get(spoon.reflect.reference.CtExecutableReference.class));
result.add(factory.Type().get(spoon.reflect.reference.CtFieldReference.class));
result.add(factory.Type().get(spoon.reflect.reference.CtIntersectionTypeReference.class));
result.add(factory.Type().get(spoon.reflect.reference.CtLocalVariableReference.class));
result.add(factory.Type().get(spoon.reflect.reference.CtPackageReference.class));
result.add(factory.Type().get(spoon.reflect.reference.CtParameterReference.class));
result.add(factory.Type().get(spoon.reflect.reference.CtReference.class));
result.add(factory.Type().get(spoon.reflect.reference.CtTypeParameterReference.class));
result.add(factory.Type().get(spoon.reflect.reference.CtTypeReference.class));
result.add(factory.Type().get(spoon.reflect.reference.CtUnboundVariableReference.class));
result.add(factory.Type().get(spoon.reflect.reference.CtVariableReference.class));
result.add(factory.Type().get(spoon.reflect.reference.CtWildcardReference.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtImport.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtImportKind.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtModule.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtModuleRequirement.class));
result.add(factory.Type().get(CtPackageExport.class));
result.add(factory.Type().get(CtProvidedService.class));
result.add(factory.Type().get(spoon.reflect.reference.CtModuleReference.class));
result.add(factory.Type().get(spoon.reflect.declaration.CtUsedService.class));
result.add(factory.Type().get(CtModuleDirective.class));
return result;
}

public static Collection<Type> getAllMetamodelTypes() {
return typesByName.values();
Expand Down
4 changes: 2 additions & 2 deletions src/test/java/spoon/test/api/MetamodelTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -91,12 +91,12 @@ public void testRuntimeMetamodel() {
}
});
List<String> problems = new ArrayList<>();
for (spoon.Metamodel.Type type : spoon.Metamodel.getAllMetamodelTypes()) {
for (spoon.test.api.Metamodel.Type type : spoon.test.api.Metamodel.getAllMetamodelTypes()) {
MetamodelConcept expectedType = expectedTypesByName.remove(type.getName());
assertSame(expectedType.getImplementationClass().getActualClass(), type.getModelClass());
assertSame(expectedType.getMetamodelInterface().getActualClass(), type.getModelInterface());
Map<CtRole, MetamodelProperty> expectedRoleToField = new HashMap<>(expectedType.getRoleToProperty());
for (spoon.Metamodel.Field field : type.getFields()) {
for (spoon.test.api.Metamodel.Field field : type.getFields()) {
MetamodelProperty expectedField = expectedRoleToField.remove(field.getRole());
if (expectedField.isDerived() != field.isDerived()) {
problems.add("Field " + expectedField + ".derived hardcoded value = " + field.isDerived() + " but computed value is " + expectedField.isDerived());
Expand Down

0 comments on commit 7e7f89f

Please # to comment.