Skip to content

Commit 49b5ef3

Browse files
committed
Issue #102 - info and mets file
1 parent 6c6e0a6 commit 49b5ef3

File tree

1 file changed

+22
-6
lines changed

1 file changed

+22
-6
lines changed

import-mets/src/main/java/org/kramerius/importmets/MetsConvertor.java

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package org.kramerius.importmets;
22

33
import com.qbizm.kramerius.imp.jaxb.DigitalObject;
4+
45
import cz.incad.kramerius.utils.IOUtils;
56
import cz.incad.kramerius.utils.XMLUtils;
67
import cz.incad.kramerius.utils.conf.KConfiguration;
8+
79
import org.apache.commons.io.input.BOMInputStream;
810
import org.apache.log4j.Logger;
911
import org.kramerius.Import;
@@ -21,6 +23,7 @@
2123

2224
import javax.xml.bind.*;
2325
import javax.xml.transform.sax.SAXSource;
26+
2427
import java.io.*;
2528

2629

@@ -99,7 +102,7 @@ private static void checkAndConvertDirectory(String importRoot, String exportRoo
99102
}
100103
File exportFolderFile = IOUtils.checkDirectory(exportRoot);
101104

102-
File infoFile = new File(importFolder, "info.xml");
105+
File infoFile = findInfoFile(importFolder);
103106
if (!infoFile.exists()) {
104107
for(File child: importFolder.listFiles()){
105108
if (child.isDirectory()){
@@ -116,6 +119,22 @@ private static void checkAndConvertDirectory(String importRoot, String exportRoo
116119

117120
}
118121

122+
private static File findInfoFile(File importFolder) {
123+
File infoFile = null;
124+
File[] lfiles = importFolder.listFiles(new FileFilter() {
125+
126+
@Override
127+
public boolean accept(File p) {
128+
String fname = p.getName().toLowerCase();
129+
if (fname.startsWith("info") && fname.endsWith(".xml")) {
130+
return true;
131+
} else return false;
132+
}
133+
});
134+
infoFile = (lfiles !=null && lfiles.length >0) ? lfiles[0] : new File(importFolder, "info.xml");
135+
return infoFile;
136+
}
137+
119138

120139
private static String convert(String importRoot, String exportRoot, boolean defaultVisibility) throws InterruptedException, JAXBException, FileNotFoundException, SAXException, ServiceException {
121140
System.setProperty("java.awt.headless", "true");
@@ -125,9 +144,7 @@ private static String convert(String importRoot, String exportRoot, boolean defa
125144

126145
File importFolder = new File(importRoot);
127146

128-
File infoFile = new File(importFolder, "info.xml");
129-
130-
147+
File infoFile = findInfoFile(importFolder);
131148

132149
String packageid = getPackageid(infoFile);
133150

@@ -177,8 +194,7 @@ private static File findMetsFile(File importFolder){
177194
File[] fileList = importFolder.listFiles(new FileFilter() {
178195
@Override
179196
public boolean accept(File pathname) {
180-
return pathname.isFile() && pathname.getName().toLowerCase().endsWith(".xml") && !(pathname.getName().equalsIgnoreCase("info.xml"));
181-
197+
return pathname.isFile() && pathname.getName().toLowerCase().endsWith(".xml") && pathname.getName().toLowerCase().startsWith("mets");
182198
}
183199
});
184200
if (fileList.length!=1){

0 commit comments

Comments
 (0)