Deprecate {String,UUID}Identifier
[yangtools.git] / common / concepts / src / main / java / org / opendaylight / yangtools / concepts / CompositeObjectRegistration.java
index c51a53dbf3bdf1990bac260901cfc7abff4886b5..f80f4850ff481fd3ce625903ff60ab572f0e0f53 100644 (file)
@@ -12,11 +12,16 @@ import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
 
+/**
+ * @deprecated This class does not have good semantics with regard to constituent registrations' lifecycle and should
+ *             not be used.
+ */
+@Deprecated
 public final class CompositeObjectRegistration<T> extends AbstractObjectRegistration<T> {
 
-    private final Set<Registration<? super T>> registrations;
+    private final Set<Registration> registrations;
 
-    public CompositeObjectRegistration(T instance, Collection<? extends Registration<? super T>> registrations) {
+    public CompositeObjectRegistration(final T instance, final Collection<? extends Registration> registrations) {
         super(instance);
         if (registrations == null) {
             throw new IllegalArgumentException();
@@ -26,7 +31,7 @@ public final class CompositeObjectRegistration<T> extends AbstractObjectRegistra
 
     @Override
     protected void removeRegistration() {
-        for (Registration<? super T> registration : registrations) {
+        for (Registration registration : registrations) {
             try {
                 registration.close();
             } catch (Exception e) {
@@ -35,39 +40,38 @@ public final class CompositeObjectRegistration<T> extends AbstractObjectRegistra
         }
     }
 
-    public static <T> CompositeObjectRegistrationBuilder<T> builderFor(T instance) {
+    public static <T> CompositeObjectRegistrationBuilder<T> builderFor(final T instance) {
         return new CompositeObjectRegistrationBuilder<>(instance);
     }
 
-    public static final class CompositeObjectRegistrationBuilder<T> implements //
-            Builder<CompositeObjectRegistration<T>> {
+    public static final class CompositeObjectRegistrationBuilder<T> implements Builder<CompositeObjectRegistration<T>> {
 
         private final T instance;
-        private final Set<Registration<? super T>> registrations;
+        private final Set<Registration> registrations;
 
-        public CompositeObjectRegistrationBuilder(T instance) {
+        public CompositeObjectRegistrationBuilder(final T instance) {
             this.instance = instance;
             registrations = new HashSet<>();
         }
 
-        public CompositeObjectRegistrationBuilder<T> add(Registration<? super T> registration) {
-            if (registration.getInstance() != instance) {
+        public CompositeObjectRegistrationBuilder<T> add(final ObjectRegistration<? super T> registration) {
+            if (!registration.getInstance().equals(instance)) {
                 throw new IllegalArgumentException("Instance must be same.");
             }
             registrations.add(registration);
             return this;
         }
 
-        public CompositeObjectRegistrationBuilder<T> remove(Registration<? super T> registration) {
-            if (registration.getInstance() != instance) {
+        public CompositeObjectRegistrationBuilder<T> remove(final ObjectRegistration<? super T> registration) {
+            if (!registration.getInstance().equals(instance)) {
                 throw new IllegalArgumentException("Instance must be same.");
             }
             registrations.remove(registration);
             return this;
         }
-        
+
         @Override
-        public CompositeObjectRegistration<T> toInstance() {
+        public CompositeObjectRegistration<T> build() {
             return new CompositeObjectRegistration<>(instance, registrations);
         }
     }