Revision 2749 trunk/applications/appCatalogYNomenclatorClient/src/es/gva/cit/catalogClient/drivers/SRWCatalogServiceDriver.java
SRWCatalogServiceDriver.java | ||
---|---|---|
85 | 85 |
prefix = prefix + ":"; |
86 | 86 |
} |
87 | 87 |
|
88 |
//Hay que capturar la excepci?n.
|
|
89 |
int numberOfRecords = Integer.parseInt(XMLTree.searchNodeValue(
|
|
90 |
nodes[0], prefix + "numberOfRecords"));
|
|
88 |
int numberOfRecords = getNumberOfRecords(nodes[0],
|
|
89 |
prefix + "numberOfRecords",
|
|
90 |
null);
|
|
91 | 91 |
|
92 |
if (numberOfRecords == -1) { |
|
93 |
return null; |
|
94 |
} |
|
95 |
|
|
96 |
answerNodes = createAnswerTree(numberOfRecords, firstRecord, nodes[0], |
|
97 |
url,prefix); |
|
98 |
|
|
99 |
return answerNodes; |
|
100 |
} |
|
101 |
|
|
102 |
/** |
|
103 |
* It returns an array of nodes with: |
|
104 |
* 1st position -> tree with information of the answer |
|
105 |
* Next positions -> One result for each position |
|
106 |
* @param numberOfRecords |
|
107 |
* Number of records returned by the query |
|
108 |
* @param firstRecord |
|
109 |
* Number of the first record |
|
110 |
* @param node |
|
111 |
* Tree returned by the server |
|
112 |
* @param url |
|
113 |
* Server URL |
|
114 |
* @param prefix |
|
115 |
* Tags Prefix |
|
116 |
* @return |
|
117 |
*/ |
|
118 |
public Node[] createAnswerTree(int numberOfRecords, int firstRecord, |
|
119 |
Node node, URL url,String prefix) { |
|
120 |
Node[] answerNodes = null; |
|
121 |
|
|
92 | 122 |
if (numberOfRecords > 10) { |
93 | 123 |
answerNodes = new Node[11]; |
94 | 124 |
} else { |
... | ... | |
98 | 128 |
answerNodes[0] = XMLTreeNumberOfRecordsAnswer.getNode(numberOfRecords, |
99 | 129 |
firstRecord, firstRecord + numberOfRecords); |
100 | 130 |
|
101 |
nodes = XMLTree.searchMultipleNode(nodes[0],
|
|
131 |
Node[] auxNodes = XMLTree.searchMultipleNode(node,
|
|
102 | 132 |
prefix + "records->" + prefix + "record"); |
103 | 133 |
|
104 |
for (int i = 1; (i <= numberOfRecords) && (i <= 10); i++) |
|
105 |
answerNodes[i] = nodes[i - 1]; |
|
134 |
for (int i = 1; |
|
135 |
(i <= numberOfRecords) && (i <= 10) && |
|
136 |
(i <= (numberOfRecords - firstRecord + 1)); i++) |
|
137 |
answerNodes[i] = auxNodes[i - 1]; |
|
106 | 138 |
|
107 | 139 |
return answerNodes; |
108 | 140 |
} |
109 |
|
|
141 |
|
|
142 |
/** |
|
143 |
* Create the KVP for the HTTP GET Method. |
|
144 |
* @return |
|
145 |
*/ |
|
110 | 146 |
public NameValuePair[] getMessageCapabilities() { |
111 | 147 |
NameValuePair nvp1 = new NameValuePair("OPERATION", "explain"); |
112 | 148 |
NameValuePair nvp2 = new NameValuePair("VERSION", this.version); |
113 | 149 |
|
114 | 150 |
return new NameValuePair[] { nvp1, nvp2 }; |
115 | 151 |
} |
116 |
|
|
152 |
|
|
153 |
/** |
|
154 |
* Create the KVP for the HTTP GET Method. |
|
155 |
* @return |
|
156 |
*/ |
|
117 | 157 |
public NameValuePair[] getMessageRecords(Query query, int firstRecord) { |
118 | 158 |
SRWQuery qsrwd = new SRWQuery(query); |
119 | 159 |
|
Also available in: Unified diff