package gr.ntua.ivml.mint.actions; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import gr.ntua.ivml.mint.harvesting.RepositoryValidator; import org.apache.log4j.Logger; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; @Results({ @Result(name="error", location="oairesponse.jsp"), @Result(name="success", location="oairesponse.jsp") }) public class OAIHandler extends GeneralAction{ protected final Logger log = Logger.getLogger(getClass()); public String oai; public String oaiset; public String action; public String namespace; public HashMap<String,String> oaiAllSets = new HashMap<String,String>(); public List<String> ns = new ArrayList<String>(); @Action(value="OAIHandler") public String execute() throws Exception { log.debug("OAIHandler controller for url:"+oai); if(this.action.equalsIgnoreCase("validate")){ if(this.getOai()==null || this.getOai().length()==0){ addActionError("Oai url cannot be empty!"); return ERROR; } if(!RepositoryValidator.isValid(this.getOai())){ addActionError("Oai url is invalid!"); return ERROR; } else{ this.addActionMessage("Oai url is valid!"); return SUCCESS; }} else if(this.action.equalsIgnoreCase("fetchsets")){ log.debug("GETTING SETS for oai:"+oai); try{ oaiAllSets=RepositoryValidator.getSets(oai); } catch (Exception e) { e.printStackTrace(); } // log.debug("size of hash:"+oaiAllSets.size()); return SUCCESS; } else if(this.action.equalsIgnoreCase("fetchns")){ log.debug("GETTING NS for oai:"+oai); try{ ns=RepositoryValidator.getNameSpaces(oai); } catch (Exception e) { e.printStackTrace(); } // log.debug("size of hash:"+oaiAllSets.size()); return SUCCESS; } return SUCCESS; } public void setAction(String action){ this.action=action; } public String getAction(){ return this.action; } public String getOai(){ return this.oai; } public void setOai(String oai){ this.oai=oai; } public HashMap<String,String> getOaiAllSets(){ return oaiAllSets; } public List<String> getNs(){ return ns; } }