Skip to content

Commit 788d511

Browse files
committed
add support for change list documents
1 parent af1a87a commit 788d511

File tree

3 files changed

+131
-0
lines changed

3 files changed

+131
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package org.openarchives.resourcesync;
2+
3+
import java.util.Date;
4+
5+
public class ChangeList extends UrlSet
6+
{
7+
public ChangeList(Date lastMod)
8+
{
9+
this(lastMod, null);
10+
}
11+
12+
public ChangeList(Date lastMod, String capabilityList)
13+
{
14+
super();
15+
this.capability = ResourceSync.CAPABILITY_CHANGELIST;
16+
this.setLastModified(lastMod);
17+
18+
if (capabilityList != null)
19+
{
20+
this.addLn(ResourceSync.REL_RESOURCESYNC, capabilityList);
21+
}
22+
}
23+
24+
public void addChange(URL change)
25+
{
26+
this.addUrl(change);
27+
}
28+
29+
public URL addChange(String loc, Date lastMod, String change)
30+
{
31+
URL url = new URL();
32+
url.setLoc(loc);
33+
url.setLastModified(lastMod);
34+
url.setChange(change);
35+
this.addChange(url);
36+
return url;
37+
}
38+
}

src/main/java/org/openarchives/resourcesync/ChangeListArchive.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public ChangeListArchive(Date lastMod)
1616

1717
public ChangeListArchive(Date lastMod, String capabilityList)
1818
{
19+
super();
1920
this.capability = ResourceSync.CAPABILITY_CHANGELIST;
2021

2122
if (lastMod != null)
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
package org.openarchives.resourcesync.test;
2+
3+
import org.junit.Test;
4+
import org.junit.runner.RunWith;
5+
import org.junit.runners.JUnit4;
6+
import org.openarchives.resourcesync.ChangeList;
7+
import org.openarchives.resourcesync.ResourceSync;
8+
import org.openarchives.resourcesync.ResourceSyncEntry;
9+
import org.openarchives.resourcesync.ResourceSyncLn;
10+
import org.openarchives.resourcesync.URL;
11+
12+
import java.util.Date;
13+
import java.util.List;
14+
15+
@RunWith(JUnit4.class)
16+
public class TestChangeList
17+
{
18+
@Test
19+
public void simpleConstructor()
20+
{
21+
Date now = new Date();
22+
ChangeList cl = new ChangeList(now);
23+
24+
assert cl.getCapability().equals(ResourceSync.CAPABILITY_CHANGELIST);
25+
assert cl.getLastModified().getTime() >= now.getTime();
26+
27+
List<ResourceSyncLn> lns = cl.getLns();
28+
assert lns.size() == 0;
29+
}
30+
31+
@Test
32+
public void construction()
33+
{
34+
Date now = new Date();
35+
ChangeList cl = new ChangeList(now, "http://capabilitylist");
36+
37+
assert cl.getCapability().equals(ResourceSync.CAPABILITY_CHANGELIST);
38+
assert cl.getLastModified().equals(now);
39+
40+
List<ResourceSyncLn> lns = cl.getLns();
41+
assert lns.size() == 1;
42+
}
43+
44+
@Test
45+
public void methods()
46+
{
47+
Date now = new Date();
48+
ChangeList cl = new ChangeList(now);
49+
50+
URL change = new URL();
51+
change.setLoc("http://change1");
52+
change.setChange(ResourceSync.CHANGE_UPDATED);
53+
change.setLastModified(now);
54+
cl.addChange(change);
55+
56+
URL c2 = cl.addChange("http://change2", now, ResourceSync.CHANGE_DELETED);
57+
c2.setType("application/pdf");
58+
59+
List<ResourceSyncEntry> urls = cl.getUrls();
60+
boolean change1 = false;
61+
boolean change2 = false;
62+
for (ResourceSyncEntry url : urls)
63+
{
64+
if (url.getLoc().equals("http://change1"))
65+
{
66+
assert url.getChange().equals(ResourceSync.CHANGE_UPDATED);
67+
assert url.getLastModified().equals(now);
68+
change1 = true;
69+
}
70+
if (url.getLoc().equals("http://change2"))
71+
{
72+
assert url.getChange().equals(ResourceSync.CHANGE_DELETED);
73+
assert url.getLastModified().equals(now);
74+
assert url.getType().equals("application/pdf");
75+
change2 = true;
76+
}
77+
}
78+
assert change1;
79+
assert change2;
80+
}
81+
82+
@Test
83+
public void manualCheck()
84+
{
85+
ChangeList cl = new ChangeList(new Date());
86+
cl.addChange("http://change1", new Date(), ResourceSync.CHANGE_CREATED);
87+
cl.addChange("http://change2", new Date(), ResourceSync.CHANGE_UPDATED);
88+
cl.addChange("http://change3", new Date(), ResourceSync.CHANGE_CREATED);
89+
cl.addChange("http://change1", new Date(), ResourceSync.CHANGE_UPDATED);
90+
System.out.println(cl.serialise());
91+
}
92+
}

0 commit comments

Comments
 (0)