diff options
| author | Andrew Branson <andrew.branson@cern.ch> | 2014-10-03 17:30:41 +0200 |
|---|---|---|
| committer | Andrew Branson <andrew.branson@cern.ch> | 2014-10-03 17:30:41 +0200 |
| commit | 275d0bbf555c8917be82ce4cc21eb4cabb00f4c5 (patch) | |
| tree | ddcc6b14077d90d1b970b67829f07120547dbb62 /src/main/java/com/c2kernel/collection/Dependency.java | |
| parent | a139f95bfeca603333b8c0310ae09c6805e58584 (diff) | |
Huge exception overhaul: Merged ClusterStorageException with
PersistencyException. Replaced MembershipException with
InvalidCollectionModification CORBA Exception. Made all predef steps
throw more accurate exceptions when they go wrong, and let more
exceptions bubble through from underneath.
Diffstat (limited to 'src/main/java/com/c2kernel/collection/Dependency.java')
| -rw-r--r-- | src/main/java/com/c2kernel/collection/Dependency.java | 36 |
1 files changed, 22 insertions, 14 deletions
diff --git a/src/main/java/com/c2kernel/collection/Dependency.java b/src/main/java/com/c2kernel/collection/Dependency.java index 7b7904d..cfcb4f7 100644 --- a/src/main/java/com/c2kernel/collection/Dependency.java +++ b/src/main/java/com/c2kernel/collection/Dependency.java @@ -21,20 +21,27 @@ package com.c2kernel.collection;
+import com.c2kernel.common.InvalidCollectionModification;
+import com.c2kernel.common.ObjectAlreadyExists;
+import com.c2kernel.common.ObjectNotFound;
import com.c2kernel.lookup.ItemPath;
import com.c2kernel.utils.CastorHashMap;
import com.c2kernel.utils.KeyValuePair;
import com.c2kernel.utils.Logger;
-/*
-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 $
+ * A Collection implementation that contains a variable number of members of the
+ * same type, like a variable-length array. CollectionMembers are created and
+ * destroyed as needed. A Dependency never contains empty slots, nor duplicated
+ * members.
+ *
+ * <p>ClassProps are stored at the collection level and duplicated in each slot.
+ * Slots may still have their own individual properties annotating their link.
+ *
+ * Predefined steps managing Dependencies:
+ *
+ * <ul>
+ * <li>
*/
public class Dependency extends Collection<DependencyMember>
{
@@ -77,8 +84,8 @@ public class Dependency extends Collection<DependencyMember> return mClassProps;
}
- @Override
- public DependencyMember addMember(ItemPath itemPath) throws MembershipException {
+ public DependencyMember addMember(ItemPath itemPath) throws InvalidCollectionModification, ObjectAlreadyExists {
+ if (contains(itemPath)) throw new ObjectAlreadyExists("Item "+itemPath+" already exists in Dependency "+getName());
// create member object
DependencyMember depMember = new DependencyMember();
depMember.setID(getCounter());
@@ -94,10 +101,11 @@ public class Dependency extends Collection<DependencyMember> @Override
public DependencyMember addMember(ItemPath itemPath, CastorHashMap props, String classProps)
- throws MembershipException
+ throws InvalidCollectionModification, ObjectAlreadyExists
{
+ if (contains(itemPath)) throw new ObjectAlreadyExists("Item "+itemPath+" already exists in Dependency "+getName());
if (classProps != null && !classProps.equals(mClassProps))
- throw new MembershipException("Cannot change classProps in dependency member");
+ throw new InvalidCollectionModification("Cannot change classProps in dependency member");
DependencyMember depMember = new DependencyMember();
depMember.setID(getCounter());
@@ -125,14 +133,14 @@ public class Dependency extends Collection<DependencyMember> }
@Override
- public void removeMember(int memberId) throws MembershipException {
+ public void removeMember(int memberId) throws ObjectNotFound {
for (DependencyMember element : mMembers.list) {
if (element.getID() == memberId) {
mMembers.list.remove(element);
return;
}
}
- throw new MembershipException("Member "+memberId+" not found");
+ throw new ObjectNotFound("Member "+memberId+" not found");
}
}
|
