package org.greenstone.gsdl3_extension.mat.servlet; import java.io.*; import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import org.w3c.dom.Element; import org.greenstone.gsdl3.core.MessageRouter; import org.greenstone.gsdl3.util.GlobalProperties; import org.greenstone.gsdl3.util.GSFile; import org.greenstone.gsdl3.util.GDBMWrapper; public class DescribeMessenger { private final String site_name = "localsite"; private MessageRouter mr = null; private String collection_Name = null; private MetadataStats ms; private String site_home = null; private String gsdl3_home = null; private int port =0; public DescribeMessenger(String collectionName, String URL) { collection_Name = collectionName; gsdl3_home = GlobalProperties.getGSDL3Home(); if (gsdl3_home == null || gsdl3_home.equals("")) { System.err.println("Couldn't access GSDL3Home from GlobalProperties.getGSDL3HOME, can't initialize the SOAP Server."); return; } site_home = GSFile.siteHome(gsdl3_home, this.site_name); File site_file = new File(site_home); if (!site_file.isDirectory()) { System.err.println("The site directory "+site_file.getPath()+" doesn't exist. Can't initialize the SOAP Server."); return; } mr = new MessageRouter(); mr.setSiteName(this.site_name); mr.configure(); } public void setCollectionName(String arg){ collection_Name = arg; } public String getCollectionName(){ return collection_Name; } public boolean describeMatadata(PrintWriter out, String collectionName,String OAIURL, String oaiPrefix, int portNumber){ ms = new MetadataStats(this.site_home,collectionName,OAIURL,out, oaiPrefix); port = portNumber; if(ms.getStatus()){ printWebPage(ms,out); return true; } else{ out.print("

This collection could not be analysed.

"); return false; } } public void printWebPage(MetadataStats ms,PrintWriter out){ DataMaker dm = new DataMaker(ms); String[] elements = new String [ms.metadataNameList.size()]; for(int i = 0; i