blob: 074a7c9ad047ac5e1977ef3450279c38a19e4e5a [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010, 2019 Mia-Software and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v20.html
*
* Contributors:
* Nicolas Guyomar (Mia-Software)
*******************************************************************************/
package org.eclipse.modisco.jee.queries.tests;
import org.eclipse.emf.common.util.TreeIterator;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.modisco.infra.query.ModelQuery;
import org.eclipse.modisco.infra.query.ModelQuerySet;
import org.eclipse.modisco.infra.query.core.AbstractModelQuery;
import org.eclipse.modisco.infra.query.core.ModelQuerySetCatalog;
import org.eclipse.modisco.infra.query.core.exception.ModelQueryException;
import org.eclipse.modisco.java.ClassDeclaration;
import org.junit.Assert;
import org.junit.Test;
public class JeeServletAnnotations {
private final String name = "jeeServletAnnotations"; //$NON-NLS-1$
private final ResourceSet resourceSet = new ResourceSetImpl();
@SuppressWarnings("boxing")
@Test
public void test() throws ModelQueryException {
ModelQuerySetCatalog catalog = ModelQuerySetCatalog.getSingleton();
ModelQuerySet querySet = catalog.getModelQuerySet(this.name);
Assert.assertNotNull(querySet);
// Retrieving some the queries for further testing
ModelQuery queryIsMultipartConfig = querySet.getQuery("IsMultipartConfig"); //$NON-NLS-1$
Assert.assertNotNull(queryIsMultipartConfig);
// Retrieving some the queries for further testing
ModelQuery queryIsWebFilter = querySet.getQuery("IsWebFilter"); //$NON-NLS-1$
Assert.assertNotNull(queryIsWebFilter);
// Retrieving some the queries for further testing
ModelQuery queryIsWebInitParam = querySet.getQuery("IsWebInitParam"); //$NON-NLS-1$
Assert.assertNotNull(queryIsWebInitParam);
// Retrieving some the queries for further testing
ModelQuery queryIsWebListener = querySet.getQuery("IsWebListener"); //$NON-NLS-1$
Assert.assertNotNull(queryIsWebListener);
// Retrieving some the queries for further testing
ModelQuery queryIsWebServlet = querySet.getQuery("IsWebServlet"); //$NON-NLS-1$
Assert.assertNotNull(queryIsWebServlet);
URI modelUri = URI
.createURI("platform:/plugin/org.eclipse.modisco.jee.queries.tests/resources/AnnotationServlet.javaxmi"); //$NON-NLS-1$
Resource myModel = this.resourceSet.getResource(modelUri, true);
TreeIterator<EObject> treeIterator = myModel.getAllContents();
while (treeIterator.hasNext()) {
EObject eObject = treeIterator.next();
AbstractModelQuery modelQueryImpl;
Boolean result;
if (eObject instanceof ClassDeclaration) {
ClassDeclaration classDecl = (ClassDeclaration) eObject;
if (classDecl.getName() != null) {
if (classDecl.getName()
.equalsIgnoreCase("InheritFilter")) { //$NON-NLS-1$
modelQueryImpl = catalog
.getModelQueryImpl(queryIsWebFilter);
result = (Boolean) modelQueryImpl
.basicEvaluate(classDecl);
Assert.assertTrue(result);
} else if (classDecl.getName()
.equalsIgnoreCase("InheritGenericServlet")) { //$NON-NLS-1$
modelQueryImpl = catalog
.getModelQueryImpl(queryIsWebServlet);
result = (Boolean) modelQueryImpl
.basicEvaluate(classDecl);
Assert.assertTrue(result);
} else if (classDecl.getName()
.equalsIgnoreCase("InheritServletContextListener")) { //$NON-NLS-1$
modelQueryImpl = catalog
.getModelQueryImpl(queryIsWebListener);
result = (Boolean) modelQueryImpl
.basicEvaluate(classDecl);
Assert.assertTrue(result);
} else if (classDecl.getName()
.equalsIgnoreCase("IsMultipartConfig")) { //$NON-NLS-1$
modelQueryImpl = catalog
.getModelQueryImpl(queryIsMultipartConfig);
result = (Boolean) modelQueryImpl
.basicEvaluate(classDecl);
Assert.assertTrue(result);
} else if (classDecl.getName()
.equalsIgnoreCase("IsWebFilter")) { //$NON-NLS-1$
modelQueryImpl = catalog
.getModelQueryImpl(queryIsWebFilter);
result = (Boolean) modelQueryImpl
.basicEvaluate(classDecl);
Assert.assertTrue(result);
} else if (classDecl.getName()
.equalsIgnoreCase("IsWebInitParam")) { //$NON-NLS-1$
modelQueryImpl = catalog
.getModelQueryImpl(queryIsWebInitParam);
result = (Boolean) modelQueryImpl
.basicEvaluate(classDecl);
Assert.assertTrue(result);
} else if (classDecl.getName()
.equalsIgnoreCase("IsWebListener")) { //$NON-NLS-1$
modelQueryImpl = catalog
.getModelQueryImpl(queryIsWebListener);
result = (Boolean) modelQueryImpl
.basicEvaluate(classDecl);
Assert.assertTrue(result);
} else if (classDecl.getName()
.equalsIgnoreCase("IsWebServlet")) { //$NON-NLS-1$
modelQueryImpl = catalog
.getModelQueryImpl(queryIsWebServlet);
result = (Boolean) modelQueryImpl
.basicEvaluate(classDecl);
Assert.assertTrue(result);
}
}
}
}
}
}