]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.objmap2/src/org/simantics/objmap/graph/schema/MappingSchemas.java
Java object to ordered set mapping
[simantics/3d.git] / org.simantics.objmap2 / src / org / simantics / objmap / graph / schema / MappingSchemas.java
index 0007d2bae54cac80b7f356a1538b78dc8daa070b..b91928492bf52a7609d7ebce30fe366b7fb48fc5 100644 (file)
@@ -28,6 +28,7 @@ import org.simantics.objmap.graph.annotations.HasCollectionAdder;
 import org.simantics.objmap.graph.annotations.HasCollectionRemover;\r
 import org.simantics.objmap.graph.annotations.HasSetter;\r
 import org.simantics.objmap.graph.annotations.OptionalRelatedElements;\r
+import org.simantics.objmap.graph.annotations.OrderedSetType;\r
 import org.simantics.objmap.graph.annotations.RelatedElements;\r
 import org.simantics.objmap.graph.annotations.RelatedElementsGet;\r
 import org.simantics.objmap.graph.annotations.RelatedGetObj;\r
@@ -80,6 +81,13 @@ public class MappingSchemas {
                    \r
                    return new DynamicSimpleLinkType<Object>(g.getResource(dynamicType.value()), clazz, rules);\r
            }\r
+           OrderedSetType orderedSetType = clazz.getAnnotation(OrderedSetType.class);\r
+           if (orderedSetType != null) {\r
+               ArrayList<IBidirectionalMappingRule<Resource, Object>> rules = new ArrayList<IBidirectionalMappingRule<Resource, Object>>();\r
+                   collectRulesFromAnnotations(g, clazz, rules);\r
+                   \r
+                   return new OrderedSetSimpleLinkType<Object>(g.getResource(orderedSetType.value()), clazz, rules);\r
+           }\r
            throw new IllegalArgumentException("Class " + clazz.toString() + " does not contain annotations.");\r
        }\r
        \r