(no commit message)
[utils] / system / general / src / main / java / org / wamblee / system / core / AbstractComponent.java
index 38df3bc4c9bc297874834eaf1953fd3083e8962d..31e50ed58ad251bf90a1cd8afdffde7656aadf89 100644 (file)
@@ -17,6 +17,7 @@ package org.wamblee.system.core;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
@@ -35,8 +36,8 @@ public abstract class AbstractComponent<Type> implements Component<Type> {
 
        private String _context;
        private String _name;
-       private ReadWriteProvidedInterfaces _provided;
-       private ReadWriteRequiredInterfaces _required;
+       private List<ProvidedInterface> _provided;
+       private List<RequiredInterface> _required;
 
        /**
         * Constructs the subsystem.
@@ -53,8 +54,10 @@ public abstract class AbstractComponent<Type> implements Component<Type> {
                _remaining = new ThreadLocal<List<ProvidedInterface>>();
                _context = null;
                _name = aName;
-               _provided = new ReadWriteProvidedInterfaces(aProvided);
-               _required = new ReadWriteRequiredInterfaces(aRequired);
+               _provided = new ArrayList<ProvidedInterface>();
+               _provided.addAll(Arrays.asList(aProvided));
+               _required = new ArrayList<RequiredInterface>(); 
+               _required.addAll(Arrays.asList(aRequired));
        }
        
        protected AbstractComponent(String aName) {
@@ -100,12 +103,12 @@ public abstract class AbstractComponent<Type> implements Component<Type> {
 
        @Override
        public final ProvidedInterfaces getProvidedInterfaces() {
-               return _provided.readOnlyView();
+               return new ProvidedInterfaces(Collections.unmodifiableList(_provided));
        }
 
        @Override
        public final RequiredInterfaces getRequiredInterfaces() {
-               return _required.readOnlyView();
+               return new RequiredInterfaces(Collections.unmodifiableList(_required));
        }
 
        @Override