You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by mb...@apache.org on 2018/08/03 00:24:59 UTC
[commons-weaver] 03/03: code simplifications made possible with
Java 8; additional null-safe method override
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 <mb...@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();
+ }
}