blob: 1b74d42fa481513fed55817547f505b4119bcc0a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
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");
}
}
|