source: MDService2/branches/MDService_simple3/src/eu/clarin/cmdi/mdservice/action/SRUAction.java @ 1852

Last change on this file since 1852 was 1852, checked in by gaba, 12 years ago

cache changes

File size: 3.3 KB
Line 
1package eu.clarin.cmdi.mdservice.action;
2
3import java.io.BufferedReader;
4import java.io.ByteArrayInputStream;
5import java.io.IOException;
6import java.io.InputStream;
7import java.io.InputStreamReader;
8import java.io.StringWriter;
9import java.io.UnsupportedEncodingException;
10import java.util.HashMap;
11import javax.xml.parsers.ParserConfigurationException;
12import javax.xml.transform.TransformerConfigurationException;
13import javax.xml.transform.TransformerException;
14import javax.xml.transform.TransformerFactory;
15import javax.xml.transform.TransformerFactoryConfigurationError;
16import javax.xml.transform.dom.DOMSource;
17import javax.xml.transform.stream.StreamResult;
18
19import org.w3c.dom.Document;
20import org.w3c.dom.Node;
21
22import eu.clarin.cmdi.mdservice.internal.Cache;
23import eu.clarin.cmdi.mdservice.internal.Utils;
24import eu.clarin.cmdi.mdservice.model.Diagnostic;
25import eu.clarin.cmdi.mdservice.model.Query;
26import eu.clarin.cmdi.mdservice.model.Repositories;
27import eu.clarin.cmdi.mdservice.model.WorkspaceProfile;
28import eu.clarin.cmdi.mdservice.proxy.MDRepoProxy;
29import eu.clarin.cmdi.mdservice.proxy.Pz2Proxy;
30import eu.clarin.cmdi.mdservice.proxy.SRUProxy;
31
32
33
34
35public class SRUAction extends RepoAction
36{
37
38        private static final long serialVersionUID = 1L;
39       
40        /**
41         * Properties to be filled by Struts with according request-parameters
42         */     
43       
44        private static int OP_SEARCHRETRIEVE = 1;
45        private static int OP_EXPLAIN = 2;
46        private static int OP_SCAN = 3;
47       
48       
49        //TODO cache after analysis ?
50        /*
51        @Override
52        public String getCache() {
53                return Cache.SKIP;
54        }
55        */
56       
57        @Override
58        public String getRepository() {
59                if (getParams().get("repository") == null){
60                        return getParam("x-cmd-repository");
61                }
62                return getParam("repository");
63        }
64       
65        @Override
66        public String getFormat() {
67                if (getParams().get("format") == null){
68                        if (getParams().get("x-cmd-format") == null){
69                                return "xml";
70                        }
71                        return getParam("x-cmd-format");
72                }
73                return getParam("format");
74        }
75       
76        /*
77        public String getOperation() {
78                if (getParams().get("operation") == null){
79                        return "searchRetrieve";
80                }
81                return getParam("operation");
82        }
83        */
84         protected final static HashMap<String,Integer> operation_code = new HashMap<String,Integer>();
85         static
86         {       
87                 operation_code.put("searchRetrieve", OP_SEARCHRETRIEVE);
88                 operation_code.put("explain", OP_EXPLAIN);
89                 operation_code.put("scan", OP_SCAN);
90         }
91         
92        /**
93         * primitive identification of the target-proxy
94         * base for finding the right base_url in the props
95         * subclass has to override with its specific proxykey
96         * @return
97         */
98        public String getProxyKey() {
99                return "";
100        }
101       
102       
103        @Override
104        public void setTargetProxy(){
105               
106                //Query query = new Query();
107                switch (Repositories.RepositoryType.toRepositoryType(Repositories.getRepositories().getRepositoryType(getRepository())))
108                {               
109                    case PAZPAR: 
110                        setTargetProxy(new Pz2Proxy(new Query(getActionkey(), this.getParams())));
111                        return;
112                    case SRU:
113                        setTargetProxy(new SRUProxy(new Query(Query.SRUEXTERN,getParams())));
114                        return;
115                    case MD:
116                        setTargetProxy(new MDRepoProxy(new Query(Query.RECORDSET,getParams())));
117                        return; 
118                    default:
119                        //TODO error  = bad workspaceProfile configuration
120                        getDiagnostics().Add(Diagnostic.SYSTEM_ERROR, "Error in workspaceprofile configuration", "repository=" + getRepository() );
121                }
122}
123}
Note: See TracBrowser for help on using the repository browser.