package gr.ntua.ivml.athena.harvesting.io; import java.io.File; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBElement; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import gr.ntua.ivml.athena.harvesting.xml.schema.OAIPMHtype; import gr.ntua.ivml.athena.harvesting.xml.schema.ObjectFactory; public class FileImporter{ private String baseDir; private String providerName; private JAXBContext jc; private Marshaller m; private ObjectFactory fact; public FileImporter(){ this.baseDir = "c:\\oai\\"; try { this.jc = JAXBContext.newInstance( "gr.ntua.ivml.athena.harvesting.xml.schema" ); fact = new ObjectFactory(); } catch (JAXBException e) { e.printStackTrace(); } } public void save(OAIPMHtype item, String format) { try { String ident = item.getGetRecord().getRecord().getHeader().getIdentifier(); String[] splits = ident.split(":"); String itemName = splits[splits.length-1]; providerName = splits[splits.length-2]; System.out.println(this.baseDir+this.providerName+"\\"+format+"\\"+itemName+".xml"); //m.marshal(item, new File(this.baseDir+this.providerName+"\\"+format+"\\"+itemName+".xml")); System.out.println(item.getRequest().getIdentifier()); Marshaller m = jc.createMarshaller(); m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); new File(this.baseDir+this.providerName+"\\"+format).mkdirs(); // m.marshal(fact.createOAIPMH(item), new File(this.baseDir+this.providerName+"\\"+format+"\\"+itemName+".xml")); } catch (JAXBException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }