[webbeans-commits] Webbeans SVN: r397 - in ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans: bean and 4 other directories.
webbeans-commits at lists.jboss.org
webbeans-commits at lists.jboss.org
Wed Dec 3 17:49:55 EST 2008
Author: nickarls
Date: 2008-12-03 17:49:55 -0500 (Wed, 03 Dec 2008)
New Revision: 397
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/MetaDataCache.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/Resolver.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/MergedStereotypes.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/EjbMetaData.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedItem.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedMember.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedType.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedAnnotationImpl.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedClassImpl.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedConstructorImpl.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedFieldImpl.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedItemImpl.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedMethodImpl.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedParameterImpl.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/BindingTypeModel.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/StereotypeModel.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Strings.java
Log:
toString caching + simplifications. Output needs tuning, though
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java 2008-12-03 19:26:10 UTC (rev 396)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java 2008-12-03 22:49:55 UTC (rev 397)
@@ -59,6 +59,7 @@
import org.jboss.webbeans.introspector.AnnotatedMethod;
import org.jboss.webbeans.introspector.jlr.AnnotatedClassImpl;
import org.jboss.webbeans.util.Reflections;
+import org.jboss.webbeans.util.Strings;
/**
* Implementation of the Web Beans Manager.
@@ -656,39 +657,15 @@
public String toString()
{
StringBuffer buffer = new StringBuffer();
-
- buffer.append("Enabled deployment types: " + enabledDeploymentTypes.size() + "\n");
- int i = 0;
- for (Class<? extends Annotation> deploymentType : enabledDeploymentTypes)
- {
- buffer.append(++i + " - " + deploymentType.getName() + "\n");
- }
+ buffer.append(Strings.collectionToString("Enabled deployment types: ", getEnabledDeploymentTypes()));
buffer.append(eventManager.toString() + "\n");
buffer.append(metaDataCache.toString() + "\n");
buffer.append(resolver.toString() + "\n");
buffer.append(contextMap.toString() + "\n");
buffer.append(proxyPool.toString() + "\n");
- buffer.append("Registered beans: " + beans.size() + "\n");
- i = 0;
- for (Bean<?> bean : beans)
- {
- buffer.append(++i + " - " + bean.toString() + "\n");
- }
-
- buffer.append("Registered decorators: " + decorators.size() + "\n");
- i = 0;
- for (Decorator decorator : decorators)
- {
- buffer.append(++i + " - " + decorator.toString() + "\n");
- }
-
- buffer.append("Registered interceptors: " + interceptors.size() + "\n");
- i = 0;
- for (Interceptor interceptor : interceptors)
- {
- buffer.append(++i + " - " + interceptor.toString() + "\n");
- }
-
+ buffer.append(Strings.collectionToString("Registered beans: ", getBeans()));
+ buffer.append(Strings.collectionToString("Registered decorators: ", decorators));
+ buffer.append(Strings.collectionToString("Registered interceptors: ", interceptors));
return buffer.toString();
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/MetaDataCache.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/MetaDataCache.java 2008-12-03 19:26:10 UTC (rev 396)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/MetaDataCache.java 2008-12-03 22:49:55 UTC (rev 397)
@@ -198,12 +198,7 @@
buffer.append(bindingTypes.toString() + "\n");
buffer.append(ejbMetaDataMap.toString() + "\n");
buffer.append(scopes.toString() + "\n");
- buffer.append("Stereotypes: " + stereotypes.size() + "\n");
- int i = 0;
- for (Entry<Class<? extends Annotation>, StereotypeModel<?>> entry : stereotypes.entrySet())
- {
- buffer.append(++i + " - " + entry.getKey().getName() + ": " + entry.getValue().toString() + "\n");
- }
+ buffer.append(Strings.mapToString("Stereotypes: ", stereotypes));
buffer.append("====================\n");
return buffer.toString();
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/Resolver.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/Resolver.java 2008-12-03 19:26:10 UTC (rev 396)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/Resolver.java 2008-12-03 22:49:55 UTC (rev 397)
@@ -27,7 +27,6 @@
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
-import java.util.Map.Entry;
import java.util.concurrent.Callable;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ExecutionException;
@@ -95,7 +94,6 @@
}
-
/**
* Type safe map for caching annotation metadata
*/
@@ -116,16 +114,16 @@
}
@Override
- protected Map<AnnotatedItem<?, ?>, Future > delegate()
+ protected Map<AnnotatedItem<?, ?>, Future> delegate()
{
return delegate;
}
-
+
@Override
public String toString()
{
return Strings.mapToString("AnnotatedItemMap (annotated item -> bean set): ", delegate);
- }
+ }
}
@@ -151,7 +149,7 @@
{
injectionPoints.addAll(elements);
}
-
+
private void registerName(final String name)
{
FutureTask<Set<Bean<?>>> task = new FutureTask<Set<Bean<?>>>(new Callable<Set<Bean<?>>>()
@@ -169,13 +167,13 @@
}
return retainHighestPrecedenceBeans(beans, manager.getEnabledDeploymentTypes());
}
-
+
});
resolvedNames.put(name, task);
-
+
task.run();
}
-
+
private <T, S> void registerInjectionPoint(final AnnotatedItem<T, S> element)
{
FutureTask<Set<Bean<?>>> task = new FutureTask<Set<Bean<?>>>(new Callable<Set<Bean<?>>>()
@@ -196,9 +194,9 @@
}
return beans;
}
-
+
});
-
+
resolvedInjectionPoints.put(new ResolvableAnnotatedItem<T, S>()
{
@@ -209,7 +207,7 @@
}
}, task);
-
+
task.run();
}
@@ -265,7 +263,7 @@
{
registerInjectionPoint(element);
}
-
+
boolean interupted = false;
try
{
@@ -316,7 +314,7 @@
{
registerName(name);
}
-
+
boolean interupted = false;
try
{
@@ -446,18 +444,8 @@
StringBuffer buffer = new StringBuffer();
buffer.append("Resolver\n");
buffer.append(resolvedInjectionPoints.toString() + "\n");
- buffer.append("Injection points: " + injectionPoints.size() + "\n");
- int i = 0;
- for (AnnotatedItem<?, ?> injectionPoint : injectionPoints)
- {
- buffer.append(++i + " - " + injectionPoint.toString() + "\n");
- }
- buffer.append("Resolved names: " + resolvedNames.size() + "\n");
- i = 0;
- for (Entry<String, Future<Set<Bean<?>>>> entry : resolvedNames.entrySet())
- {
- buffer.append(++i + " - " + entry + ": " + entry.getValue().toString() + "\n");
- }
+ buffer.append(Strings.collectionToString("Injection points: ", injectionPoints));
+ buffer.append(Strings.mapToString("Resolved names: ", resolvedNames));
return buffer.toString();
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java 2008-12-03 19:26:10 UTC (rev 396)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java 2008-12-03 22:49:55 UTC (rev 397)
@@ -48,6 +48,7 @@
import org.jboss.webbeans.log.LogProvider;
import org.jboss.webbeans.log.Logging;
import org.jboss.webbeans.util.Reflections;
+import org.jboss.webbeans.util.Strings;
/**
* An abstract bean representation common for all beans
@@ -66,9 +67,9 @@
/**
* Helper class for getting deployment type
*
- * Loops through the enabled deployment types (backwards) and returns the first one
- * present in the possible deployments type, resulting in the deployment type of
- * highest priority
+ * Loops through the enabled deployment types (backwards) and returns the
+ * first one present in the possible deployments type, resulting in the
+ * deployment type of highest priority
*
* @param enabledDeploymentTypes The currently enabled deployment types
* @param possibleDeploymentTypes The possible deployment types
@@ -198,7 +199,7 @@
Set<Annotation> xmlDeploymentTypes = null;
if (xmlDeploymentTypes.size() > 1)
{
- throw new DefinitionException ("At most one deployment type may be specified (" + xmlDeploymentTypes + " are specified)");
+ throw new DefinitionException("At most one deployment type may be specified (" + xmlDeploymentTypes + " are specified)");
}
if (xmlDeploymentTypes.size() == 1)
@@ -366,7 +367,7 @@
}
else if (getMergedStereotypes().getPossibleScopeTypes().size() > 1)
{
- throw new DefinitionException ("All stereotypes must specify the same scope OR a scope must be specified on the bean");
+ throw new DefinitionException("All stereotypes must specify the same scope OR a scope must be specified on the bean");
}
this.scopeType = Dependent.class;
log.trace("Using default @Dependent scope");
@@ -384,7 +385,7 @@
{
if (deploymentType == null)
{
- throw new DefinitionException ("type: " + getType() + " must specify a deployment type");
+ throw new DefinitionException("type: " + getType() + " must specify a deployment type");
}
else if (deploymentType.equals(Standard.class) && !STANDARD_WEB_BEAN_CLASSES.contains(getAnnotatedItem().getType()))
{
@@ -650,25 +651,10 @@
buffer.append("Primitive : " + primitive + "\n");
buffer.append("Declared bean type: " + (declaredBeanType == null ? "null" : declaredBeanType.toString()) + "\n");
buffer.append("Remove method: " + (removeMethod == null ? "null" : removeMethod.toString()) + "\n");
- buffer.append("Binding types: " + bindingTypes.size() + "\n");
- int i = 0;
- for (Annotation bindingType : bindingTypes)
- {
- buffer.append(++i + " - " + bindingType.toString() + "\n");
- }
- buffer.append("API types: " + apiTypes.size() + "\n");
- i = 0;
- for (Class<?> apiType : apiTypes)
- {
- buffer.append(++i + " - " + apiType.getName() + "\n");
- }
+ buffer.append(Strings.collectionToString("Binding types: ", getBindingTypes()));
+ buffer.append(Strings.collectionToString("API types: ", getTypes()));
+ buffer.append(Strings.collectionToString("Injection points: ", getInjectionPoints()));
buffer.append(mergedStereotypes.toString() + "\n");
- buffer.append("Injection points: " + injectionPoints.size() + "\n");
- i = 0;
- for (AnnotatedItem<?, ?> injectionPoint : injectionPoints)
- {
- buffer.append(++i + " - " + injectionPoint.toString() + "\n");
- }
return buffer.toString();
}
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java 2008-12-03 19:26:10 UTC (rev 396)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java 2008-12-03 22:49:55 UTC (rev 397)
@@ -278,18 +278,9 @@
buffer.append("AbstractClassBean:\n");
buffer.append(super.toString() + "\n");
buffer.append("Annotated item: " + annotatedItem.toString() + "\n");
- buffer.append("Initializer methods: " + initializerMethods.size() + "\n");
- int i = 0;
- for (AnnotatedMethod<?> initializerMethod : initializerMethods)
- {
- buffer.append(++i + " - " + initializerMethod.toString() + "\n");
- }
- i = 0;
- buffer.append("Injectable fields " + injectableFields.size() + "\n");
- for (AnnotatedField<?> injectableField : injectableFields)
- {
- buffer.append(++i + " - " + injectableField.toString() + "\n");
- }
+ buffer.append(Strings.collectionToString("Initializer methods: ", getInitializerMethods()));
+ buffer.append(Strings.collectionToString("Injectable fields: ", getInjectableFields()));
+ buffer.append(Strings.collectionToString("Producer methods: ", getProducerMethods()));
return buffer.toString();
}
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/MergedStereotypes.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/MergedStereotypes.java 2008-12-03 19:26:10 UTC (rev 396)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/MergedStereotypes.java 2008-12-03 22:49:55 UTC (rev 397)
@@ -25,6 +25,7 @@
import org.jboss.webbeans.ManagerImpl;
import org.jboss.webbeans.introspector.jlr.AbstractAnnotatedItem.AnnotationMap;
import org.jboss.webbeans.model.StereotypeModel;
+import org.jboss.webbeans.util.Strings;
/**
* Meta model for the merged stereotype for a bean
@@ -163,30 +164,10 @@
StringBuffer buffer = new StringBuffer();
buffer.append("Merged stereotypes:\n");
buffer.append("Bean name defaulted: " + beanNameDefaulted + "\n");
- buffer.append("Possible deployment types: " + possibleDeploymentTypes.size() + "\n");
- int i = 0;
- for (Entry<Class<? extends Annotation>, Annotation> entry : possibleDeploymentTypes.entrySet())
- {
- buffer.append(++i + " - " + entry.getKey().getName() + ": " + entry.getValue().toString() + "\n");
- }
- buffer.append("Possible scope types: " + possibleScopeTypes.size() + "\n");
- i = 0;
- for (Annotation scopeType : possibleScopeTypes)
- {
- buffer.append(++i + " - " + scopeType.toString());
- }
- buffer.append("Required types: " + requiredTypes.size() + "\n");
- i = 0;
- for (Class<?> requiredType : requiredTypes)
- {
- buffer.append(++i + " - " + requiredType.getName() + "\n");
- }
- buffer.append("Supported scopes: " + supportedScopes.size() + "\n");
- i = 0;
- for (Class<?> supportedScope : supportedScopes)
- {
- buffer.append(++i + " - " + supportedScope.getName() + "\n");
- }
+ buffer.append("Possible deployment types: " + getPossibleDeploymentTypes().toString());
+ buffer.append(Strings.collectionToString("Possible scope types: ", getPossibleScopeTypes()));
+ buffer.append(Strings.collectionToString("Required types: ", getRequiredTypes()));
+ buffer.append(Strings.collectionToString("Supported scopes: ", getSupportedScopes()));
return buffer.toString();
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/EjbMetaData.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/EjbMetaData.java 2008-12-03 19:26:10 UTC (rev 396)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/EjbMetaData.java 2008-12-03 22:49:55 UTC (rev 397)
@@ -36,6 +36,7 @@
import org.jboss.webbeans.introspector.AnnotatedClass;
import org.jboss.webbeans.introspector.AnnotatedMethod;
import org.jboss.webbeans.introspector.jlr.AnnotatedClassImpl;
+import org.jboss.webbeans.util.Strings;
/**
* EJB metadata
@@ -265,24 +266,9 @@
buffer.append("EJB link JNDI name " + ejbLinkJndiName + "\n");
buffer.append("Default JNDI name: " + defaultJndiName + "\n");
buffer.append("Type: " + type.toString() + "\n");
- buffer.append("Desctructor methods: " + destructorMethods.size() + "\n");
- int i = 0;
- for (AnnotatedMethod<?> method : destructorMethods)
- {
- buffer.append(++i + " - " + method.toString() + "\n");
- }
- i = 0;
- buffer.append("Remove methods: " + removeMethods.size() + "\n");
- for (AnnotatedMethod<?> method : removeMethods)
- {
- buffer.append(++i + " - " + method.toString() + "\n");
- }
- i = 0;
- buffer.append("No-args remove methods: " + noArgsRemoveMethods.size() + "\n");
- for (AnnotatedMethod<?> method : noArgsRemoveMethods)
- {
- buffer.append(++i + " - " + method.toString() + "\n");
- }
+ buffer.append(Strings.collectionToString("Desctructor methods: ", getDestructorMethods()));
+ buffer.append(Strings.collectionToString("Remove methods: ", getRemoveMethods()));
+ buffer.append(Strings.collectionToString("No-args remove methods: ", getNoArgsRemoveMethods()));
return buffer.toString();
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedItem.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedItem.java 2008-12-03 19:26:10 UTC (rev 396)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedItem.java 2008-12-03 22:49:55 UTC (rev 397)
@@ -161,10 +161,14 @@
private static final Annotation[] DEFAULT_BINDING_ARRAY = { new CurrentAnnotationLiteral() };
// The set of default binding types
private static final Set<Annotation> DEFAULT_BINDING = new HashSet<Annotation>(Arrays.asList(DEFAULT_BINDING_ARRAY));
-
+
// The set of meta-annotations to map
+ @SuppressWarnings("unchecked")
private static final Set<Class<? extends Annotation>> MAPPED_METAANNOTATIONS = new HashSet<Class<? extends Annotation>>(Arrays.asList(BindingType.class, DeploymentType.class, Stereotype.class, ScopeType.class));
-
+
+ // Cached string representation
+ private String toString;
+
/**
* Static helper method for building annotation map from an annotated element
*
@@ -191,7 +195,7 @@
}
return annotationMap;
}
-
+
/**
* Static helper method for getting the current parameter values from a list
* of annotated parameters.
@@ -294,7 +298,7 @@
*/
public Annotation[] getMetaAnnotationsAsArray(Class<? extends Annotation> metaAnnotationType)
{
- return getMetaAnnotations(metaAnnotationType).toArray(new Annotation[0]);
+ return getMetaAnnotations(metaAnnotationType).toArray(new Annotation[0]);
}
/**
@@ -416,19 +420,17 @@
@Override
public String toString()
{
+ if (toString != null)
+ {
+ return toString;
+ }
StringBuffer buffer = new StringBuffer();
- // buffer.append("AbstractAnnotatedItem:\n");
- // buffer.append("Annotations: " + getAnnotations().size() + "\n");
- // int i = 0;
- // for (Annotation annotation : getAnnotations())
- // {
- // buffer.append(++i + " - " + annotation.toString() + "\n");
- // }
- // buffer.append(annotationMap == null ? "" : (annotationMap.toString() +
- // "\n"));
- // buffer.append(metaAnnotationMap == null ? "" :
- // (metaAnnotationMap.toString()) + "\n");
- return buffer.toString();
+ buffer.append("AbstractAnnotatedItem:\n");
+ buffer.append(Strings.collectionToString("Annotations: ", getAnnotations()));
+ buffer.append(annotationMap == null ? "" : (annotationMap.toString() + "\n"));
+ buffer.append(metaAnnotationMap == null ? "" : (metaAnnotationMap.toString()) + "\n");
+ toString = buffer.toString();
+ return toString;
}
/**
@@ -505,7 +507,7 @@
return true;
}
}
-
+
protected abstract S getDelegate();
}
\ No newline at end of file
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedMember.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedMember.java 2008-12-03 19:26:10 UTC (rev 396)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedMember.java 2008-12-03 22:49:55 UTC (rev 397)
@@ -91,6 +91,9 @@
// The name of the member
private final String name;
+ // Cached string representation
+ private String toString;
+
/**
* Constructor
*
@@ -156,13 +159,18 @@
*/
public String toString()
{
+ if (toString != null)
+ {
+ return toString;
+ }
StringBuffer buffer = new StringBuffer();
- // buffer.append("AbstractAnnotatedMember:\n");
- // buffer.append(super.toString() + "\n");
- // buffer.append("Final: " + isFinal() + "\n");
- // buffer.append("Static: " + isStatic() + "\n");
- // buffer.append("Name: " + getName() + "\n");
- return buffer.toString();
+ buffer.append("AbstractAnnotatedMember:\n");
+ buffer.append(super.toString() + "\n");
+ buffer.append("Final: " + isFinal() + "\n");
+ buffer.append("Static: " + isStatic() + "\n");
+ buffer.append("Name: " + getName() + "\n");
+ toString = buffer.toString();
+ return toString;
}
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedType.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedType.java 2008-12-03 19:26:10 UTC (rev 396)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedType.java 2008-12-03 22:49:55 UTC (rev 397)
@@ -23,7 +23,7 @@
/**
* Represents an abstract annotated type
*
- * This class is immutable, and therefore threadsage
+ * This class is immutable, and therefore threadsafe
*
* @author Pete Muir
*
@@ -33,7 +33,11 @@
{
// The superclass abstraction of the type
private final AnnotatedClass<Object> superclass;
+ // The name of the type
private final String name;
+
+ // Cached string representation
+ private String toString;
/**
* Constructor
@@ -96,7 +100,6 @@
*
* @return The superclass abstraction
*/
- @SuppressWarnings("unchecked")
public AnnotatedClass<Object> getSuperclass()
{
return superclass;
@@ -109,14 +112,19 @@
*/
public String toString()
{
+ if (toString != null)
+ {
+ return toString;
+ }
StringBuffer buffer = new StringBuffer();
-// buffer.append("AbstractAnnotatedType:\n");
-// buffer.append(super.toString() + "\n");
-// buffer.append("Superclass: " + (superclass == null ? "" : superclass.toString()) + "\n");
-// buffer.append("Name: " + getName() + "\n");
-// buffer.append("Final: " + isFinal() + "\n");
-// buffer.append("Static: " + isStatic() + "\n");
- return buffer.toString();
+ buffer.append("AbstractAnnotatedType:\n");
+ buffer.append(super.toString() + "\n");
+ buffer.append("Superclass: " + (superclass == null ? "" : superclass.toString()) + "\n");
+ buffer.append("Name: " + getName() + "\n");
+ buffer.append("Final: " + isFinal() + "\n");
+ buffer.append("Static: " + isStatic() + "\n");
+ toString = buffer.toString();
+ return toString;
}
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedAnnotationImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedAnnotationImpl.java 2008-12-03 19:26:10 UTC (rev 396)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedAnnotationImpl.java 2008-12-03 22:49:55 UTC (rev 397)
@@ -94,6 +94,9 @@
// The set of abstracted members
private final Set<AnnotatedMethod<?>> members;
+ // Cached string representation
+ private String toString;
+
/**
* Constructor
*
@@ -177,20 +180,18 @@
*/
public String toString()
{
+ if (toString != null)
+ {
+ return toString;
+ }
StringBuffer buffer = new StringBuffer();
- // buffer.append("AnnotatedConstructorImpl:\n");
- // buffer.append(super.toString() + "\n");
- // buffer.append("Class: " + clazz.toString() + "\n");
- //
- // buffer.append("Members: " + getMembers().size() + "\n");
- // int i = 0;
- // for (AnnotatedMethod<?> member : getMembers())
- // {
- // buffer.append(++i + " - " + member.toString());
- // }
- // buffer.append(annotatedMembers == null ? "" :
- // (annotatedMembers.toString() + "\n"));
- return buffer.toString();
+ buffer.append("AnnotatedConstructorImpl:\n");
+ buffer.append(super.toString() + "\n");
+ buffer.append("Class: " + clazz.toString() + "\n");
+ buffer.append(Strings.collectionToString("Members: ", getMembers()));
+ buffer.append(annotatedMembers == null ? "" : (annotatedMembers.toString() + "\n"));
+ toString = buffer.toString();
+ return toString;
}
protected Class<T> getDelegate()
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedClassImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedClassImpl.java 2008-12-03 19:26:10 UTC (rev 396)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedClassImpl.java 2008-12-03 22:49:55 UTC (rev 397)
@@ -42,7 +42,7 @@
/**
* Represents an annotated class
*
- * This class is immutable, and thus threadsafe
+ * This class is immutable, and therefore threadsafe
*
* @author Pete Muir
*
@@ -204,14 +204,7 @@
@Override
public String toString()
{
- StringBuffer buffer = new StringBuffer();
- buffer.append("Annotation type -> constructor by arguments mappings: " + super.size() + "\n");
- int i = 0;
- for (Entry<List<Class<?>>, AnnotatedConstructor<T>> entry : delegate.entrySet())
- {
- buffer.append(++i + " - " + entry.getKey().toString() + ": " + entry.getValue().toString() + "\n");
- }
- return buffer.toString();
+ return Strings.mapToString("Annotation type -> constructor by arguments mappings: ", delegate);
}
}
@@ -239,6 +232,9 @@
// The map from class list to abstracted constructor
private final ConstructorsByArgumentMap constructorsByArgumentMap;
+ // Cached string representation
+ private String toString;
+
/**
* Constructor
*
@@ -249,6 +245,7 @@
* @param type The type of the class
* @param annotations The array of annotations on the class
*/
+ @SuppressWarnings("unchecked")
public AnnotatedClassImpl(Class<T> rawType, Type type, Annotation[] annotations)
{
super(buildAnnotationMap(annotations), rawType);
@@ -261,7 +258,7 @@
{
actualTypeArguments = new Type[0];
}
-
+
this.fields = new HashSet<AnnotatedField<Object>>();
this.annotatedFields = new AnnotatedFieldMap();
this.metaAnnotatedFields = new AnnotatedFieldMap();
@@ -273,7 +270,7 @@
{
field.setAccessible(true);
}
- AnnotatedField<Object> annotatedField = new AnnotatedFieldImpl<Object>(field, this);
+ AnnotatedField<Object> annotatedField = new AnnotatedFieldImpl<Object>(field, this);
this.fields.add(annotatedField);
for (Annotation annotation : annotatedField.getAnnotations())
{
@@ -283,10 +280,10 @@
this.metaAnnotatedFields.put(metaAnnotation.annotationType(), annotatedField);
}
}
-
+
}
}
-
+
this.constructors = new HashSet<AnnotatedConstructor<T>>();
this.constructorsByArgumentMap = new ConstructorsByArgumentMap();
this.annotatedConstructors = new AnnotatedConstructorMap();
@@ -299,7 +296,7 @@
}
this.constructors.add(annotatedConstructor);
this.constructorsByArgumentMap.put(Arrays.asList(constructor.getParameterTypes()), annotatedConstructor);
-
+
for (Annotation annotation : annotatedConstructor.getAnnotations())
{
if (!annotatedConstructors.containsKey(annotation.annotationType()))
@@ -309,7 +306,7 @@
annotatedConstructors.get(annotation.annotationType()).add(annotatedConstructor);
}
}
-
+
this.methods = new HashSet<AnnotatedMethod<Object>>();
this.annotatedMethods = new AnnotatedMethodMap();
for (Class<?> c = clazz; c != Object.class && c != null; c = c.getSuperclass())
@@ -320,7 +317,7 @@
{
method.setAccessible(true);
}
-
+
AnnotatedMethod<Object> annotatedMethod = new AnnotatedMethodImpl<Object>(method, this);
this.methods.add(annotatedMethod);
for (Annotation annotation : annotatedMethod.getAnnotations())
@@ -496,46 +493,25 @@
*/
public String toString()
{
+ if (toString != null)
+ {
+ return toString;
+ }
StringBuffer buffer = new StringBuffer();
- // buffer.append("AnnotatedConstructorImpl:\n");
- // buffer.append(super.toString() + "\n");
- // buffer.append("Actual type arguments: " + actualTypeArguments.length +
- // "\n");
- // int i = 0;
- // for (Type actualTypeArgument : actualTypeArguments)
- // {
- // buffer.append(++i + " - " + actualTypeArgument.toString());
- // }
- // buffer.append("Class: " + clazz.toString() + "\n");
- // buffer.append("Fields: " + getFields().size() + "\n");
- // i = 0;
- // for (AnnotatedField<Object> field : getFields())
- // {
- // buffer.append(++i + " - " + field.toString());
- // }
- // buffer.append("Methods: " + methods.size() + "\n");
- // i = 0;
- // for (AnnotatedMethod<Object> method : methods)
- // {
- // buffer.append(++i + " - " + method.toString());
- // }
- // buffer.append("Constructors: " + methods.size() + "\n");
- // i = 0;
- // for (AnnotatedConstructor<T> constructor : getConstructors())
- // {
- // buffer.append(++i + " - " + constructor.toString());
- // }
- // buffer.append(annotatedConstructors == null ? "" :
- // (annotatedConstructors.toString() + "\n"));
- // buffer.append(annotatedFields == null ? "" :
- // (annotatedFields.toString() + "\n"));
- // buffer.append(annotatedMethods == null ? "" :
- // (annotatedMethods.toString() + "\n"));
- // buffer.append(constructorsByArgumentMap == null ? "" :
- // (constructorsByArgumentMap.toString() + "\n"));
- // buffer.append(metaAnnotatedFields == null ? "" :
- // (metaAnnotatedFields.toString() + "\n"));
- return buffer.toString();
+ buffer.append("AnnotatedConstructorImpl:\n");
+ buffer.append(super.toString() + "\n");
+ buffer.append(Strings.collectionToString("Actual type arguments: ", Arrays.asList(getActualTypeArguments())));
+ buffer.append("Class: " + clazz.toString() + "\n");
+ buffer.append(Strings.collectionToString("Fields: ", getFields()));
+ buffer.append(Strings.collectionToString("Methods: ", methods));
+ buffer.append(Strings.collectionToString("Constructors: ", getConstructors()));
+ buffer.append(annotatedConstructors == null ? "" : (annotatedConstructors.toString() + "\n"));
+ buffer.append(annotatedFields == null ? "" : (annotatedFields.toString() + "\n"));
+ buffer.append(annotatedMethods == null ? "" : (annotatedMethods.toString() + "\n"));
+ buffer.append(constructorsByArgumentMap == null ? "" : (constructorsByArgumentMap.toString() + "\n"));
+ buffer.append(metaAnnotatedFields == null ? "" : (metaAnnotatedFields.toString() + "\n"));
+ toString = buffer.toString();
+ return toString;
}
}
\ No newline at end of file
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedConstructorImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedConstructorImpl.java 2008-12-03 19:26:10 UTC (rev 396)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedConstructorImpl.java 2008-12-03 22:49:55 UTC (rev 397)
@@ -22,6 +22,7 @@
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Type;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@@ -31,10 +32,13 @@
import org.jboss.webbeans.introspector.AnnotatedConstructor;
import org.jboss.webbeans.introspector.AnnotatedParameter;
import org.jboss.webbeans.introspector.AnnotatedType;
+import org.jboss.webbeans.util.Strings;
/**
* Represents an annotated constructor
*
+ * This class is immutable, and therefore threadsafe
+ *
* @author Pete Muir
*
* @param <T>
@@ -54,6 +58,9 @@
// The declaring class abstraction
private final AnnotatedType<T> declaringClass;
+ // Cached string representation
+ private String toString;
+
/**
* Constructor
*
@@ -62,12 +69,13 @@
* @param constructor The constructor method
* @param declaringClass The declaring class
*/
+ @SuppressWarnings("unchecked")
public AnnotatedConstructorImpl(Constructor<T> constructor, AnnotatedType<T> declaringClass)
{
super(buildAnnotationMap(constructor), constructor);
this.constructor = constructor;
this.declaringClass = declaringClass;
-
+
this.parameters = new ArrayList<AnnotatedParameter<Object>>();
annotatedParameters = new AnnotatedParameterMap();
for (int i = 0; i < constructor.getParameterTypes().length; i++)
@@ -77,7 +85,7 @@
Class<? extends Object> clazz = constructor.getParameterTypes()[i];
AnnotatedParameter<Object> parameter = new AnnotatedParameterImpl<Object>(constructor.getParameterAnnotations()[i], (Class<Object>) clazz);
parameters.add(parameter);
-
+
for (Annotation annotation : parameter.getAnnotations())
{
annotatedParameters.put(annotation.annotationType(), parameter);
@@ -88,7 +96,7 @@
Class<? extends Object> clazz = constructor.getParameterTypes()[i];
AnnotatedParameter<Object> parameter = new AnnotatedParameterImpl<Object>(new Annotation[0], (Class<Object>) clazz);
parameters.add(parameter);
-
+
for (Annotation annotation : parameter.getAnnotations())
{
annotatedParameters.put(annotation.annotationType(), parameter);
@@ -264,28 +272,22 @@
*/
public String toString()
{
+ if (toString != null)
+ {
+ return toString;
+ }
StringBuffer buffer = new StringBuffer();
- // buffer.append("AnnotatedConstructorImpl:\n");
- // buffer.append(super.toString() + "\n");
- // buffer.append("Actual type arguments: " + actualTypeArguments.length +
- // "\n");
- // int i = 0;
- // for (Type actualTypeArgument : actualTypeArguments)
- // {
- // buffer.append(++i + " - " + actualTypeArgument.toString());
- // }
- // buffer.append("Declaring class:\n");
- // buffer.append(declaringClass.toString() + "\n");
- // buffer.append("Constructor:\n");
- // buffer.append(constructor.toString() + "\n");
- // buffer.append("Parameters: " + getParameters().size() + "\n");
- // i = 0;
- // for (AnnotatedParameter<?> parameter : getParameters())
- // {
- // buffer.append(++i + " - " + parameter.toString());
- // }
- // buffer.append(annotatedParameters.toString() + "\n");
- return buffer.toString();
+ buffer.append("AnnotatedConstructorImpl:\n");
+ buffer.append(super.toString() + "\n");
+ buffer.append(Strings.collectionToString("Actual type arguments: ", Arrays.asList(getActualTypeArguments())));
+ buffer.append("Declaring class:\n");
+ buffer.append(declaringClass.getName() + "[ " + declaringClass.getType() + "]" + "\n");
+ buffer.append("Constructor:\n");
+ buffer.append(constructor.toString() + "\n");
+ buffer.append(Strings.collectionToString("Parameters: ", getParameters()));
+ buffer.append(annotatedParameters.toString() + "\n");
+ toString = buffer.toString();
+ return toString;
}
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedFieldImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedFieldImpl.java 2008-12-03 19:26:10 UTC (rev 396)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedFieldImpl.java 2008-12-03 22:49:55 UTC (rev 397)
@@ -20,16 +20,18 @@
import java.lang.reflect.Field;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
+import java.util.Arrays;
import org.jboss.webbeans.ManagerImpl;
import org.jboss.webbeans.introspector.AnnotatedField;
import org.jboss.webbeans.introspector.AnnotatedType;
import org.jboss.webbeans.util.Reflections;
+import org.jboss.webbeans.util.Strings;
/**
* Represents an annotated field
*
- * This class is immutable, and thus threadsafe
+ * This class is immutable, and therefore threadsafe
*
* @author Pete Muir
*
@@ -44,6 +46,9 @@
// The abstraction of the declaring class
private final AnnotatedType<?> declaringClass;
+ // Cached string representation
+ private String toString;
+
/**
* Constructor
*
@@ -113,7 +118,8 @@
* @param instance The instance to inject into
* @param manager The Web Beans manager
*
- * @see org.jboss.webbeans.introspector.AnnotatedField#inject(Object, ManagerImpl)
+ * @see org.jboss.webbeans.introspector.AnnotatedField#inject(Object,
+ * ManagerImpl)
*/
public void inject(Object instance, ManagerImpl manager)
{
@@ -151,19 +157,19 @@
*/
public String toString()
{
+ if (toString != null)
+ {
+ return toString;
+ }
StringBuffer buffer = new StringBuffer();
-// buffer.append("AnnotatedFieldImpl:\n");
-// buffer.append(super.toString() + "\n");
-// buffer.append("Actual type arguments: " + actualTypeArguments.length + "\n");
-// int i = 0;
-// for (Type actualTypeArgument : actualTypeArguments)
-// {
-// buffer.append(++i + " - " + actualTypeArgument.toString());
-// }
-// buffer.append("Declaring class:\n");
-// buffer.append(declaringClass.toString() + "\n");
-// buffer.append("Field: " + field + "\n");
- return buffer.toString();
+ buffer.append("AnnotatedFieldImpl:\n");
+ buffer.append(super.toString() + "\n");
+ buffer.append(Strings.collectionToString("Actual type arguments: ", Arrays.asList(getActualTypeArguments())));
+ buffer.append("Declaring class:\n");
+ buffer.append(declaringClass.getName() + "[ " + declaringClass.getType() + "]" + "\n");
+ buffer.append("Field: " + field + "\n");
+ toString = buffer.toString();
+ return toString;
}
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedItemImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedItemImpl.java 2008-12-03 19:26:10 UTC (rev 396)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedItemImpl.java 2008-12-03 22:49:55 UTC (rev 397)
@@ -19,11 +19,14 @@
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
+import java.util.Arrays;
+import org.jboss.webbeans.util.Strings;
+
/**
* Represents an annotated item
*
- * This class is immutable, and thus threadsafe
+ * This class is immutable, and therefore threadsafe
*
* @author Pete Muir
*
@@ -39,6 +42,9 @@
// The actual annotations
private final Annotation[] actualAnnotations;
+ // Cached string representation
+ private String toString;
+
/**
* Constructor
*
@@ -143,22 +149,17 @@
*/
public String toString()
{
+ if (toString != null)
+ {
+ return toString;
+ }
StringBuffer buffer = new StringBuffer();
-// buffer.append("AnnotatedItemImpl:\n");
-// buffer.append(super.toString() + "\n");
-// buffer.append("Actual type arguments: " + actualTypeArguments.length + "\n");
-// int i = 0;
-// for (Type actualTypeArgument : actualTypeArguments)
-// {
-// buffer.append(++i + " - " + actualTypeArgument.toString());
-// }
-// buffer.append("Actual annotations: " + actualAnnotations.length + "\n");
-// i = 0;
-// for (Annotation actualAnnotation : actualAnnotations)
-// {
-// buffer.append(++i + " - " + actualAnnotation.toString());
-// }
- return buffer.toString();
+ buffer.append("AnnotatedItemImpl:\n");
+ buffer.append(super.toString() + "\n");
+ buffer.append(Strings.collectionToString("Actual type arguments: ", Arrays.asList(getActualTypeArguments())));
+ buffer.append(Strings.collectionToString("Actual annotations: ", Arrays.asList(getActualAnnotations())));
+ toString = buffer.toString();
+ return toString;
}
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedMethodImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedMethodImpl.java 2008-12-03 19:26:10 UTC (rev 396)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedMethodImpl.java 2008-12-03 22:49:55 UTC (rev 397)
@@ -22,6 +22,7 @@
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@@ -30,11 +31,12 @@
import org.jboss.webbeans.introspector.AnnotatedParameter;
import org.jboss.webbeans.introspector.AnnotatedType;
import org.jboss.webbeans.util.Reflections;
+import org.jboss.webbeans.util.Strings;
/**
* Represents an annotated method
*
- * This class is immutable and thus threadsafe
+ * This class is immutable and therefore threadsafe
*
* @author Pete Muir
*
@@ -59,6 +61,9 @@
// The abstracted declaring class
private final AnnotatedType<?> declaringClass;
+ // Cached string representation
+ private String toString;
+
/**
* Constructor
*
@@ -68,6 +73,7 @@
* @param method The underlying method
* @param declaringClass The declaring class abstraction
*/
+ @SuppressWarnings("unchecked")
public AnnotatedMethodImpl(Method method, AnnotatedType<?> declaringClass)
{
super(buildAnnotationMap(method), method);
@@ -81,7 +87,7 @@
{
this.actualTypeArguments = new Type[0];
}
-
+
this.parameters = new ArrayList<AnnotatedParameter<Object>>();
this.annotatedParameters = new AnnotatedParameterMap();
for (int i = 0; i < method.getParameterTypes().length; i++)
@@ -107,7 +113,7 @@
}
}
}
-
+
String propertyName = Reflections.getPropertyName(getDelegate());
if (propertyName == null)
{
@@ -281,30 +287,23 @@
*/
public String toString()
{
+ if (toString != null)
+ {
+ return toString;
+ }
StringBuffer buffer = new StringBuffer();
- // buffer.append("AnnotatedMethodImpl:\n");
- // buffer.append(super.toString() + "\n");
- // buffer.append("Actual type arguments: " + actualTypeArguments.length +
- // "\n");
- // int i = 0;
- // for (Type actualTypeArgument : actualTypeArguments)
- // {
- // buffer.append(++i + " - " + actualTypeArgument.toString());
- // }
- // buffer.append(annotatedParameters == null ? "" :
- // (annotatedParameters.toString() + "\n"));
- // buffer.append("Declaring class:\n");
- // buffer.append(declaringClass.toString());
- // buffer.append("Method:\n");
- // buffer.append(method.toString());
- // buffer.append("Property name: " + propertyName + "\n");
- // i = 0;
- // buffer.append("Parameters: " + getParameters().size() + "\n");
- // for (AnnotatedParameter<?> parameter : parameters)
- // {
- // buffer.append(++i + " - " + parameter.toString() + "\n");
- // }
- return buffer.toString();
+ buffer.append("AnnotatedMethodImpl:\n");
+ buffer.append(super.toString() + "\n");
+ buffer.append(Strings.collectionToString("Actual type arguments: ", Arrays.asList(getActualTypeArguments())));
+ buffer.append(annotatedParameters == null ? "" : (annotatedParameters.toString() + "\n"));
+ buffer.append("Declaring class:\n");
+ buffer.append(declaringClass.getName() + "[ " + declaringClass.getType() + "]" + "\n");
+ buffer.append("Method:\n");
+ buffer.append(method.toString());
+ buffer.append("Property name: " + propertyName + "\n");
+ buffer.append(Strings.collectionToString("Parameters: ", getParameters()));
+ toString = buffer.toString();
+ return toString;
}
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedParameterImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedParameterImpl.java 2008-12-03 19:26:10 UTC (rev 396)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedParameterImpl.java 2008-12-03 22:49:55 UTC (rev 397)
@@ -19,16 +19,18 @@
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
+import java.util.Arrays;
import javax.webbeans.BindingType;
import org.jboss.webbeans.ManagerImpl;
import org.jboss.webbeans.introspector.AnnotatedParameter;
+import org.jboss.webbeans.util.Strings;
/**
* Represents a parameter
*
- * This class is immutable and thus threadsafe
+ * This class is immutable and therefore threadsafe
*
* @author Pete Muir
*
@@ -45,6 +47,9 @@
// The static state
private final boolean _static = false;
+ // Cached string representation
+ private String toString;
+
/**
* Constructor
*
@@ -149,19 +154,19 @@
*/
public String toString()
{
+ if (toString != null)
+ {
+ return toString;
+ }
StringBuffer buffer = new StringBuffer();
-// buffer.append("AnnotatedParameterImpl:\n");
-// buffer.append(super.toString() + "\n");
-// buffer.append("Type: " + type.toString() + "\n");
-// buffer.append("Final: " + _final + "\n");
-// buffer.append("Static: " + _static + "\n");
-// buffer.append("Actual type arguments: " + actualTypeArguments.length + "\n");
-// int i = 0;
-// for (Type actualTypeArgument : actualTypeArguments)
-// {
-// buffer.append(++i + " - " + actualTypeArgument.toString() + "\n");
-// }
- return buffer.toString();
+ buffer.append("AnnotatedParameterImpl:\n");
+ buffer.append(super.toString() + "\n");
+ buffer.append("Type: " + type.toString() + "\n");
+ buffer.append("Final: " + _final + "\n");
+ buffer.append("Static: " + _static + "\n");
+ buffer.append(Strings.collectionToString("Actual type arguments: ", Arrays.asList(getActualTypeArguments())));
+ toString = buffer.toString();
+ return toString;
}
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/BindingTypeModel.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/BindingTypeModel.java 2008-12-03 19:26:10 UTC (rev 396)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/BindingTypeModel.java 2008-12-03 22:49:55 UTC (rev 397)
@@ -26,6 +26,7 @@
import org.jboss.webbeans.introspector.AnnotatedMethod;
import org.jboss.webbeans.util.Reflections;
+import org.jboss.webbeans.util.Strings;
/**
*
@@ -157,12 +158,7 @@
buffer.append("BindingTypeModel:\n");
buffer.append(super.toString());
buffer.append("Hash code: " + hashCode);
- buffer.append("Non-binding types: " + nonBindingTypes.size());
- int i = 0;
- for (AnnotatedMethod<?> nonBindingType : getNonBindingTypes())
- {
- buffer.append(++i + " - " + nonBindingType.toString());
- }
+ buffer.append(Strings.collectionToString("Non-binding types: ", getNonBindingTypes()));
return buffer.toString();
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/StereotypeModel.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/StereotypeModel.java 2008-12-03 19:26:10 UTC (rev 396)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/StereotypeModel.java 2008-12-03 22:49:55 UTC (rev 397)
@@ -30,6 +30,8 @@
import javax.webbeans.ScopeType;
import javax.webbeans.Stereotype;
+import org.jboss.webbeans.util.Strings;
+
/**
* A meta model for a stereotype, allows us to cache a stereotype and to
* validate it
@@ -248,24 +250,9 @@
buffer.append("Default deployment type: " + getDefaultDeploymentType());
buffer.append("Default scope type: " + getDefaultScopeType());
buffer.append("Meta-annotation: " + getMetaAnnotation().toString());
- buffer.append("Interceptor bindings: " + getInterceptorBindings().size());
- int i = 0;
- for (Annotation annotation : getInterceptorBindings())
- {
- buffer.append(++i + " - " + annotation.toString());
- }
- buffer.append("Required types: " + getRequiredTypes().size());
- i = 0;
- for (Class<?> requiredType : getRequiredTypes())
- {
- buffer.append(++i + " - " + requiredType.toString());
- }
- buffer.append("Supported scopes: " + getSupportedScopes().size());
- i = 0;
- for (Class<?> supportedScope : getSupportedScopes())
- {
- buffer.append(++i + " - " + supportedScope.toString());
- }
+ buffer.append(Strings.collectionToString("Interceptor bindings: ", getInterceptorBindings()));
+ buffer.append(Strings.collectionToString("Required types: ", getRequiredTypes()));
+ buffer.append(Strings.collectionToString("Supported scopes: ", getSupportedScopes()));
return buffer.toString();
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Strings.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Strings.java 2008-12-03 19:26:10 UTC (rev 396)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Strings.java 2008-12-03 22:49:55 UTC (rev 397)
@@ -80,12 +80,17 @@
public static String mapToString(String header, Map<?, ?> map)
{
StringBuffer buffer = new StringBuffer();
+ if (map == null)
+ {
+ buffer.append(header + "null\n");
+ return buffer.toString();
+ }
buffer.append(header + "[" + map.size() + " entries]\n");
int i = 0;
for (Object key : map.keySet())
{
Object value = map.get(key);
- buffer.append(" #" + ++i + ": " + key.toString() + "->");
+ buffer.append(" #" + ++i + ": " + key.toString() + " -> ");
if (value instanceof Iterable)
{
buffer.append("\n");
@@ -102,6 +107,23 @@
return buffer.toString();
}
+ public static String collectionToString(String header, Collection<?> collection)
+ {
+ StringBuffer buffer = new StringBuffer();
+ if (collection == null)
+ {
+ buffer.append(header + "null\n");
+ return buffer.toString();
+ }
+ buffer.append(header + "[" + collection.size() + " entries]\n");
+ int i = 0;
+ for (Object item : collection)
+ {
+ buffer.append(" #" + ++i + ": " + item.toString() + "\n");
+ }
+ return buffer.toString();
+ }
+
public static void main(String[] args)
{
Map map = new HashMap<String, Collection<?>>();
More information about the weld-commits
mailing list