diff --git a/apidocs/allclasses-index.html b/apidocs/allclasses-index.html index 5a216cc..51ce1a3 100644 --- a/apidocs/allclasses-index.html +++ b/apidocs/allclasses-index.html @@ -1,11 +1,11 @@
- -AutoCloseable
pairing of an instance that can be destroyed with a Instance.Destructor
that can destroy it
and an AutoCloseable
that can release its dependent objects when needed.Instance<I>
void
destroy(I i,
+destroy(I i,
AutoCloseable acr,
- org.microbean.bean.ReferenceSelector r)
+ org.microbean.bean.Creation<I> c,
+ org.microbean.bean.ReferenceSelector rs)
Copyright © 2023–2023, microBean™. All rights reserved.
+Copyright © 2023–2024, microBean™. All rights reserved.
diff --git a/apidocs/org.microbean.scopelet/org/microbean/scopelet/Instance.html b/apidocs/org.microbean.scopelet/org/microbean/scopelet/Instance.html index 3acb9cf..8164821 100644 --- a/apidocs/org.microbean.scopelet/org/microbean/scopelet/Instance.html +++ b/apidocs/org.microbean.scopelet/org/microbean/scopelet/Instance.html @@ -1,11 +1,11 @@ - -AutoCloseable
, Supplier<I>
AutoCloseable
pairing of an instance that can be destroyed with a Instance.Destructor
that can destroy it
@@ -136,9 +136,9 @@ Instance(I object,
+Instance(I object,
Instance.Destructor<I> destroyer,
- AutoCloseable releaser,
+ org.microbean.bean.Creation<I> creation,
org.microbean.bean.ReferenceSelector referenceSelector)
close
in interface AutoCloseable
AutoCloseable
, Constable
, org.microbean.bean.Factory<M>
, org.microbean.scope.ScopeMember
AutoCloseable
, Constable
, org.microbean.bean.Aggregate
, org.microbean.bean.Factory<M>
, org.microbean.scope.ScopeMember
describeConstable, destroy
dependencies, describeConstable, destroy
AutoCloseable
, Constable
, org.microbean.bean.Factory<NoneScopelet>
, org.microbean.scope.ScopeMember
AutoCloseable
, Constable
, org.microbean.bean.Aggregate
, org.microbean.bean.Factory<NoneScopelet>
, org.microbean.scope.ScopeMember
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
destroy
dependencies, destroy
AutoCloseable
, Constable
, org.microbean.bean.Factory<S>
, org.microbean.scope.ScopeMember
AutoCloseable
, Constable
, org.microbean.bean.Aggregate
, org.microbean.bean.Factory<S>
, org.microbean.scope.ScopeMember
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
describeConstable, destroy
dependencies, describeConstable, destroy
AutoCloseable
, Constable
, org.microbean.bean.Factory<SingletonScopelet>
, org.microbean.scope.ScopeMember
AutoCloseable
, Constable
, org.microbean.bean.Aggregate
, org.microbean.bean.Factory<SingletonScopelet>
, org.microbean.scope.ScopeMember
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
destroy
dependencies, destroy
Instance(I object,
+Instance(I object,
Instance.Destructor<I> destroyer,
- AutoCloseable releaser,
+ org.microbean.bean.Creation<I> creation,
org.microbean.bean.ReferenceSelector referenceSelector)
Copyright © 2023–2023, microBean™. All rights reserved.
+Copyright © 2023–2024, microBean™. All rights reserved.
diff --git a/apidocs/org.microbean.scopelet/org/microbean/scopelet/class-use/Instance.html b/apidocs/org.microbean.scopelet/org/microbean/scopelet/class-use/Instance.html index 2de3450..8af2e84 100644 --- a/apidocs/org.microbean.scopelet/org/microbean/scopelet/class-use/Instance.html +++ b/apidocs/org.microbean.scopelet/org/microbean/scopelet/class-use/Instance.html @@ -1,11 +1,11 @@ - -Copyright © 2023–2023, microBean™. All rights reserved.
+Copyright © 2023–2024, microBean™. All rights reserved.
diff --git a/apidocs/org.microbean.scopelet/org/microbean/scopelet/class-use/NoneScopelet.html b/apidocs/org.microbean.scopelet/org/microbean/scopelet/class-use/NoneScopelet.html index 19c3f9f..4330f42 100644 --- a/apidocs/org.microbean.scopelet/org/microbean/scopelet/class-use/NoneScopelet.html +++ b/apidocs/org.microbean.scopelet/org/microbean/scopelet/class-use/NoneScopelet.html @@ -1,11 +1,11 @@ - -Copyright © 2023–2023, microBean™. All rights reserved.
+Copyright © 2023–2024, microBean™. All rights reserved.
diff --git a/apidocs/org.microbean.scopelet/org/microbean/scopelet/class-use/Scopelet.html b/apidocs/org.microbean.scopelet/org/microbean/scopelet/class-use/Scopelet.html index d659fc6..1f3d979 100644 --- a/apidocs/org.microbean.scopelet/org/microbean/scopelet/class-use/Scopelet.html +++ b/apidocs/org.microbean.scopelet/org/microbean/scopelet/class-use/Scopelet.html @@ -1,11 +1,11 @@ - -Copyright © 2023–2023, microBean™. All rights reserved.
+Copyright © 2023–2024, microBean™. All rights reserved.
diff --git a/apidocs/org.microbean.scopelet/org/microbean/scopelet/class-use/SingletonScopelet.html b/apidocs/org.microbean.scopelet/org/microbean/scopelet/class-use/SingletonScopelet.html index f67297a..885ae3d 100644 --- a/apidocs/org.microbean.scopelet/org/microbean/scopelet/class-use/SingletonScopelet.html +++ b/apidocs/org.microbean.scopelet/org/microbean/scopelet/class-use/SingletonScopelet.html @@ -1,11 +1,11 @@ - -Copyright © 2023–2023, microBean™. All rights reserved.
+Copyright © 2023–2024, microBean™. All rights reserved.
diff --git a/apidocs/org.microbean.scopelet/org/microbean/scopelet/class-use/TooManyActiveScopeletsException.html b/apidocs/org.microbean.scopelet/org/microbean/scopelet/class-use/TooManyActiveScopeletsException.html index 3aaa014..b0e150e 100644 --- a/apidocs/org.microbean.scopelet/org/microbean/scopelet/class-use/TooManyActiveScopeletsException.html +++ b/apidocs/org.microbean.scopelet/org/microbean/scopelet/class-use/TooManyActiveScopeletsException.html @@ -1,11 +1,11 @@ - -Copyright © 2023–2023, microBean™. All rights reserved.
+Copyright © 2023–2024, microBean™. All rights reserved.
diff --git a/apidocs/src-html/org.microbean.scopelet/org/microbean/scopelet/Instance.Destructor.html b/apidocs/src-html/org.microbean.scopelet/org/microbean/scopelet/Instance.Destructor.html index 6a410a5..0e21d89 100644 --- a/apidocs/src-html/org.microbean.scopelet/org/microbean/scopelet/Instance.Destructor.html +++ b/apidocs/src-html/org.microbean.scopelet/org/microbean/scopelet/Instance.Destructor.html @@ -14,7 +14,7 @@001/* -*- mode: Java; c-basic-offset: 2; indent-tabs-mode: nil; coding: utf-8-unix -*- 002 * -003 * Copyright © 2023 microBean™. +003 * Copyright © 2023–2024 microBean™. 004 * 005 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 006 * the License. You may obtain a copy of the License at @@ -34,129 +34,142 @@ 020 021import java.util.function.Supplier; 022 -023import org.microbean.bean.ReferenceSelector; -024 -025/** -026 * An {@link AutoCloseable} pairing of an instance that can be destroyed with a {@link Destructor} that can destroy it -027 * and an {@link AutoCloseable} that can release its dependent objects when needed. -028 * -029 * @param <I> the type of the instance -030 * -031 * @author <a href="https://about.me/lairdnelson" target="_parent">Laird Nelson</a> -032 */ -033public final class Instance<I> implements AutoCloseable, Supplier<I> { -034 -035 private static final VarHandle CLOSED; -036 -037 static { -038 try { -039 CLOSED = MethodHandles.lookup().findVarHandle(Instance.class, "closed", boolean.class); -040 } catch (final NoSuchFieldException | IllegalAccessException reflectiveOperationException) { -041 throw (Error)new ExceptionInInitializerError(reflectiveOperationException.getMessage()).initCause(reflectiveOperationException); -042 } -043 } -044 -045 private final I object; -046 -047 private final AutoCloseable releaser; -048 -049 private final Destructor<I> destroyer; -050 -051 private final ReferenceSelector referenceSelector; -052 -053 private volatile boolean closed; -054 -055 public Instance(final I object, -056 final Destructor<I> destroyer, -057 final AutoCloseable releaser, -058 final ReferenceSelector referenceSelector) { -059 super(); -060 this.object = object; -061 this.releaser = releaser; -062 this.destroyer = destroyer; -063 this.referenceSelector = referenceSelector; -064 } -065 -066 @Override -067 public final I get() { -068 if (this.closed()) { -069 throw new IllegalStateException("closed"); -070 } -071 return this.object; -072 } -073 -074 @Override -075 public final void close() { -076 if (CLOSED.compareAndSet(this, false, true)) { // volatile read/write -077 RuntimeException t = null; -078 try { -079 if (this.destroyer != null) { -080 this.destroyer.destroy(this.object, this.releaser, this.referenceSelector); -081 } -082 } catch (final RuntimeException e) { -083 t = e; -084 } finally { -085 if (this.releaser != null) { -086 try { -087 this.releaser.close(); -088 } catch (final RuntimeException | Error e) { -089 if (t == null) { -090 throw e; -091 } -092 t.addSuppressed(e); -093 } catch (final Exception e) { -094 if (e instanceof InterruptedException) { -095 Thread.currentThread().interrupt(); -096 } -097 if (t == null) { -098 throw new ScopeletException(e.getMessage(), e); -099 } -100 t.addSuppressed(e); -101 } -102 } -103 } -104 if (t != null) { -105 throw t; -106 } -107 } -108 } -109 -110 public final boolean closed() { -111 return this.closed; // volatile read -112 } -113 -114 @Override -115 public final int hashCode() { -116 // We don't want "closedness" to factor in here because it isn't part of equals(). But we want to use the results -117 // of get(). Fortunately, that method is final. So we can just use direct field access. -118 return this.object.hashCode(); -119 } -120 -121 @Override -122 public final boolean equals(final Object other) { -123 if (other == this) { -124 return true; -125 } else if (other != null && this.getClass() == other.getClass()) { -126 // We don't want "closedness" to factor in here because it isn't part of hashCode(). But we want to use the -127 // results of get(). Fortunately, that method is final. So we can just use direct field access. -128 return Objects.equals(this.object, ((Instance<?>)other).object); -129 } else { -130 return false; -131 } +023import org.microbean.bean.Creation; +024import org.microbean.bean.ReferenceSelector; +025 +026/** +027 * An {@link AutoCloseable} pairing of an instance that can be destroyed with a {@link Destructor} that can destroy it +028 * and an {@link AutoCloseable} that can release its dependent objects when needed. +029 * +030 * @param <I> the type of the instance +031 * +032 * @author <a href="https://about.me/lairdnelson" target="_parent">Laird Nelson</a> +033 */ +034public final class Instance<I> implements AutoCloseable, Supplier<I> { +035 +036 private static final VarHandle CLOSED; +037 +038 static { +039 try { +040 CLOSED = MethodHandles.lookup().findVarHandle(Instance.class, "closed", boolean.class); +041 } catch (final NoSuchFieldException | IllegalAccessException reflectiveOperationException) { +042 throw (Error)new ExceptionInInitializerError(reflectiveOperationException.getMessage()).initCause(reflectiveOperationException); +043 } +044 } +045 +046 private final I object; +047 +048 private final Destructor<I> destroyer; +049 +050 private final AutoCloseable releaser; +051 +052 private final Creation<I> creation; +053 +054 private final ReferenceSelector referenceSelector; +055 +056 private volatile boolean closed; +057 +058 public Instance(final I object, +059 final Destructor<I> destroyer, +060 final Creation<I> creation, +061 final ReferenceSelector referenceSelector) { +062 this(object, destroyer, creation, creation, referenceSelector); +063 } +064 +065 private Instance(final I object, +066 final Destructor<I> destroyer, +067 final AutoCloseable releaser, // often the same object as creation +068 final Creation<I> creation, // often the same object as releaser +069 final ReferenceSelector referenceSelector) { +070 super(); +071 // All of these things are nullable on purpose. +072 this.object = object; +073 this.releaser = releaser; +074 this.destroyer = destroyer; +075 this.creation = creation; +076 this.referenceSelector = referenceSelector; +077 } +078 +079 @Override +080 public final I get() { +081 if (this.closed()) { +082 throw new IllegalStateException("closed"); +083 } +084 return this.object; +085 } +086 +087 @Override +088 public final void close() { +089 if (CLOSED.compareAndSet(this, false, true)) { // volatile read/write +090 RuntimeException t = null; +091 try { +092 if (this.destroyer != null) { +093 this.destroyer.destroy(this.object, this.releaser, this.creation, this.referenceSelector); +094 } +095 } catch (final RuntimeException e) { +096 t = e; +097 } finally { +098 if (this.releaser != null) { +099 try { +100 this.releaser.close(); +101 } catch (final RuntimeException | Error e) { +102 if (t == null) { +103 throw e; +104 } +105 t.addSuppressed(e); +106 } catch (final Exception e) { +107 if (e instanceof InterruptedException) { +108 Thread.currentThread().interrupt(); +109 } +110 if (t == null) { +111 throw new ScopeletException(e.getMessage(), e); +112 } +113 t.addSuppressed(e); +114 } +115 } +116 } +117 if (t != null) { +118 throw t; +119 } +120 } +121 } +122 +123 public final boolean closed() { +124 return this.closed; // volatile read +125 } +126 +127 @Override +128 public final int hashCode() { +129 // We don't want "closedness" to factor in here because it isn't part of equals(). But we want to use the results +130 // of get(). Fortunately, that method is final. So we can just use direct field access. +131 return this.object.hashCode(); 132 } 133 134 @Override -135 public final String toString() { -136 return String.valueOf(this.get()); -137 } -138 -139 public static interface Destructor<I> { -140 -141 public void destroy(final I i, final AutoCloseable acr, final ReferenceSelector r); -142 -143 } -144 -145} +135 public final boolean equals(final Object other) { +136 if (other == this) { +137 return true; +138 } else if (other != null && this.getClass() == other.getClass()) { +139 // We don't want "closedness" to factor in here because it isn't part of hashCode(). But we want to use the +140 // results of get(). Fortunately, that method is final. So we can just use direct field access. +141 return Objects.equals(this.object, ((Instance<?>)other).object); +142 } else { +143 return false; +144 } +145 } +146 +147 @Override +148 public final String toString() { +149 return String.valueOf(this.get()); +150 } +151 +152 public static interface Destructor<I> { +153 +154 public void destroy(final I i, final AutoCloseable acr, final Creation<I> c, final ReferenceSelector rs); +155 +156 } +157 +158} diff --git a/apidocs/src-html/org.microbean.scopelet/org/microbean/scopelet/Instance.html b/apidocs/src-html/org.microbean.scopelet/org/microbean/scopelet/Instance.html index 1d2d80e..f0b8321 100644 --- a/apidocs/src-html/org.microbean.scopelet/org/microbean/scopelet/Instance.html +++ b/apidocs/src-html/org.microbean.scopelet/org/microbean/scopelet/Instance.html @@ -14,7 +14,7 @@001/* -*- mode: Java; c-basic-offset: 2; indent-tabs-mode: nil; coding: utf-8-unix -*- 002 * -003 * Copyright © 2023 microBean™. +003 * Copyright © 2023–2024 microBean™. 004 * 005 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 006 * the License. You may obtain a copy of the License at @@ -34,129 +34,142 @@ 020 021import java.util.function.Supplier; 022 -023import org.microbean.bean.ReferenceSelector; -024 -025/** -026 * An {@link AutoCloseable} pairing of an instance that can be destroyed with a {@link Destructor} that can destroy it -027 * and an {@link AutoCloseable} that can release its dependent objects when needed. -028 * -029 * @param <I> the type of the instance -030 * -031 * @author <a href="https://about.me/lairdnelson" target="_parent">Laird Nelson</a> -032 */ -033public final class Instance<I> implements AutoCloseable, Supplier<I> { -034 -035 private static final VarHandle CLOSED; -036 -037 static { -038 try { -039 CLOSED = MethodHandles.lookup().findVarHandle(Instance.class, "closed", boolean.class); -040 } catch (final NoSuchFieldException | IllegalAccessException reflectiveOperationException) { -041 throw (Error)new ExceptionInInitializerError(reflectiveOperationException.getMessage()).initCause(reflectiveOperationException); -042 } -043 } -044 -045 private final I object; -046 -047 private final AutoCloseable releaser; -048 -049 private final Destructor<I> destroyer; -050 -051 private final ReferenceSelector referenceSelector; -052 -053 private volatile boolean closed; -054 -055 public Instance(final I object, -056 final Destructor<I> destroyer, -057 final AutoCloseable releaser, -058 final ReferenceSelector referenceSelector) { -059 super(); -060 this.object = object; -061 this.releaser = releaser; -062 this.destroyer = destroyer; -063 this.referenceSelector = referenceSelector; -064 } -065 -066 @Override -067 public final I get() { -068 if (this.closed()) { -069 throw new IllegalStateException("closed"); -070 } -071 return this.object; -072 } -073 -074 @Override -075 public final void close() { -076 if (CLOSED.compareAndSet(this, false, true)) { // volatile read/write -077 RuntimeException t = null; -078 try { -079 if (this.destroyer != null) { -080 this.destroyer.destroy(this.object, this.releaser, this.referenceSelector); -081 } -082 } catch (final RuntimeException e) { -083 t = e; -084 } finally { -085 if (this.releaser != null) { -086 try { -087 this.releaser.close(); -088 } catch (final RuntimeException | Error e) { -089 if (t == null) { -090 throw e; -091 } -092 t.addSuppressed(e); -093 } catch (final Exception e) { -094 if (e instanceof InterruptedException) { -095 Thread.currentThread().interrupt(); -096 } -097 if (t == null) { -098 throw new ScopeletException(e.getMessage(), e); -099 } -100 t.addSuppressed(e); -101 } -102 } -103 } -104 if (t != null) { -105 throw t; -106 } -107 } -108 } -109 -110 public final boolean closed() { -111 return this.closed; // volatile read -112 } -113 -114 @Override -115 public final int hashCode() { -116 // We don't want "closedness" to factor in here because it isn't part of equals(). But we want to use the results -117 // of get(). Fortunately, that method is final. So we can just use direct field access. -118 return this.object.hashCode(); -119 } -120 -121 @Override -122 public final boolean equals(final Object other) { -123 if (other == this) { -124 return true; -125 } else if (other != null && this.getClass() == other.getClass()) { -126 // We don't want "closedness" to factor in here because it isn't part of hashCode(). But we want to use the -127 // results of get(). Fortunately, that method is final. So we can just use direct field access. -128 return Objects.equals(this.object, ((Instance<?>)other).object); -129 } else { -130 return false; -131 } +023import org.microbean.bean.Creation; +024import org.microbean.bean.ReferenceSelector; +025 +026/** +027 * An {@link AutoCloseable} pairing of an instance that can be destroyed with a {@link Destructor} that can destroy it +028 * and an {@link AutoCloseable} that can release its dependent objects when needed. +029 * +030 * @param <I> the type of the instance +031 * +032 * @author <a href="https://about.me/lairdnelson" target="_parent">Laird Nelson</a> +033 */ +034public final class Instance<I> implements AutoCloseable, Supplier<I> { +035 +036 private static final VarHandle CLOSED; +037 +038 static { +039 try { +040 CLOSED = MethodHandles.lookup().findVarHandle(Instance.class, "closed", boolean.class); +041 } catch (final NoSuchFieldException | IllegalAccessException reflectiveOperationException) { +042 throw (Error)new ExceptionInInitializerError(reflectiveOperationException.getMessage()).initCause(reflectiveOperationException); +043 } +044 } +045 +046 private final I object; +047 +048 private final Destructor<I> destroyer; +049 +050 private final AutoCloseable releaser; +051 +052 private final Creation<I> creation; +053 +054 private final ReferenceSelector referenceSelector; +055 +056 private volatile boolean closed; +057 +058 public Instance(final I object, +059 final Destructor<I> destroyer, +060 final Creation<I> creation, +061 final ReferenceSelector referenceSelector) { +062 this(object, destroyer, creation, creation, referenceSelector); +063 } +064 +065 private Instance(final I object, +066 final Destructor<I> destroyer, +067 final AutoCloseable releaser, // often the same object as creation +068 final Creation<I> creation, // often the same object as releaser +069 final ReferenceSelector referenceSelector) { +070 super(); +071 // All of these things are nullable on purpose. +072 this.object = object; +073 this.releaser = releaser; +074 this.destroyer = destroyer; +075 this.creation = creation; +076 this.referenceSelector = referenceSelector; +077 } +078 +079 @Override +080 public final I get() { +081 if (this.closed()) { +082 throw new IllegalStateException("closed"); +083 } +084 return this.object; +085 } +086 +087 @Override +088 public final void close() { +089 if (CLOSED.compareAndSet(this, false, true)) { // volatile read/write +090 RuntimeException t = null; +091 try { +092 if (this.destroyer != null) { +093 this.destroyer.destroy(this.object, this.releaser, this.creation, this.referenceSelector); +094 } +095 } catch (final RuntimeException e) { +096 t = e; +097 } finally { +098 if (this.releaser != null) { +099 try { +100 this.releaser.close(); +101 } catch (final RuntimeException | Error e) { +102 if (t == null) { +103 throw e; +104 } +105 t.addSuppressed(e); +106 } catch (final Exception e) { +107 if (e instanceof InterruptedException) { +108 Thread.currentThread().interrupt(); +109 } +110 if (t == null) { +111 throw new ScopeletException(e.getMessage(), e); +112 } +113 t.addSuppressed(e); +114 } +115 } +116 } +117 if (t != null) { +118 throw t; +119 } +120 } +121 } +122 +123 public final boolean closed() { +124 return this.closed; // volatile read +125 } +126 +127 @Override +128 public final int hashCode() { +129 // We don't want "closedness" to factor in here because it isn't part of equals(). But we want to use the results +130 // of get(). Fortunately, that method is final. So we can just use direct field access. +131 return this.object.hashCode(); 132 } 133 134 @Override -135 public final String toString() { -136 return String.valueOf(this.get()); -137 } -138 -139 public static interface Destructor<I> { -140 -141 public void destroy(final I i, final AutoCloseable acr, final ReferenceSelector r); -142 -143 } -144 -145} +135 public final boolean equals(final Object other) { +136 if (other == this) { +137 return true; +138 } else if (other != null && this.getClass() == other.getClass()) { +139 // We don't want "closedness" to factor in here because it isn't part of hashCode(). But we want to use the +140 // results of get(). Fortunately, that method is final. So we can just use direct field access. +141 return Objects.equals(this.object, ((Instance<?>)other).object); +142 } else { +143 return false; +144 } +145 } +146 +147 @Override +148 public final String toString() { +149 return String.valueOf(this.get()); +150 } +151 +152 public static interface Destructor<I> { +153 +154 public void destroy(final I i, final AutoCloseable acr, final Creation<I> c, final ReferenceSelector rs); +155 +156 } +157 +158} diff --git a/apidocs/src-html/org.microbean.scopelet/org/microbean/scopelet/NoneScopelet.html b/apidocs/src-html/org.microbean.scopelet/org/microbean/scopelet/NoneScopelet.html index b31beda..aeca73b 100644 --- a/apidocs/src-html/org.microbean.scopelet/org/microbean/scopelet/NoneScopelet.html +++ b/apidocs/src-html/org.microbean.scopelet/org/microbean/scopelet/NoneScopelet.html @@ -14,7 +14,7 @@001/* -*- mode: Java; c-basic-offset: 2; indent-tabs-mode: nil; coding: utf-8-unix -*- 002 * -003 * Copyright © 2023 microBean™. +003 * Copyright © 2023–2024 microBean™. 004 * 005 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 006 * the License. You may obtain a copy of the License at @@ -97,7 +97,7 @@ 083 final I returnValue = factory.create(c, r); 084 if (factory.destroys()) { 085 if (useDisposableReferences) { -086 new DisposableReference<>(returnValue, referent -> factory.destroy(referent, c, r)); +086 new DisposableReference<>(returnValue, referent -> factory.destroy(referent, c, c, r)); 087 } else if (c instanceof AutoCloseableRegistry acr) { 088 acr.register(new Instance<>(returnValue, factory::destroy, c, r)); 089 } diff --git a/checkstyle.html b/checkstyle.html index 75da6ff..2273470 100644 --- a/checkstyle.html +++ b/checkstyle.html @@ -1,6 +1,6 @@ @@ -27,8 +27,8 @@ @@ -106,7 +106,7 @@Files
org/microbean/scopelet/NoneScopelet.java 0 0 -3 +4 org/microbean/scopelet/Scopelet.java 0 @@ -126,7 +126,7 @@Files
org/microbean/scopelet/TooManyActiveScopeletsException.java 0 0 -6 + 5 Rules
+ 154 org/microbean/scopelet/MapBackedScopelet.java
@@ -261,16 +261,22 @@ org/microbean/s
+ Error
javadoc +JavadocPackage +Missing package-info.java file. +1 + -+ Error
javadoc MissingJavadocType Missing a Javadoc comment. 41 + - Error
javadoc JavadocVariable Missing a Javadoc comment. 43 + Error
javadoc MissingJavadocMethod @@ -419,34 +425,28 @@
- Error
javadoc -JavadocPackage -Missing package-info.java file. -1 - -- Error
javadoc MissingJavadocType Missing a Javadoc comment. 16 + - Error
javadoc MissingJavadocMethod Missing a Javadoc comment. 20 + - Error
javadoc MissingJavadocMethod Missing a Javadoc comment. 24 + - Error
javadoc MissingJavadocMethod Missing a Javadoc comment. 28 + Error
javadoc MissingJavadocMethod @@ -459,7 +459,7 @@
test
@@ -223,7 +223,7 @@Project Dependency Graph
Dependency Tree
-
- org.microbean:microbean-scopelet:jar:0.0.1