From 6bffcd742ee7877fa1b5b9fc154237d9f712a884 Mon Sep 17 00:00:00 2001 From: Graeme Rocher Date: Thu, 30 Jan 2014 11:19:35 +0100 Subject: [PATCH] remove dependency on commons-lang from GrailsASTUtils --- .../compiler/injection/GrailsASTUtils.java | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/grails-core/src/main/groovy/org/codehaus/groovy/grails/compiler/injection/GrailsASTUtils.java b/grails-core/src/main/groovy/org/codehaus/groovy/grails/compiler/injection/GrailsASTUtils.java index 070685aef7c..862cf329ba0 100644 --- a/grails-core/src/main/groovy/org/codehaus/groovy/grails/compiler/injection/GrailsASTUtils.java +++ b/grails-core/src/main/groovy/org/codehaus/groovy/grails/compiler/injection/GrailsASTUtils.java @@ -42,10 +42,6 @@ import java.util.Map; import java.util.Set; -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.collections.Predicate; -import org.apache.commons.collections.map.DefaultedMap; -import org.apache.commons.lang.StringUtils; import org.codehaus.groovy.ast.ASTNode; import org.codehaus.groovy.ast.AnnotatedNode; import org.codehaus.groovy.ast.AnnotationNode; @@ -88,11 +84,13 @@ import org.codehaus.groovy.control.messages.SyntaxErrorMessage; import org.codehaus.groovy.grails.commons.GrailsClassUtils; import org.codehaus.groovy.grails.commons.GrailsDomainClassProperty; +import org.codehaus.groovy.runtime.DefaultGroovyMethods; import org.codehaus.groovy.runtime.MetaClassHelper; import org.codehaus.groovy.syntax.SyntaxException; import org.codehaus.groovy.syntax.Token; import org.codehaus.groovy.syntax.Types; import org.codehaus.groovy.transform.sc.StaticCompileTransformation; +import org.springframework.util.StringUtils; /** * Helper methods for working with Groovy AST trees. @@ -166,7 +164,7 @@ public static void error(final SourceUnit sourceUnit, final ASTNode astNode, fin * @return true if the property exists in the ClassNode */ public static boolean hasProperty(ClassNode classNode, String propertyName) { - if (classNode == null || StringUtils.isBlank(propertyName)) { + if (classNode == null || !StringUtils.hasText(propertyName)) { return false; } @@ -622,8 +620,13 @@ public static ClassNode nonGeneric(ClassNode type) { } @SuppressWarnings("unchecked") - public static ClassNode nonGeneric(ClassNode type, ClassNode wildcardReplacement) { - return replaceGenericsPlaceholders(type, DefaultedMap.decorate(emptyGenericsPlaceHoldersMap, wildcardReplacement)); + public static ClassNode nonGeneric(ClassNode type, final ClassNode wildcardReplacement) { + return replaceGenericsPlaceholders(type, DefaultGroovyMethods.withDefault(emptyGenericsPlaceHoldersMap, new Closure(this) { + @Override + public Object call(Object... args) { + return wildcardReplacement; + } + })); } public static ClassNode replaceGenericsPlaceholders(ClassNode type, Map genericsPlaceholders) { @@ -825,12 +828,12 @@ public static boolean hasAnnotation(final ClassNode classNode, final Class... annotationsToLookFor) { - return CollectionUtils.exists(Arrays.asList(annotationsToLookFor), new Predicate() { - @SuppressWarnings({ "unchecked", "rawtypes" }) - public boolean evaluate(Object object) { - return hasAnnotation(classNode, (Class)object); + for (Class annotationClass : annotationsToLookFor) { + if(hasAnnotation(classNode, annotationClass)) { + return true; } - }); + } + return false; } public static void addMethodIfNotPresent(ClassNode controllerClassNode, MethodNode methodNode) {