]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.g3d/src/org/simantics/g3d/scenegraph/structural/Connection.java
Compiler warning elimination
[simantics/3d.git] / org.simantics.g3d / src / org / simantics / g3d / scenegraph / structural / Connection.java
index c43ca12ff2412bda1f9b07ecbadde2bedc014088..bd8ade64c0222fe70b207a6f9ce6380444949f11 100644 (file)
@@ -19,42 +19,42 @@ import org.simantics.db.Resource;
 import org.simantics.objmap.structural.IStructuralObject;\r
 \r
 @SuppressWarnings("rawtypes")\r
-public abstract class  Connection <T extends IComponentNode> implements IStructuralObject{\r
+public abstract class Connection<T extends Connection<T, T2>, T2 extends IComponentNode<T, T2>> implements IStructuralObject{\r
 \r
+       private List<T2> connects = new ArrayList<T2>();\r
        \r
-       private List<T> connects = new ArrayList<T>();\r
-       \r
-       \r
-       public void addConnect(T node) {\r
+       public void addConnect(T2 node) {\r
                if (!connects.contains(node))\r
                        connects.add(node);\r
                fireChanged(node,true);\r
        }\r
        \r
-       protected void fireChanged(T node, boolean add){\r
-               for (IComponentNode n : connects) {\r
-                       n.connectionChanged(this,node,add);\r
+       @SuppressWarnings("unchecked")\r
+       protected void fireChanged(T2 node, boolean add){\r
+               for (T2 n : connects) {\r
+                       n.connectionChanged((T) this,node,add);\r
                }\r
        }\r
        \r
-       public Collection<T> getConnected() {\r
+       public Collection<T2> getConnected() {\r
                return connects;\r
        }\r
        \r
-       public void removeConnect(T node) {\r
+       public void removeConnect(T2 node) {\r
                connects.remove(node);\r
                fireChanged(node,false);\r
        }\r
        \r
+       @SuppressWarnings("unchecked")\r
        public void remove() {\r
-               List<T> toRemove = new ArrayList<T>(connects.size());\r
+               List<T2> toRemove = new ArrayList<T2>(connects.size());\r
                toRemove.addAll(connects);\r
                for (IComponentNode node : toRemove) {\r
-                       node.removeConnection(this);\r
+                       node.removeConnection((T) this);\r
                }\r
        }\r
        \r
-       public T getOther(T node) {\r
+       public T2 getOther(IComponentNode<T, T2> node) {\r
                if (connects.size() != 2) \r
                        return null;\r
                if (connects.get(0).equals(node))\r