(no commit message)
[utils] / system / general / src / main / java / org / wamblee / system / core / DefaultScope.java
index 7290a790365eda04712f5ffe5ecd74cc692a2fb4..ad4b09863418b6e7f02b47cfcdfec952f5e4b2db 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.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -29,7 +30,11 @@ public class DefaultScope implements Scope {
        private Map<String, Object> _properties;
        private Map<String, Object> _runtimes;
        private Map<ProvidedInterface, ProvidedInterfaceImplementation> _provided;
-       private ProvidedInterface[] _externallyProvided;
+       private List<ProvidedInterface> _externallyProvided;
+       
+       public DefaultScope(List<ProvidedInterface>aExternallyProvided) { 
+           this(aExternallyProvided.toArray(new ProvidedInterface[0]));
+       }
 
        public DefaultScope(ProvidedInterface[] aExternallyProvided) {
                this(aExternallyProvided, new ArrayList<Scope>());
@@ -45,12 +50,13 @@ public class DefaultScope implements Scope {
                _properties = new HashMap<String, Object>();
                _runtimes = new HashMap<String, Object>();
                _provided = new HashMap<ProvidedInterface, ProvidedInterfaceImplementation>();
-               _externallyProvided = aExternallyProvided;
+               _externallyProvided = new ArrayList<ProvidedInterface>(); 
+               _externallyProvided.addAll(Arrays.asList(aExternallyProvided));
        }
 
        @Override
-       public ProvidedInterface[] getProvidedInterfaces() {
-               return _externallyProvided;
+       public List<ProvidedInterface> getProvidedInterfaces() {
+               return Collections.unmodifiableList(_externallyProvided);
        }
 
        @Override