Ignore:
Timestamp:
08/26/11 20:40:35 (13 years ago)
Author:
gaba
Message:

repoaction created ,
options + repositories moved to workspaceprofile

File:
1 edited

Legend:

Unmodified
Added
Removed
  • MDService2/trunk/MDService2/src/eu/clarin/cmdi/mdservice/action/SRUProxyAction.java

    r1471 r1496  
    5151import eu.clarin.cmdi.mdservice.model.Diagnostic;
    5252import eu.clarin.cmdi.mdservice.model.Diagnostics;
     53import eu.clarin.cmdi.mdservice.model.WorkspaceProfile;
    5354
    5455
     
    7980        private String x_cmd_repository;
    8081        private String x_cmd_collections;
     82        private Set paramSet;
    8183
    8284        private MDRepoProxyAction mdrepoproxyaction;
     
    8890        private static int OP_EXPLAIN = 2;
    8991        private static int OP_SCAN = 3;
     92       
    9093       
    9194        //TODO cache after analysis
     
    120123                 this.startRecord = 1;
    121124                 this.maximumRecords = 50;
     125                 
     126                 if (getServletRequest() != null){
     127                         this.setX_cmd_repository(getServletRequest().getParameter("x-cmd-repository"));
     128                         this.setRepository(this.getX_cmd_repository());
     129                         paramSet = getServletRequest().getParameterMap().entrySet();                   
     130                 }
     131                 
     132                //TODO xsl usage according particular repositories ?
     133                 this.setActionkey("sru");
    122134         }
    123135         
     
    285297        @Override
    286298        public String getBaseURI() {           
    287                 Admin.notifyUser("SRU-repositorypath:" + getRepositoryPath());
    288                 String uri = getRepositoryPath();//Admin.getConfig().getProperty(getProxyKey() + ".uri");               
     299                Admin.notifyUser("SRU-repositorypath:" + WorkspaceProfile.getRepositoryPath(getRepository()));
     300                String uri = WorkspaceProfile.getRepositoryPath(getRepository());//Admin.getConfig().getProperty(getProxyKey() + ".uri");               
    289301                return uri;
    290302        }
     
    358370                                                        if (this.scanClause.equals("cmd.Repository")){
    359371                                                                XMLSerializer xmlserializer = new XMLSerializer();
    360                                                                 String xml = xmlserializer.write( mdrepoproxyaction.getRepositories() ); 
     372                                                                String xml = xmlserializer.write( WorkspaceProfile.getRepositories());//mdrepoproxyaction.getRepositories() ); 
    361373                                                                this.setResultStream(new ByteArrayInputStream(xml.getBytes("UTF-8")));
    362374
     
    498510        }
    499511       
     512        //TODO create query + query.toURLParams ?
     513        public String createURLParams(){
     514                String params = "";
     515               
     516                //TODO params
     517                if (paramSet == null){
     518                        if (!(operation == null)){
     519                                params = params + "operation=" + operation;
     520                        }
     521                        if (!(version == null)){
     522                                params = params + "&version=" + version;
     523                        }
     524                        if (!(query == null)){
     525                                params = params + "&query=" + query;
     526                        }
     527                        if (getStartRecord() > 0){
     528                                params = params + "&startRecord=" + String.valueOf(getStartRecord());
     529                        }
     530                        if (getMaximumRecords()> 0){
     531                                params = params + "&numRecords=" + String.valueOf(getMaximumRecords());
     532                        }
     533                } else {
     534                        Iterator i = paramSet.iterator();
     535                        params = "";
     536                    while(i.hasNext()){
     537                              Map.Entry me = (Map.Entry)i.next();
     538                              if (!(me.getKey().equals("x-cmd-repository") || me.getKey().equals("x-cmd-collections"))){
     539                                      params = params + "&" + me.getKey() + "=" + ((String[])me.getValue())[0]; 
     540                              }
     541                        }
     542                    params = params.substring(1);
     543
     544                }
     545
     546                return params;
     547        }
    500548        @Override
    501549        public URL getTargetRequest() throws IOException {
     
    508556                        requestURI = this.getBaseURI();
    509557                }
    510                 //TODO params
    511                 Set set = getServletRequest().getParameterMap().entrySet();
    512                 Iterator i = set.iterator();
    513                 String params = "";
    514             while(i.hasNext()){
    515                       Map.Entry me = (Map.Entry)i.next();
    516                       if (!(me.getKey().equals("x-cmd-repository") || me.getKey().equals("x-cmd-collections"))){
    517                               params = params + "&" + me.getKey() + "=" + ((String[])me.getValue())[0]; 
    518                       }
    519                 }
    520             params = params.substring(1);
    521             targetURL = new URL(requestURI + "?" + params);
     558           
     559            targetURL = new URL(requestURI + "?" + createURLParams());
    522560                return targetURL;
    523561        }
     
    525563        @Override
    526564        public void prepare() throws Exception{
    527                 this.setX_cmd_repository(getServletRequest().getParameter("x-cmd-repository"));
    528                 this.setRepository(this.getX_cmd_repository());
     565                //this.setX_cmd_repository(getServletRequest().getParameter("x-cmd-repository"));
     566                //this.setRepository(this.getX_cmd_repository());
    529567                //TODO xsl usage according particular repositories ?
    530                 this.setActionkey("sru");
     568                //this.setActionkey("sru");
    531569                //this.setFormat("xml");
    532570               
    533571                //extern SRU repository
    534                 if (this.isSRURepository() || this.getBaseURI() == null){
     572                if (WorkspaceProfile.isSRURepository(getRepository()) || this.getBaseURI() == null){
    535573                        super.prepare();
    536574                }
Note: See TracChangeset for help on using the changeset viewer.