diff options
| author | Andrew Branson <andrew.branson@cern.ch> | 2014-10-01 21:09:06 +0200 |
|---|---|---|
| committer | Andrew Branson <andrew.branson@cern.ch> | 2014-10-01 21:09:06 +0200 |
| commit | 9c5d6e82b5ce733cf23e4317e3bafaa42c2221ba (patch) | |
| tree | 64657888b5ff52cd8759c6feb15c6087b96d37c6 /src/main/java/com/c2kernel/collection | |
| parent | 8afca6b565edfa0e32aa8e12f30bfff5598abdd4 (diff) | |
Collection version support, stored as a new final component of the
Collection path. Null version implies "last".
Diffstat (limited to 'src/main/java/com/c2kernel/collection')
3 files changed, 17 insertions, 13 deletions
diff --git a/src/main/java/com/c2kernel/collection/AggregationDescription.java b/src/main/java/com/c2kernel/collection/AggregationDescription.java index 132a357..10ea5f7 100644 --- a/src/main/java/com/c2kernel/collection/AggregationDescription.java +++ b/src/main/java/com/c2kernel/collection/AggregationDescription.java @@ -24,7 +24,6 @@ public class AggregationDescription extends Aggregation implements CollectionDes setName(name);
}
-
@Override
public Aggregation newInstance() throws ObjectNotFoundException
{
@@ -33,8 +32,9 @@ public class AggregationDescription extends Aggregation implements CollectionDes for (int i=0; i<size(); i++)
{
AggregationMember mem = mMembers.list.get(i);
- //get the propdesc of the member item
- PropertyDescriptionList pdList = PropertyUtility.getPropertyDescriptionOutcome(mem.getItemPath());
+ //get the propdesc of the member item and look for an explicit version
+ String descVer = getDescVer(mem);
+ PropertyDescriptionList pdList = PropertyUtility.getPropertyDescriptionOutcome(mem.getItemPath(), descVer);
if (pdList!=null)
{
//create the new props of the member object
diff --git a/src/main/java/com/c2kernel/collection/Collection.java b/src/main/java/com/c2kernel/collection/Collection.java index 13642c3..270d021 100644 --- a/src/main/java/com/c2kernel/collection/Collection.java +++ b/src/main/java/com/c2kernel/collection/Collection.java @@ -25,8 +25,7 @@ abstract public class Collection<E extends CollectionMember> implements C2KLocal public int getCounter()
{
if (mCounter == -1)
- for (Object name : mMembers.list) {
- CollectionMember element = (CollectionMember)name;
+ for (E element : mMembers.list) {
if (mCounter < element.getID())
mCounter = element.getID();
}
@@ -89,19 +88,23 @@ abstract public class Collection<E extends CollectionMember> implements C2KLocal }
public boolean contains(ItemPath itemPath) {
- for (Object name : mMembers.list) {
- CollectionMember element = (CollectionMember)name;
+ for (E element : mMembers.list) {
if (element.getItemPath().equals(itemPath))
return true;
}
return false;
}
+
+ public String getDescVer(E mem) {
+ String descVer = "last";
+ Object descVerObj = mem.getProperties().get("Version");
+ if (descVerObj != null) descVer = descVerObj.toString();
+ return descVer;
+ }
public boolean isFull()
{
- for (int i=0; i<size(); i++)
- {
- CollectionMember element = mMembers.list.get(i);
+ for (E element : mMembers.list) {
if (element.getItemPath() == null)
return false;
}
@@ -135,7 +138,7 @@ abstract public class Collection<E extends CollectionMember> implements C2KLocal if (!same) return false;
for (Iterator<E> i = getMembers().list.iterator(); i.hasNext();) {
try {
- CollectionMember thisMem = i.next();
+ E thisMem = i.next();
CollectionMember otherMem = otherColl.getMember(thisMem.getID());
if (!thisMem.equals(otherMem)) return false;
} catch (ObjectNotFoundException ex) {
diff --git a/src/main/java/com/c2kernel/collection/DependencyDescription.java b/src/main/java/com/c2kernel/collection/DependencyDescription.java index 3c3b287..6698be3 100644 --- a/src/main/java/com/c2kernel/collection/DependencyDescription.java +++ b/src/main/java/com/c2kernel/collection/DependencyDescription.java @@ -12,7 +12,7 @@ public class DependencyDescription extends Dependency implements CollectionDescr {
setName("DependencyDescription");
}
-
+
public DependencyDescription(String name)
{
setName(name);
@@ -24,7 +24,8 @@ public class DependencyDescription extends Dependency implements CollectionDescr Dependency newDep = new Dependency(depName);
if (mMembers.list.size() == 1) { // constrain the members based on the property description
DependencyMember mem = mMembers.list.get(0);
- PropertyDescriptionList pdList = PropertyUtility.getPropertyDescriptionOutcome(mem.getItemPath());
+ String descVer = getDescVer(mem);
+ PropertyDescriptionList pdList = PropertyUtility.getPropertyDescriptionOutcome(mem.getItemPath(), descVer);
if (pdList!=null) {
newDep.setProperties(PropertyUtility.createProperty(pdList));
newDep.setClassProps(pdList.getClassProps());
|
