From 1b578911eee0a7052dcd300a1dcdd2e7d5d90d8d Mon Sep 17 00:00:00 2001
From: erik <erik@77661180-640e-0410-b3a8-9f9b13e6d0e0>
Date: Fri, 6 Jun 2008 17:51:12 +0000
Subject: [PATCH]

---
 .../system/core/AbstractComponent.java        | 15 ++++---
 .../system/core/ReadWriteNamedInterfaces.java | 41 -------------------
 .../core/ReadWriteProvidedInterfaces.java     | 31 --------------
 .../core/ReadWriteRequiredInterfaces.java     | 31 --------------
 4 files changed, 9 insertions(+), 109 deletions(-)
 delete mode 100644 trunk/system/general/src/main/java/org/wamblee/system/core/ReadWriteNamedInterfaces.java
 delete mode 100644 trunk/system/general/src/main/java/org/wamblee/system/core/ReadWriteProvidedInterfaces.java
 delete mode 100644 trunk/system/general/src/main/java/org/wamblee/system/core/ReadWriteRequiredInterfaces.java

diff --git a/trunk/system/general/src/main/java/org/wamblee/system/core/AbstractComponent.java b/trunk/system/general/src/main/java/org/wamblee/system/core/AbstractComponent.java
index 38df3bc4..31e50ed5 100644
--- a/trunk/system/general/src/main/java/org/wamblee/system/core/AbstractComponent.java
+++ b/trunk/system/general/src/main/java/org/wamblee/system/core/AbstractComponent.java
@@ -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
diff --git a/trunk/system/general/src/main/java/org/wamblee/system/core/ReadWriteNamedInterfaces.java b/trunk/system/general/src/main/java/org/wamblee/system/core/ReadWriteNamedInterfaces.java
deleted file mode 100644
index ea7d4903..00000000
--- a/trunk/system/general/src/main/java/org/wamblee/system/core/ReadWriteNamedInterfaces.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2008 the original author or authors.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */ 
-package org.wamblee.system.core;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-public class ReadWriteNamedInterfaces<T extends NamedInterface> extends ArrayList<T> {
-
-    public ReadWriteNamedInterfaces() {
-        // Empty.
-    }
-    
-    public ReadWriteNamedInterfaces(T[] aInterfaces) { 
-        addAll(Arrays.asList(aInterfaces));
-    }
-   
-    public T get(String aName) { 
-        for (T intf: this) { 
-            if ( intf.getName().equals(aName)) { 
-                return intf; 
-            }
-        }
-        return null; 
-    }
-}
diff --git a/trunk/system/general/src/main/java/org/wamblee/system/core/ReadWriteProvidedInterfaces.java b/trunk/system/general/src/main/java/org/wamblee/system/core/ReadWriteProvidedInterfaces.java
deleted file mode 100644
index 3c5c1590..00000000
--- a/trunk/system/general/src/main/java/org/wamblee/system/core/ReadWriteProvidedInterfaces.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright 2008 the original author or authors.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */ 
-package org.wamblee.system.core;
-
-public class ReadWriteProvidedInterfaces extends ReadWriteNamedInterfaces<ProvidedInterface> {
-    
-    public ReadWriteProvidedInterfaces() { 
-        super(); 
-    }
-    
-    public ReadWriteProvidedInterfaces(ProvidedInterface[] aInterfaces) { 
-        super(aInterfaces);
-    }
-
-    public ProvidedInterfaces readOnlyView() { 
-        return new ProvidedInterfaces(this);
-    }
-}
diff --git a/trunk/system/general/src/main/java/org/wamblee/system/core/ReadWriteRequiredInterfaces.java b/trunk/system/general/src/main/java/org/wamblee/system/core/ReadWriteRequiredInterfaces.java
deleted file mode 100644
index 033afa86..00000000
--- a/trunk/system/general/src/main/java/org/wamblee/system/core/ReadWriteRequiredInterfaces.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright 2008 the original author or authors.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */ 
-package org.wamblee.system.core;
-
-public class ReadWriteRequiredInterfaces extends ReadWriteNamedInterfaces<RequiredInterface> {
-
-    public ReadWriteRequiredInterfaces() { 
-        super();
-    }
-    
-    public ReadWriteRequiredInterfaces(RequiredInterface[] aInterfaces) { 
-        super(aInterfaces);
-    }
-    
-    public RequiredInterfaces readOnlyView() {
-        return new RequiredInterfaces(this);
-    }
-}
-- 
2.31.1