From e73468fd08cc27aa31f76a27c916e45d5987c628 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Thu, 5 Jun 2014 16:47:41 +0200 Subject: Moved old entitycreation package from the predefined step package to a new 'imports' package under entity. Renamed most classed with an 'Import' prefix to avoid clashes with other API classes. Fixes #194 --- .../c2kernel/entity/imports/ImportDependency.java | 66 ++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 src/main/java/com/c2kernel/entity/imports/ImportDependency.java (limited to 'src/main/java/com/c2kernel/entity/imports/ImportDependency.java') diff --git a/src/main/java/com/c2kernel/entity/imports/ImportDependency.java b/src/main/java/com/c2kernel/entity/imports/ImportDependency.java new file mode 100644 index 0000000..e6ce909 --- /dev/null +++ b/src/main/java/com/c2kernel/entity/imports/ImportDependency.java @@ -0,0 +1,66 @@ +package com.c2kernel.entity.imports; + +import java.util.ArrayList; + +import com.c2kernel.collection.MembershipException; +import com.c2kernel.common.ObjectNotFoundException; +import com.c2kernel.lookup.DomainPath; +import com.c2kernel.property.PropertyDescription; +import com.c2kernel.property.PropertyDescriptionList; +import com.c2kernel.property.PropertyUtility; +import com.c2kernel.utils.CastorHashMap; +import com.c2kernel.utils.KeyValuePair; + +public class ImportDependency implements java.io.Serializable { + + public String name; + public boolean isDescription; + public String itemDescriptionPath; + public ArrayList dependencyMemberList = new ArrayList(); + public CastorHashMap props = new CastorHashMap(); + + public ImportDependency() { + super(); + } + + public ImportDependency(String name) { + this(); + this.name = name; + } + + public KeyValuePair[] getKeyValuePairs() { + return props.getKeyValuePairs(); + } + + public void setKeyValuePairs(KeyValuePair[] pairs) { + props.setKeyValuePairs(pairs); + } + + /** + * @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); + if (itemDescriptionPath != null && itemDescriptionPath.length()>0) { + PropertyDescriptionList propList = PropertyUtility.getPropertyDescriptionOutcome(new DomainPath(itemDescriptionPath).getSysKey()); + StringBuffer classProps = new StringBuffer(); + for (PropertyDescription pd : propList.list) { + props.put(pd.getName(), pd.getDefaultValue()); + if (pd.getIsClassIdentifier()) + classProps.append((classProps.length()>0?",":"")).append(pd.getName()); + } + newDep.setProperties(props); + newDep.setClassProps(classProps.toString()); + } + + for (ImportDependencyMember thisMem : dependencyMemberList) { + int syskey = new DomainPath(thisMem.itemPath).getSysKey(); + if (syskey == -1) + throw new MembershipException("Cannot find "+thisMem.itemPath+" specified for collection."); + com.c2kernel.collection.DependencyMember newDepMem = newDep.addMember(syskey); + newDepMem.getProperties().putAll(thisMem.props); + } + return newDep; + } + +} -- cgit v1.2.3