]> source.dussan.org Git - aspectj.git/commitdiff
formatted
authoraclement <aclement>
Sat, 26 Sep 2009 01:06:41 +0000 (01:06 +0000)
committeraclement <aclement>
Sat, 26 Sep 2009 01:06:41 +0000 (01:06 +0000)
org.aspectj.matcher/src/org/aspectj/weaver/patterns/WildTypePattern.java

index ab72026a120e4b4b729f976c37e79dbb00b86a97..6dac7fff97bc29ee7b2aebff987154278b17baba 100644 (file)
@@ -101,8 +101,9 @@ public class WildTypePattern extends TypePattern {
                this.dim = dim;
                ellipsisCount = 0;
                for (int i = 0; i < namePatterns.length; i++) {
-                       if (namePatterns[i] == NamePattern.ELLIPSIS)
+                       if (namePatterns[i] == NamePattern.ELLIPSIS) {
                                ellipsisCount++;
+                       }
                }
                setLocation(namePatterns[0].getSourceContext(), namePatterns[0].getStart(), namePatterns[namePatterns.length - 1].getEnd());
        }
@@ -154,10 +155,12 @@ public class WildTypePattern extends TypePattern {
        }
 
        // called by parser after parsing a type pattern, must bump dim as well as setting flag
+       @Override
        public void setIsVarArgs(boolean isVarArgs) {
                this.isVarArgs = isVarArgs;
-               if (isVarArgs)
+               if (isVarArgs) {
                        this.dim += 1;
+               }
        }
 
        /*
@@ -165,15 +168,18 @@ public class WildTypePattern extends TypePattern {
         * 
         * @see org.aspectj.weaver.patterns.TypePattern#couldEverMatchSameTypesAs(org.aspectj.weaver.patterns.TypePattern)
         */
+       @Override
        protected boolean couldEverMatchSameTypesAs(TypePattern other) {
-               if (super.couldEverMatchSameTypesAs(other))
+               if (super.couldEverMatchSameTypesAs(other)) {
                        return true;
+               }
                // false is necessary but not sufficient
                UnresolvedType otherType = other.getExactType();
                if (!ResolvedType.isMissing(otherType)) {
                        if (namePatterns.length > 0) {
-                               if (!namePatterns[0].matches(otherType.getName()))
+                               if (!namePatterns[0].matches(otherType.getName())) {
                                        return false;
+                               }
                        }
                }
                if (other instanceof WildTypePattern) {
@@ -196,10 +202,12 @@ public class WildTypePattern extends TypePattern {
                int startIndex = 0;
                while (true) {
                        int breakIndex = s.indexOf('.', startIndex); // what about /
-                       if (convertDollar && (breakIndex == -1))
+                       if (convertDollar && (breakIndex == -1)) {
                                breakIndex = s.indexOf('$', startIndex); // we treat $ like . here
-                       if (breakIndex == -1)
+                       }
+                       if (breakIndex == -1) {
                                break;
+                       }
                        char[] name = s.substring(startIndex, breakIndex).toCharArray();
                        ret.add(name);
                        startIndex = breakIndex + 1;
@@ -211,10 +219,12 @@ public class WildTypePattern extends TypePattern {
        /**
         * @see org.aspectj.weaver.TypePattern#matchesExactly(IType)
         */
+       @Override
        protected boolean matchesExactly(ResolvedType type) {
                return matchesExactly(type, type);
        }
 
+       @Override
        protected boolean matchesExactly(ResolvedType type, ResolvedType annotatedType) {
                String targetTypeName = type.getName();
 
@@ -231,8 +241,9 @@ public class WildTypePattern extends TypePattern {
        // type variables we need to make sure we match against them too
        private boolean matchesParameters(ResolvedType aType, MatchKind staticOrDynamic) {
                if (!isGeneric && typeParameters.size() > 0) {
-                       if (!aType.isParameterizedType())
+                       if (!aType.isParameterizedType()) {
                                return false;
+                       }
                        // we have to match type parameters
                        return typeParameters.matches(aType.getResolvedTypeParameters(), staticOrDynamic).alwaysTrue();
                }
@@ -242,8 +253,9 @@ public class WildTypePattern extends TypePattern {
        // we've matched against the base (or raw) type, but if this type pattern specifies bounds because
        // it is a ? extends or ? super deal then we have to match them too.
        private boolean matchesBounds(ResolvedType aType, MatchKind staticOrDynamic) {
-               if (!(aType instanceof BoundedReferenceType))
+               if (!(aType instanceof BoundedReferenceType)) {
                        return true;
+               }
                BoundedReferenceType boundedRT = (BoundedReferenceType) aType;
                if (upperBound == null && boundedRT.getUpperBound() != null) {
                        // for upper bound, null can also match against Object - but anything else and we're out.
@@ -251,20 +263,24 @@ public class WildTypePattern extends TypePattern {
                                return false;
                        }
                }
-               if (lowerBound == null && boundedRT.getLowerBound() != null)
+               if (lowerBound == null && boundedRT.getLowerBound() != null) {
                        return false;
+               }
                if (upperBound != null) {
                        // match ? extends
-                       if (aType.isGenericWildcard() && boundedRT.isSuper())
+                       if (aType.isGenericWildcard() && boundedRT.isSuper()) {
                                return false;
-                       if (boundedRT.getUpperBound() == null)
+                       }
+                       if (boundedRT.getUpperBound() == null) {
                                return false;
+                       }
                        return upperBound.matches((ResolvedType) boundedRT.getUpperBound(), staticOrDynamic).alwaysTrue();
                }
                if (lowerBound != null) {
                        // match ? super
-                       if (!(boundedRT.isGenericWildcard() && boundedRT.isSuper()))
+                       if (!(boundedRT.isGenericWildcard() && boundedRT.isSuper())) {
                                return false;
+                       }
                        return lowerBound.matches((ResolvedType) boundedRT.getLowerBound(), staticOrDynamic).alwaysTrue();
                }
                return true;
@@ -277,6 +293,7 @@ public class WildTypePattern extends TypePattern {
                return dim;
        }
 
+       @Override
        public boolean isArray() {
                return dim > 1;
        }
@@ -324,8 +341,9 @@ public class WildTypePattern extends TypePattern {
                                return false;
                        }
                        for (int i = 0, len = knownMatches.length; i < len; i++) {
-                               if (knownMatches[i].equals(targetTypeName))
+                               if (knownMatches[i].equals(targetTypeName)) {
                                        return true;
+                               }
                        }
                } else {
                        for (int i = 0, len = knownMatches.length; i < len; i++) {
@@ -367,10 +385,12 @@ public class WildTypePattern extends TypePattern {
                int startIndex = 0;
                while (true) {
                        int breakIndex = s.indexOf('.', startIndex); // what about /
-                       if (convertDollar && (breakIndex == -1))
+                       if (convertDollar && (breakIndex == -1)) {
                                breakIndex = s.indexOf('$', startIndex); // we treat $ like . here
-                       if (breakIndex == -1)
+                       }
+                       if (breakIndex == -1) {
                                break;
+                       }
                        char[] name = s.substring(startIndex, breakIndex).toCharArray();
                        ret.add(name);
                        startIndex = breakIndex + 1;
@@ -383,12 +403,14 @@ public class WildTypePattern extends TypePattern {
                int namesIndex = 0;
                int patternsIndex = 0;
 
-               if ((!namePatterns[patternsLength - 1].isAny()) && isAnonymous)
+               if ((!namePatterns[patternsLength - 1].isAny()) && isAnonymous) {
                        return false;
+               }
 
                if (ellipsisCount == 0) {
-                       if (namesLength != patternsLength)
+                       if (namesLength != patternsLength) {
                                return false;
+                       }
                        while (patternsIndex < patternsLength) {
                                if (!namePatterns[patternsIndex++].matches((char[]) ret.get(namesIndex++))) {
                                        return false;
@@ -396,8 +418,9 @@ public class WildTypePattern extends TypePattern {
                        }
                        return true;
                } else if (ellipsisCount == 1) {
-                       if (namesLength < patternsLength - 1)
+                       if (namesLength < patternsLength - 1) {
                                return false;
+                       }
                        while (patternsIndex < patternsLength) {
                                NamePattern p = namePatterns[patternsIndex++];
                                if (p == NamePattern.ELLIPSIS) {
@@ -420,12 +443,14 @@ public class WildTypePattern extends TypePattern {
 
        private static boolean outOfStar(final NamePattern[] pattern, final char[][] target, int pi, int ti, int pLeft, int tLeft,
                        final int starsLeft) {
-               if (pLeft > tLeft)
+               if (pLeft > tLeft) {
                        return false;
+               }
                while (true) {
                        // invariant: if (tLeft > 0) then (ti < target.length && pi < pattern.length)
-                       if (tLeft == 0)
+                       if (tLeft == 0) {
                                return true;
+                       }
                        if (pLeft == 0) {
                                return (starsLeft > 0);
                        }
@@ -454,11 +479,13 @@ public class WildTypePattern extends TypePattern {
                }
                while (true) {
                        // invariant: if (tLeft > 0) then (ti < target.length)
-                       if (pLeft > tLeft)
+                       if (pLeft > tLeft) {
                                return false;
+                       }
                        if (patternChar.matches(target[ti])) {
-                               if (outOfStar(pattern, target, pi + 1, ti + 1, pLeft - 1, tLeft - 1, starsLeft))
+                               if (outOfStar(pattern, target, pi + 1, ti + 1, pLeft - 1, tLeft - 1, starsLeft)) {
                                        return true;
+                               }
                        }
                        ti++;
                        tLeft--;
@@ -468,6 +495,7 @@ public class WildTypePattern extends TypePattern {
        /**
         * @see org.aspectj.weaver.TypePattern#matchesInstanceof(IType)
         */
+       @Override
        public FuzzyBoolean matchesInstanceof(ResolvedType type) {
                // XXX hack to let unmatched types just silently remain so
                if (maybeGetSimpleName() != null) {
@@ -487,8 +515,9 @@ public class WildTypePattern extends TypePattern {
                }
                // System.err.println("extract from : " + Arrays.asList(namePatterns));
                int len = namePatterns.length;
-               if (len == 1 && !annotationPattern.isAny())
+               if (len == 1 && !annotationPattern.isAny()) {
                        return null; // can't extract
+               }
                NamePattern ret = namePatterns[len - 1];
                NamePattern[] newNames = new NamePattern[len - 1];
                System.arraycopy(namePatterns, 0, newNames, 0, len - 1);
@@ -538,16 +567,19 @@ public class WildTypePattern extends TypePattern {
                for (int i = 0, len = namePatterns.length; i < len; i++) {
                        NamePattern p = namePatterns[i];
                        String simpleName = p.maybeGetSimpleName();
-                       if (simpleName == null)
+                       if (simpleName == null) {
                                return null;
-                       if (i > 0)
+                       }
+                       if (i > 0) {
                                buf.append(".");
+                       }
                        buf.append(simpleName);
                }
                // System.out.println(buf);
                return buf.toString();
        }
 
+       @Override
        public TypePattern parameterizeWith(Map typeVariableMap, World w) {
                NamePattern[] newNamePatterns = new NamePattern[namePatterns.length];
                for (int i = 0; i < namePatterns.length; i++) {
@@ -594,6 +626,7 @@ public class WildTypePattern extends TypePattern {
         * 
         * We will be replaced by what we return
         */
+       @Override
        public TypePattern resolveBindings(IScope scope, Bindings bindings, boolean allowBinding, boolean requireExactType) {
                if (isNamePatternStar()) {
                        TypePattern anyPattern = maybeResolveToAnyPattern(scope, bindings, allowBinding, requireExactType);
@@ -609,8 +642,9 @@ public class WildTypePattern extends TypePattern {
                }
 
                TypePattern bindingTypePattern = maybeResolveToBindingTypePattern(scope, bindings, allowBinding, requireExactType);
-               if (bindingTypePattern != null)
+               if (bindingTypePattern != null) {
                        return bindingTypePattern;
+               }
 
                annotationPattern = annotationPattern.resolveBindings(scope, bindings, allowBinding);
 
@@ -621,11 +655,13 @@ public class WildTypePattern extends TypePattern {
                }
 
                // resolve any bounds
-               if (upperBound != null)
+               if (upperBound != null) {
                        upperBound = upperBound.resolveBindings(scope, bindings, allowBinding, requireExactType);
-               if (lowerBound != null)
+               }
+               if (lowerBound != null) {
                        lowerBound = lowerBound.resolveBindings(scope, bindings, allowBinding, requireExactType);
-               // amc - additional interface bounds only needed if we support type vars again.
+                       // amc - additional interface bounds only needed if we support type vars again.
+               }
 
                String fullyQualifiedName = maybeGetCleanName();
                if (fullyQualifiedName != null) {
@@ -714,8 +750,9 @@ public class WildTypePattern extends TypePattern {
                UnresolvedType type = null;
                while (ResolvedType.isMissing(type = scope.lookupType(typeName, location))) {
                        int lastDot = typeName.lastIndexOf('.');
-                       if (lastDot == -1)
+                       if (lastDot == -1) {
                                break;
+                       }
                        typeName = typeName.substring(0, lastDot) + '$' + typeName.substring(lastDot + 1);
                }
                return type;
@@ -729,16 +766,18 @@ public class WildTypePattern extends TypePattern {
         */
        private ResolvedType lookupTypeInWorldIncludingPrefixes(World world, String typeName, String[] prefixes) {
                ResolvedType ret = lookupTypeInWorld(world, typeName);
-               if (!ret.isMissing())
+               if (!ret.isMissing()) {
                        return ret;
+               }
                ResolvedType retWithPrefix = ret;
                int counter = 0;
                while (retWithPrefix.isMissing() && (counter < prefixes.length)) {
                        retWithPrefix = lookupTypeInWorld(world, prefixes[counter] + typeName);
                        counter++;
                }
-               if (!retWithPrefix.isMissing())
+               if (!retWithPrefix.isMissing()) {
                        return retWithPrefix;
+               }
                return ret;
        }
 
@@ -747,8 +786,9 @@ public class WildTypePattern extends TypePattern {
                ResolvedType ret = world.resolve(ut, true);
                while (ret.isMissing()) {
                        int lastDot = typeName.lastIndexOf('.');
-                       if (lastDot == -1)
+                       if (lastDot == -1) {
                                break;
+                       }
                        typeName = typeName.substring(0, lastDot) + '$' + typeName.substring(lastDot + 1);
                        ret = world.resolve(UnresolvedType.forName(typeName), true);
                }
@@ -767,8 +807,9 @@ public class WildTypePattern extends TypePattern {
                        // this must be a generic wildcard with bounds
                        ret = resolveGenericWildcard(scope, aType);
                } else {
-                       if (dim != 0)
+                       if (dim != 0) {
                                aType = UnresolvedType.makeArray(aType, dim);
+                       }
                        ret = new ExactTypePattern(aType, includeSubtypes, isVarArgs);
                }
                ret.setAnnotationTypePattern(annotationPattern);
@@ -777,13 +818,16 @@ public class WildTypePattern extends TypePattern {
        }
 
        private TypePattern resolveGenericWildcard(IScope scope, UnresolvedType aType) {
-               if (!aType.getSignature().equals(GENERIC_WILDCARD_SIGNATURE_CHARACTER))
+               if (!aType.getSignature().equals(GENERIC_WILDCARD_SIGNATURE_CHARACTER)) {
                        throw new IllegalStateException("Can only have bounds for a generic wildcard");
+               }
                boolean canBeExact = true;
-               if ((upperBound != null) && ResolvedType.isMissing(upperBound.getExactType()))
+               if ((upperBound != null) && ResolvedType.isMissing(upperBound.getExactType())) {
                        canBeExact = false;
-               if ((lowerBound != null) && ResolvedType.isMissing(lowerBound.getExactType()))
+               }
+               if ((lowerBound != null) && ResolvedType.isMissing(lowerBound.getExactType())) {
                        canBeExact = false;
+               }
                if (canBeExact) {
                        ResolvedType type = null;
                        if (upperBound != null) {
@@ -816,8 +860,9 @@ public class WildTypePattern extends TypePattern {
 
        private TypePattern resolveParameterizedType(IScope scope, UnresolvedType aType, boolean requireExactType) {
                ResolvedType rt = aType.resolve(scope.getWorld());
-               if (!verifyTypeParameters(rt, scope, requireExactType))
+               if (!verifyTypeParameters(rt, scope, requireExactType)) {
                        return TypePattern.NO; // messages already isued
+               }
                // Only if the type is exact *and* the type parameters are exact should we create an
                // ExactTypePattern for this WildTypePattern
                if (typeParameters.areAllExactWithNoSubtypesAllowed()) {
@@ -831,12 +876,14 @@ public class WildTypePattern extends TypePattern {
                                rt = rt.getGenericType();
                        }
                        ResolvedType type = TypeFactory.createParameterizedType(rt, typeParameterTypes, scope.getWorld());
-                       if (isGeneric)
+                       if (isGeneric) {
                                type = type.getGenericType();
+                       }
                        // UnresolvedType tx = UnresolvedType.forParameterizedTypes(aType,typeParameterTypes);
                        // UnresolvedType type = scope.getWorld().resolve(tx,true);
-                       if (dim != 0)
+                       if (dim != 0) {
                                type = ResolvedType.makeArray(type, dim);
+                       }
                        return new ExactTypePattern(type, includeSubtypes, isVarArgs);
                } else {
                        // AMC... just leave it as a wild type pattern then?
@@ -895,28 +942,34 @@ public class WildTypePattern extends TypePattern {
                if (upperBound == null && lowerBound == null && additionalInterfaceBounds == null) {
                        // no bounds to worry about...
                        ResolvedType rType = tvrType.resolve(scope.getWorld());
-                       if (dim != 0)
+                       if (dim != 0) {
                                rType = ResolvedType.makeArray(rType, dim);
+                       }
                        return new ExactTypePattern(rType, includeSubtypes, isVarArgs);
                } else {
                        // we have to set bounds on the TypeVariable held by tvrType before resolving it
                        boolean canCreateExactTypePattern = true;
-                       if (upperBound != null && ResolvedType.isMissing(upperBound.getExactType()))
+                       if (upperBound != null && ResolvedType.isMissing(upperBound.getExactType())) {
                                canCreateExactTypePattern = false;
-                       if (lowerBound != null && ResolvedType.isMissing(lowerBound.getExactType()))
+                       }
+                       if (lowerBound != null && ResolvedType.isMissing(lowerBound.getExactType())) {
                                canCreateExactTypePattern = false;
+                       }
                        if (additionalInterfaceBounds != null) {
                                for (int i = 0; i < additionalInterfaceBounds.length; i++) {
-                                       if (ResolvedType.isMissing(additionalInterfaceBounds[i].getExactType()))
+                                       if (ResolvedType.isMissing(additionalInterfaceBounds[i].getExactType())) {
                                                canCreateExactTypePattern = false;
+                                       }
                                }
                        }
                        if (canCreateExactTypePattern) {
                                TypeVariable tv = tvrType.getTypeVariable();
-                               if (upperBound != null)
+                               if (upperBound != null) {
                                        tv.setUpperBound(upperBound.getExactType());
-                               if (lowerBound != null)
+                               }
+                               if (lowerBound != null) {
                                        tv.setLowerBound(lowerBound.getExactType());
+                               }
                                if (additionalInterfaceBounds != null) {
                                        UnresolvedType[] ifBounds = new UnresolvedType[additionalInterfaceBounds.length];
                                        for (int i = 0; i < ifBounds.length; i++) {
@@ -925,8 +978,9 @@ public class WildTypePattern extends TypePattern {
                                        tv.setAdditionalInterfaceBounds(ifBounds);
                                }
                                ResolvedType rType = tvrType.resolve(scope.getWorld());
-                               if (dim != 0)
+                               if (dim != 0) {
                                        rType = ResolvedType.makeArray(rType, dim);
+                               }
                                return new ExactTypePattern(rType, includeSubtypes, isVarArgs);
                        }
                        return this; // leave as wild type pattern then
@@ -966,10 +1020,11 @@ public class WildTypePattern extends TypePattern {
                        // issue message "does not match because wrong no of type params"
                        String msg = WeaverMessages.format(WeaverMessages.INCORRECT_NUMBER_OF_TYPE_ARGUMENTS, genericType.getName(),
                                        new Integer(tvs.length));
-                       if (requireExactType)
+                       if (requireExactType) {
                                scope.message(MessageUtil.error(msg, getSourceLocation()));
-                       else
+                       } else {
                                scope.message(MessageUtil.warn(msg, getSourceLocation()));
+                       }
                        return false;
                }
 
@@ -1029,14 +1084,16 @@ public class WildTypePattern extends TypePattern {
                                        if (continueCheck && !tvs[i].canBeBoundTo(ut.resolve(scope.getWorld()))) {
                                                // issue message that type parameter does not meet specification
                                                String parameterName = ut.getName();
-                                               if (ut.isTypeVariableReference())
+                                               if (ut.isTypeVariableReference()) {
                                                        parameterName = ((TypeVariableReference) ut).getTypeVariable().getDisplayName();
+                                               }
                                                String msg = WeaverMessages.format(WeaverMessages.VIOLATES_TYPE_VARIABLE_BOUNDS, parameterName,
                                                                new Integer(i + 1), tvs[i].getDisplayName(), genericType.getName());
-                                               if (requireExactType)
+                                               if (requireExactType) {
                                                        scope.message(MessageUtil.error(msg, sLoc));
-                                               else
+                                               } else {
                                                        scope.message(MessageUtil.warn(msg, sLoc));
+                                               }
                                        }
                                }
                        }
@@ -1080,6 +1137,7 @@ public class WildTypePattern extends TypePattern {
        // return true;
        // }
 
+       @Override
        public boolean isStar() {
                boolean annPatternStar = annotationPattern == AnnotationTypePattern.ANY;
                return (isNamePatternStar() && annPatternStar);
@@ -1117,6 +1175,7 @@ public class WildTypePattern extends TypePattern {
        // this.knownNames = prematch(enclosingType.getImportedNames());
        // }
 
+       @Override
        public String toString() {
                StringBuffer buf = new StringBuffer();
                if (annotationPattern != AnnotationTypePattern.ANY) {
@@ -1129,8 +1188,9 @@ public class WildTypePattern extends TypePattern {
                        if (name == null) {
                                buf.append(".");
                        } else {
-                               if (i > 0)
+                               if (i > 0) {
                                        buf.append(".");
+                               }
                                buf.append(name.toString());
                        }
                }
@@ -1147,66 +1207,85 @@ public class WildTypePattern extends TypePattern {
                        buf.append(typeParameters.toString());
                        buf.append(">");
                }
-               if (includeSubtypes)
+               if (includeSubtypes) {
                        buf.append('+');
-               if (isVarArgs)
+               }
+               if (isVarArgs) {
                        buf.append("...");
+               }
                if (annotationPattern != AnnotationTypePattern.ANY) {
                        buf.append(')');
                }
                return buf.toString();
        }
 
+       @Override
        public boolean equals(Object other) {
-               if (!(other instanceof WildTypePattern))
+               if (!(other instanceof WildTypePattern)) {
                        return false;
+               }
                WildTypePattern o = (WildTypePattern) other;
                int len = o.namePatterns.length;
-               if (len != this.namePatterns.length)
+               if (len != this.namePatterns.length) {
                        return false;
-               if (this.includeSubtypes != o.includeSubtypes)
+               }
+               if (this.includeSubtypes != o.includeSubtypes) {
                        return false;
-               if (this.dim != o.dim)
+               }
+               if (this.dim != o.dim) {
                        return false;
-               if (this.isVarArgs != o.isVarArgs)
+               }
+               if (this.isVarArgs != o.isVarArgs) {
                        return false;
+               }
                if (this.upperBound != null) {
-                       if (o.upperBound == null)
+                       if (o.upperBound == null) {
                                return false;
-                       if (!this.upperBound.equals(o.upperBound))
+                       }
+                       if (!this.upperBound.equals(o.upperBound)) {
                                return false;
+                       }
                } else {
-                       if (o.upperBound != null)
+                       if (o.upperBound != null) {
                                return false;
+                       }
                }
                if (this.lowerBound != null) {
-                       if (o.lowerBound == null)
+                       if (o.lowerBound == null) {
                                return false;
-                       if (!this.lowerBound.equals(o.lowerBound))
+                       }
+                       if (!this.lowerBound.equals(o.lowerBound)) {
                                return false;
+                       }
                } else {
-                       if (o.lowerBound != null)
+                       if (o.lowerBound != null) {
                                return false;
+                       }
                }
-               if (!typeParameters.equals(o.typeParameters))
+               if (!typeParameters.equals(o.typeParameters)) {
                        return false;
+               }
                for (int i = 0; i < len; i++) {
-                       if (!o.namePatterns[i].equals(this.namePatterns[i]))
+                       if (!o.namePatterns[i].equals(this.namePatterns[i])) {
                                return false;
+                       }
                }
                return (o.annotationPattern.equals(this.annotationPattern));
        }
 
+       @Override
        public int hashCode() {
                int result = 17;
                for (int i = 0, len = namePatterns.length; i < len; i++) {
                        result = 37 * result + namePatterns[i].hashCode();
                }
                result = 37 * result + annotationPattern.hashCode();
-               if (upperBound != null)
+               if (upperBound != null) {
                        result = 37 * result + upperBound.hashCode();
-               if (lowerBound != null)
+               }
+               if (lowerBound != null) {
                        result = 37 * result + lowerBound.hashCode();
+               }
                return result;
        }
 
@@ -1215,6 +1294,7 @@ public class WildTypePattern extends TypePattern {
        /**
         * @see org.aspectj.weaver.patterns.PatternNode#write(DataOutputStream)
         */
+       @Override
        public void write(DataOutputStream s) throws IOException {
                s.writeByte(TypePattern.WILD);
                s.writeByte(VERSION);
@@ -1235,11 +1315,13 @@ public class WildTypePattern extends TypePattern {
                // generics info, new in M3
                s.writeBoolean(isGeneric);
                s.writeBoolean(upperBound != null);
-               if (upperBound != null)
+               if (upperBound != null) {
                        upperBound.write(s);
+               }
                s.writeBoolean(lowerBound != null);
-               if (lowerBound != null)
+               if (lowerBound != null) {
                        lowerBound.write(s);
+               }
                s.writeInt(additionalInterfaceBounds == null ? 0 : additionalInterfaceBounds.length);
                if (additionalInterfaceBounds != null) {
                        for (int i = 0; i < additionalInterfaceBounds.length; i++) {
@@ -1308,6 +1390,7 @@ public class WildTypePattern extends TypePattern {
                return ret;
        }
 
+       @Override
        public Object accept(PatternNodeVisitor visitor, Object data) {
                return visitor.visit(this, data);
        }