From: acolyer Date: Fri, 29 Jul 2005 11:15:13 +0000 (+0000) Subject: the name says it all ;) X-Git-Tag: V1_5_0M3~230 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=671f51b147ed947a954916be80ea7343ff1205c5;p=aspectj.git the name says it all ;) --- diff --git a/weaver/src/org/aspectj/weaver/patterns/HasThisTypePatternTriedToSneakInSomeGenericOrParameterizedTypePatternMatchingStuffAnywhereVisitor.java b/weaver/src/org/aspectj/weaver/patterns/HasThisTypePatternTriedToSneakInSomeGenericOrParameterizedTypePatternMatchingStuffAnywhereVisitor.java new file mode 100644 index 000000000..0b2b9b5fc --- /dev/null +++ b/weaver/src/org/aspectj/weaver/patterns/HasThisTypePatternTriedToSneakInSomeGenericOrParameterizedTypePatternMatchingStuffAnywhereVisitor.java @@ -0,0 +1,50 @@ +/* ******************************************************************* + * Copyright (c) 2005 Contributors. + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution and is available at + * http://eclipse.org/legal/epl-v10.html + * + * Contributors: + * Adrian Colyer Initial implementation + * ******************************************************************/ +package org.aspectj.weaver.patterns; + +import org.aspectj.weaver.UnresolvedType; + +/** + * @author colyer + * + */ +public class HasThisTypePatternTriedToSneakInSomeGenericOrParameterizedTypePatternMatchingStuffAnywhereVisitor + extends AbstractPatternNodeVisitor { + + boolean ohYesItHas = false; + + /** + * Is the Exact type parameterized? + * Generic is ok as that just means we resolved a simple type pattern to a generic type + */ + public Object visit(ExactTypePattern node, Object data) { + UnresolvedType theExactType = node.getExactType(); + if (theExactType.isParameterizedType()) ohYesItHas = true; + //if (theExactType.isGenericType()) ohYesItHas = true; + return data; + } + + /** + * Any type bounds are bad. + * Type parameters are right out. + */ + public Object visit(WildTypePattern node, Object data) { + if (node.getUpperBound() != null) ohYesItHas = true; + if (node.getLowerBound() != null) ohYesItHas = true; + if (node.getTypeParameters().size() != 0) ohYesItHas = true; + return data; + } + + public boolean wellHasItThen/*?*/() { + return ohYesItHas; + } +}