Skip to content

Commit 49706ed

Browse files
authored
Merge pull request #20 from hbz/dipsStruct
added item logic to root element in structure.xml
2 parents b4fea92 + 6fd31b3 commit 49706ed

6 files changed

Lines changed: 76 additions & 6 deletions

File tree

src/main/java/de/nrw/hbz/genericSipLoader/dips/impl/DipsIEStructureProvider.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,10 @@
1818
import com.fasterxml.jackson.core.exc.StreamReadException;
1919
import com.fasterxml.jackson.databind.DatabindException;
2020
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
21-
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
22-
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
2321

2422
import de.nrw.hbz.genericSipLoader.dips.model.IEStructure;
2523
import de.nrw.hbz.genericSipLoader.dips.model.deserialize.DeserializeIEStructure;
2624
import de.nrw.hbz.genericSipLoader.dips.model.serialize.SerializeIEStructure;
27-
import de.nrw.hbz.genericSipLoader.edm.model.serialize.SerializeRdf;
2825

2926

3027
/**
@@ -74,7 +71,7 @@ private static InputStream loadXmlString(String ieString) {
7471
/**
7572
* method takes serialized DiPS IE-Structure as InputStream
7673
* @param is InputStream to be used
77-
* @return EDM as Pojos according to jackson-Framework
74+
* @return EDM as Pojos according to the jackson-Framework
7875
*/
7976
public static IEStructure deserialize(InputStream is) {
8077
DeserializeIEStructure ieStruct = null;
@@ -98,7 +95,7 @@ public static IEStructure deserialize(InputStream is) {
9895
/**
9996
* method takes serialized DiPS IE Structure as File object
10097
* @param file File to be used
101-
* @return EDM as Pojos according to jackson-Framework
98+
* @return EDM as Pojos according to the jackson-Framework
10299
*/
103100
public static IEStructure deserialize(File file) {
104101
DeserializeIEStructure ieStruct = null;
@@ -140,6 +137,10 @@ public static IEStructure deserialize(String ieStructString) {
140137
return ieStruct;
141138
}
142139

140+
/**
141+
* @param ieStruct
142+
* @return xml the IEStructure as serialized xml String
143+
*/
143144
public static String serialize(IEStructure ieStruct) {
144145
XmlMapper xmlMapper = new XmlMapper();
145146
String xml = null;

src/main/java/de/nrw/hbz/genericSipLoader/dips/model/IEStructure.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,14 @@ public interface IEStructure {
4141
public ArrayList<ChildStructure> getChildStructure();
4242

4343

44+
/**
45+
* @param childStructure
46+
*/
4447
public void setChildStructure(ArrayList<ChildStructure> childStructure);
48+
49+
50+
/**
51+
* @return item ArrayList of item Element
52+
*/
53+
public ArrayList<Item> getItem();
4554
}

src/main/java/de/nrw/hbz/genericSipLoader/dips/model/deserialize/DeserializeIEStructure.java

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
import de.nrw.hbz.genericSipLoader.dips.model.ChildStructure;
1414
import de.nrw.hbz.genericSipLoader.dips.model.IEStructure;
15+
import de.nrw.hbz.genericSipLoader.dips.model.Item;
1516

1617
/**
1718
*
@@ -24,12 +25,14 @@ public class DeserializeIEStructure implements IEStructure {
2425
private String title = new String();
2526
private String structureIdentifier = new String();
2627
private ArrayList<ChildStructure> childStructure = new ArrayList<>();
28+
private ArrayList<Item> item = new ArrayList<>();
2729

2830

2931

3032
/**
33+
* Replace childStructure Element at respective position
3134
* @param cStruct
32-
* @param i
35+
* @param i position at which childStructrue Element will be replaced
3336
*/
3437
public void replaceChildStructure(ChildStructure cStruct , int i) {
3538
this.childStructure.remove(i);
@@ -48,18 +51,30 @@ public String getDipsXmlns() {
4851
public String getTitle() {
4952
return title;
5053
}
54+
5155
@Override
5256
@JacksonXmlProperty(localName="structureIdentifier")
5357
public String getStructureIdentifier() {
5458
return structureIdentifier;
5559
}
60+
61+
/**
62+
* @return ArrayList of childStructure Elements
63+
*/
5664
@Override
5765
@JacksonXmlProperty(localName="childStructure")
5866
public ArrayList<ChildStructure> getChildStructure() {
5967
return childStructure;
6068
}
6169

70+
@Override
71+
@JacksonXmlProperty(localName="item")
72+
public ArrayList<Item> getItem() {
73+
return item;
74+
}
75+
6276
/**
77+
* Add title literal to deserialized Element
6378
* @param title the title to set
6479
*/
6580
@JacksonXmlElementWrapper(useWrapping = false)
@@ -86,6 +101,18 @@ public void setChildStructure(ArrayList<ChildStructure> childStructure) {
86101
this.childStructure = childStructure;
87102
}
88103

104+
/**
105+
* Because Stadt Köln has introduced item Elements within ieStructureRoot
106+
* we have to implement item methods too
107+
* @param Item ArrayList of item Element
108+
*/
109+
@JacksonXmlElementWrapper(useWrapping = false)
110+
@JacksonXmlProperty(localName="item")
111+
public void setItem(ArrayList<Item> Item) {
112+
this.item = Item;
113+
}
114+
115+
89116

90117

91118
}

src/main/java/de/nrw/hbz/genericSipLoader/dips/model/serialize/SerializeIEStructure.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
import de.nrw.hbz.genericSipLoader.dips.model.ChildStructure;
1111
import de.nrw.hbz.genericSipLoader.dips.model.IEStructure;
12+
import de.nrw.hbz.genericSipLoader.dips.model.Item;
1213

1314
/**
1415
*
@@ -60,4 +61,10 @@ public void setChildStructure(ArrayList<ChildStructure> childStructure) {
6061

6162
}
6263

64+
@Override
65+
public ArrayList<Item> getItem() {
66+
// TODO Auto-generated method stub
67+
return null;
68+
}
69+
6370
}

src/main/java/de/nrw/hbz/genericSipLoader/edm/impl/HtmlProvider.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import de.nrw.hbz.genericSipLoader.dips.model.ChildStructure;
2121
import de.nrw.hbz.genericSipLoader.dips.model.IEStructure;
22+
import de.nrw.hbz.genericSipLoader.dips.model.Item;
2223
import de.nrw.hbz.genericSipLoader.edm.model.Aggregation;
2324
import de.nrw.hbz.genericSipLoader.edm.model.Rdf;
2425
import de.nrw.hbz.genericSipLoader.edm.model.deserialize.DeserializeAggregation;
@@ -187,7 +188,20 @@ private void appendStructureMD() {
187188
appendChildStructureMD(ieStruct.getChildStructure().get(i));
188189

189190
}
191+
192+
if( ieStruct.getItem() != null) {
193+
appendRootItemMD(ieStruct.getItem());
194+
}
195+
}
196+
197+
private void appendRootItemMD(ArrayList<Item> item) {
190198

199+
for (int i = 0; i < ieStruct.getItem().size(); i++) {
200+
201+
htmlText.append("<li><a href=\"" + item.get(i).getItemID() + "\">"
202+
+ item.get(i).getItemTitle() + "</a></li>\n");
203+
}
204+
191205
}
192206

193207
private void appendChildStructureMD(ChildStructure cStruct) {

src/main/java/de/nrw/hbz/genericSipLoader/impl/DipsLoaderImpl.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,18 @@ private String refactorEdm(Hashtable<String,String> replacements, String edmFile
309309
private String refactorIEStructure(Hashtable<String,String> replacements, String dIEFileName) {
310310
logger.debug(dIEFileName);
311311
IEStructure ieStruct = DipsIEStructureProvider.deserialize(new File(dIEFileName));
312+
313+
for(int i=0; i < ieStruct.getItem().size(); i++) {
314+
String itemID = ieStruct.getItem().get(i).getItemID();
315+
316+
logger.info("Found itemID: " + itemID);
317+
if(replacements.containsKey(itemID)){
318+
ieStruct.getItem().get(i).setItemID(replacements.get(itemID));
319+
logger.info("Found replacement: " + replacements.get(itemID));
320+
}
321+
322+
}
323+
312324
for(int i=0; i < ieStruct.getChildStructure().size(); i++) {
313325
// ChildStructure cStruct = ieStruct.getChildStructure().get(i);
314326
ieStruct.setChildStructure(refactorChildStructure(replacements, ieStruct.getChildStructure()));

0 commit comments

Comments
 (0)