From 254ee6f47eebfc00462c10756a92066e82cc1a96 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Tue, 21 Jun 2011 15:46:02 +0200 Subject: Initial commit --- source/com/c2kernel/collection/Dependency.java | 114 +++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100755 source/com/c2kernel/collection/Dependency.java (limited to 'source/com/c2kernel/collection/Dependency.java') diff --git a/source/com/c2kernel/collection/Dependency.java b/source/com/c2kernel/collection/Dependency.java new file mode 100755 index 0000000..1b74d42 --- /dev/null +++ b/source/com/c2kernel/collection/Dependency.java @@ -0,0 +1,114 @@ +package com.c2kernel.collection; + +import java.util.Iterator; + +import com.c2kernel.utils.*; + +/* +Dependency Object +Objectified link representing dependency between items. +e.g.: Used for ProductDesc::Item-dependency-dependencymember-WfDesc::Item +*/ + +/** + * @version $Revision: 1.15 $ $Date: 2005/04/07 08:03:21 $ + * @author $Author: abranson $ + */ +public class Dependency extends Parent2ChildCollection +{ + + protected CastorHashMap mProperties = new CastorHashMap(); + protected String mClassProps = ""; + + public Dependency() + { + setName("Dependency"); + mMembers = new CollectionMemberList(); + } + + public Dependency(String name) + { + setName(name); + mMembers = new CollectionMemberList(); + } + + public CastorHashMap getProperties() { + return mProperties; + } + + public void setProperties(CastorHashMap props) { + mProperties = props; + } + + public KeyValuePair[] getKeyValuePairs() + { + return mProperties.getKeyValuePairs(); + } + public void setKeyValuePairs(KeyValuePair[] pairs) + { + mProperties.setKeyValuePairs(pairs); + } + + public void setClassProps(String classProps) { + this.mClassProps = classProps; + } + + public String getClassProps() { + return mClassProps; + } + + public void addMember(int entityKey) throws MembershipException { + // create member object + DependencyMember depMember = new DependencyMember(); + depMember.setID(getCounter()); + depMember.setProperties(mProperties); + depMember.setClassProps(mClassProps); + + // assign entity + depMember.assignEntity(entityKey); + mMembers.list.add(depMember); + Logger.msg(8, "Dependency::addMember(" + entityKey + ") added to children."); + } + + public void addMember(int entityKey, CastorHashMap props, String classProps) + throws MembershipException + { + if (classProps != null && !classProps.equals(mClassProps)) + throw new MembershipException("Cannot change classProps in dependency member"); + DependencyMember depMember = new DependencyMember(); + depMember.setID(getCounter()); + + // merge props + CastorHashMap newProps = new CastorHashMap(); + for (Iterator iter = props.keySet().iterator(); iter.hasNext();) { + String key = (String)iter.next(); + newProps.put(key, props.get(key)); + + } + // class props override local + for (Iterator iter = mProperties.keySet().iterator(); iter.hasNext();) { + String key = (String)iter.next(); + newProps.put(key, mProperties.get(key)); + + } + depMember.setProperties(newProps); + depMember.setClassProps(mClassProps); + + // assign entity + depMember.assignEntity(entityKey); + mMembers.list.add(depMember); + Logger.msg(8, "Dependency::addMember(" + entityKey + ") added to children."); + } + + public void removeMember(int memberId) throws MembershipException { + for (Iterator iter = mMembers.list.iterator(); iter.hasNext();) { + DependencyMember element = (DependencyMember)iter.next(); + if (element.getID() == memberId) { + mMembers.list.remove(element); + return; + } + } + throw new MembershipException("Member "+memberId+" not found"); + } + +} -- cgit v1.2.3