This is an automated email from the ASF dual-hosted git repository. mbenson pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-weaver.git
commit 74d1f65274f5c47e4b7ff554df5ad23bcd9a5992 Author: Matt Benson <mben...@apache.org> AuthorDate: Thu Aug 2 19:24:53 2018 -0500 code simplifications made possible with Java 8; additional null-safe method override --- .../commons/weaver/model/WeavablePackage.java | 26 +++++++++++++--------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/processor/src/main/java/org/apache/commons/weaver/model/WeavablePackage.java b/processor/src/main/java/org/apache/commons/weaver/model/WeavablePackage.java index e789a5f..fe324f4 100644 --- a/processor/src/main/java/org/apache/commons/weaver/model/WeavablePackage.java +++ b/processor/src/main/java/org/apache/commons/weaver/model/WeavablePackage.java @@ -27,7 +27,8 @@ import java.util.concurrent.ConcurrentSkipListMap; * {@link Weavable} {@link Package}. */ public class WeavablePackage extends Weavable<WeavablePackage, Package> { - private static final Comparator<WeavablePackage> CMP = Comparator.nullsFirst(Comparator.comparing(WeavablePackage::getTarget, Comparator.nullsFirst(Comparator.comparing(Package::getName)))); + private static final Comparator<WeavablePackage> CMP = Comparator.nullsFirst(Comparator + .comparing(WeavablePackage::getTarget, Comparator.nullsFirst(Comparator.comparing(Package::getName)))); private final ConcurrentNavigableMap<String, WeavableClass<?>> clazzes = new ConcurrentSkipListMap<>(); @@ -45,17 +46,9 @@ public class WeavablePackage extends Weavable<WeavablePackage, Package> { * @param <T> generic type of {@code cls} * @return {@link WeavableClass} */ + @SuppressWarnings("unchecked") public synchronized <T> WeavableClass<T> getWeavable(final Class<T> cls) { - final String key = cls.getName(); - if (clazzes.containsKey(key)) { - @SuppressWarnings("unchecked") - final WeavableClass<T> result = (WeavableClass<T>) clazzes.get(key); - return result; - } - final WeavableClass<T> result = new WeavableClass<>(cls, this); - @SuppressWarnings("unchecked") - final WeavableClass<T> faster = (WeavableClass<T>) clazzes.putIfAbsent(key, result); - return faster == null ? result : faster; + return (WeavableClass<T>) clazzes.computeIfAbsent(cls.getName(), k -> new WeavableClass<>(cls, this)); } /** @@ -75,4 +68,15 @@ public class WeavablePackage extends Weavable<WeavablePackage, Package> { public int compareTo(final WeavablePackage arg0) { return CMP.compare(this, arg0); } + + /** + * {@inheritDoc} + */ + @Override + public String toString() { + if (getTarget() == null) { + return "Weavable default package"; + } + return super.toString(); + } }