package ring.persistence;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import org.xmldb.api.base.Resource;
import org.xmldb.api.base.XMLDBException;
import ring.deployer.DeployedMUD;
import ring.deployer.DeployedMUDFactory;
import ring.main.RingModule;
public class XQueryModule implements RingModule {
@Override
public void execute(String[] args) {
//Discover the mud we are to query against
DeployedMUD mud = DeployedMUDFactory.getMUD(args[0]);
if (mud != null) {
ExistDB.setRootURI(mud.getName());
}
String filename = args[1];
File xqueryFile = new File(filename);
String xquery = "";
String line = "";
try {
BufferedReader reader = new BufferedReader(new FileReader(xqueryFile));
while ((line = reader.readLine()) != null) {
xquery += line + "\n";
}
System.out.println("Executing: " + xquery);
XQuery xq = new XQuery(xquery);
//xq.setLoadpoint(Loadpoint.STATIC);
ResourceList results = xq.execute();
System.out.println("result size: " + results.size());
for (Resource res : results) {
System.out.println(res.getId() + ":");
System.out.println(res.getContent());
}
results.close();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (XMLDBException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public boolean usesDatabase() {
return true;
}
}