summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/entity/imports
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/c2kernel/entity/imports')
-rw-r--r--src/main/java/com/c2kernel/entity/imports/ImportAggregation.java12
-rw-r--r--src/main/java/com/c2kernel/entity/imports/ImportAggregationMember.java4
-rw-r--r--src/main/java/com/c2kernel/entity/imports/ImportDependency.java16
3 files changed, 26 insertions, 6 deletions
diff --git a/src/main/java/com/c2kernel/entity/imports/ImportAggregation.java b/src/main/java/com/c2kernel/entity/imports/ImportAggregation.java
index 27eb0ed..8a15045 100644
--- a/src/main/java/com/c2kernel/entity/imports/ImportAggregation.java
+++ b/src/main/java/com/c2kernel/entity/imports/ImportAggregation.java
@@ -2,6 +2,9 @@ package com.c2kernel.entity.imports;
import java.util.ArrayList;
+import com.c2kernel.collection.Aggregation;
+import com.c2kernel.collection.AggregationDescription;
+import com.c2kernel.collection.AggregationInstance;
import com.c2kernel.collection.MembershipException;
import com.c2kernel.common.ObjectNotFoundException;
import com.c2kernel.graph.model.GraphPoint;
@@ -15,6 +18,7 @@ import com.c2kernel.property.PropertyUtility;
public class ImportAggregation {
public boolean isDescription;
+ public Integer version;
public ArrayList<ImportAggregationMember> aggregationMemberList = new ArrayList<ImportAggregationMember>();
public String name;
@@ -29,8 +33,8 @@ public class ImportAggregation {
}
public com.c2kernel.collection.Aggregation create() throws MembershipException, ObjectNotFoundException {
- com.c2kernel.collection.Aggregation newAgg = isDescription?new com.c2kernel.collection.AggregationDescription(name):new com.c2kernel.collection.AggregationInstance(name);
- newAgg.setName(name);
+ Aggregation newAgg = isDescription?new AggregationDescription(name):new AggregationInstance(name);
+ if (version!= null) newAgg.setVersion(version);
for (ImportAggregationMember thisMem : aggregationMemberList) {
StringBuffer classProps = new StringBuffer();
if (thisMem.itemDescriptionPath != null && thisMem.itemDescriptionPath.length()>0) {
@@ -40,7 +44,9 @@ public class ImportAggregation {
} catch (InvalidItemPathException ex) {
itemPath = new DomainPath(thisMem.itemDescriptionPath).getItemPath();
}
- PropertyDescriptionList propList = PropertyUtility.getPropertyDescriptionOutcome(itemPath);
+
+ String descVer = thisMem.itemDescriptionVersion==null?"last":thisMem.itemDescriptionVersion;
+ PropertyDescriptionList propList = PropertyUtility.getPropertyDescriptionOutcome(itemPath, descVer);
for (PropertyDescription pd : propList.list) {
thisMem.props.put(pd.getName(), pd.getDefaultValue());
if (pd.getIsClassIdentifier())
diff --git a/src/main/java/com/c2kernel/entity/imports/ImportAggregationMember.java b/src/main/java/com/c2kernel/entity/imports/ImportAggregationMember.java
index 159e02c..3ea5c16 100644
--- a/src/main/java/com/c2kernel/entity/imports/ImportAggregationMember.java
+++ b/src/main/java/com/c2kernel/entity/imports/ImportAggregationMember.java
@@ -7,6 +7,7 @@ public class ImportAggregationMember {
public int slotNo;
public String itemDescriptionPath;
+ public String itemDescriptionVersion = null;
public String itemPath;
public Geometry geometry;
public CastorHashMap props = new CastorHashMap();
@@ -16,9 +17,10 @@ public class ImportAggregationMember {
super();
}
- public ImportAggregationMember(int slotNo, String itemDescPath, String itemPath, Geometry geometry) {
+ public ImportAggregationMember(int slotNo, String itemDescPath, String itemDescVersion, String itemPath, Geometry geometry) {
this.slotNo = slotNo;
this.itemDescriptionPath = itemDescPath;
+ this.itemDescriptionVersion = itemDescVersion;
this.itemPath = itemPath;
this.geometry = geometry;
}
diff --git a/src/main/java/com/c2kernel/entity/imports/ImportDependency.java b/src/main/java/com/c2kernel/entity/imports/ImportDependency.java
index c235ba4..dc26551 100644
--- a/src/main/java/com/c2kernel/entity/imports/ImportDependency.java
+++ b/src/main/java/com/c2kernel/entity/imports/ImportDependency.java
@@ -2,6 +2,8 @@ package com.c2kernel.entity.imports;
import java.util.ArrayList;
+import com.c2kernel.collection.Dependency;
+import com.c2kernel.collection.DependencyDescription;
import com.c2kernel.collection.MembershipException;
import com.c2kernel.common.ObjectNotFoundException;
import com.c2kernel.lookup.DomainPath;
@@ -16,8 +18,10 @@ import com.c2kernel.utils.KeyValuePair;
public class ImportDependency {
public String name;
+ public Integer version;
public boolean isDescription;
public String itemDescriptionPath;
+ public String itemDescriptionVersion = null;
public ArrayList<ImportDependencyMember> dependencyMemberList = new ArrayList<ImportDependencyMember>();
public CastorHashMap props = new CastorHashMap();
@@ -42,9 +46,17 @@ public class ImportDependency {
* @return
*/
public com.c2kernel.collection.Dependency create() throws MembershipException, ObjectNotFoundException {
- com.c2kernel.collection.Dependency newDep = isDescription?new com.c2kernel.collection.DependencyDescription(name):new com.c2kernel.collection.Dependency(name);
+ Dependency newDep = isDescription?new DependencyDescription(name):new Dependency(name);
+ if (version!= null) newDep.setVersion(version);
if (itemDescriptionPath != null && itemDescriptionPath.length()>0) {
- PropertyDescriptionList propList = PropertyUtility.getPropertyDescriptionOutcome(new DomainPath(itemDescriptionPath).getItemPath());
+ ItemPath itemPath;
+ try {
+ itemPath = new ItemPath(itemDescriptionPath);
+ } catch (InvalidItemPathException ex) {
+ itemPath = new DomainPath(itemDescriptionPath).getItemPath();
+ }
+ String descVer = itemDescriptionVersion==null?"last":itemDescriptionVersion;
+ PropertyDescriptionList propList = PropertyUtility.getPropertyDescriptionOutcome(itemPath, descVer);
StringBuffer classProps = new StringBuffer();
for (PropertyDescription pd : propList.list) {
props.put(pd.getName(), pd.getDefaultValue());