blob: 44cb59d7bb4cf824f74cb1967733d5ce71bfbf48 [file] [log] [blame]
/**********************************************************************
* This file is part of "Object Teams Development Tooling"-Software
*
* Copyright 2010 GK Software AG
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
* $Id$
*
* Please visit http://www.eclipse.org/objectteams for updates and contact.
*
* Contributors:
* Stephan Herrmann - Initial API and implementation
**********************************************************************/
package org.eclipse.objectteams.otdt.ui.tests.core;
import java.lang.reflect.Method;
import org.eclipse.jdt.core.dom.BaseCallMessageSend;
import org.eclipse.jdt.core.dom.BaseConstructorInvocation;
import org.eclipse.jdt.core.dom.CallinMappingDeclaration;
import org.eclipse.jdt.core.dom.CalloutMappingDeclaration;
import org.eclipse.jdt.core.dom.FieldAccessSpec;
import org.eclipse.jdt.core.dom.GuardPredicateDeclaration;
import org.eclipse.jdt.core.dom.LiftingType;
import org.eclipse.jdt.core.dom.MethodBindingOperator;
import org.eclipse.jdt.core.dom.MethodSpec;
import org.eclipse.jdt.core.dom.ParameterMapping;
import org.eclipse.jdt.core.dom.PrecedenceDeclaration;
import org.eclipse.jdt.core.dom.RoleTypeDeclaration;
import org.eclipse.jdt.core.dom.TSuperConstructorInvocation;
import org.eclipse.jdt.core.dom.TSuperMessageSend;
import org.eclipse.jdt.core.dom.TypeAnchor;
import org.eclipse.jdt.core.dom.WithinStatement;
import base org.eclipse.jdt.ui.tests.core.HierarchicalASTVisitorTest;
/**
* This team excludes OT-specific AST nodes from HierarchicalASTVisitorTest
* because the HierarchicalASTVisitor is not OT-aware.
*/
public team class HierarchicalASTVisiting {
protected class Tests playedBy HierarchicalASTVisitorTest {
@SuppressWarnings("decapsulation")
boolean isVisitMethod(Method method) <- replace boolean isVisitMethod(Method method);
static callin boolean isVisitMethod(Method method) {
return base.isVisitMethod(method) && !isOTNode(method.getParameterTypes()[0]);
}
private static boolean isOTNode(Class nodeClass) {
Class[] otNodeClasses = new Class[] {
MethodSpec.class,
FieldAccessSpec.class,
CallinMappingDeclaration.class,
CalloutMappingDeclaration.class,
MethodBindingOperator.class,
ParameterMapping.class,
RoleTypeDeclaration.class,
LiftingType.class,
TypeAnchor.class,
WithinStatement.class,
TSuperMessageSend.class,
TSuperConstructorInvocation.class,
BaseConstructorInvocation.class,
BaseCallMessageSend.class,
PrecedenceDeclaration.class,
GuardPredicateDeclaration.class
};
for (int i = 0; i < otNodeClasses.length; i++)
if (otNodeClasses[i] == nodeClass)
return true;
return false;
}
}
}