diff options
Diffstat (limited to 'petascope/src/petascope/wcps/server/core/DimensionPointElement.java')
-rw-r--r-- | petascope/src/petascope/wcps/server/core/DimensionPointElement.java | 220 |
1 files changed, 109 insertions, 111 deletions
diff --git a/petascope/src/petascope/wcps/server/core/DimensionPointElement.java b/petascope/src/petascope/wcps/server/core/DimensionPointElement.java index d4aa0eb..6bdbf67 100644 --- a/petascope/src/petascope/wcps/server/core/DimensionPointElement.java +++ b/petascope/src/petascope/wcps/server/core/DimensionPointElement.java @@ -14,118 +14,116 @@ * You should have received a copy of the GNU General Public License * along with rasdaman community. If not, see <http://www.gnu.org/licenses/>. * - * Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann / - rasdaman GmbH. + * Copyright 2003 - 2010 Peter Baumann / rasdaman GmbH. * * For more information please see <http://www.rasdaman.org> * or contact Peter Baumann via <baumann@rasdaman.com>. */ -package petascope.wcps.server.core;
-
-import petascope.wcps.server.exceptions.InvalidCrsException;
-import petascope.wcps.server.exceptions.WCPSException;
-import org.w3c.dom.*;
-
-public class DimensionPointElement implements IRasNode {
-
- private IRasNode domain, child;
- private AxisName axis;
- private Crs crs;
- private boolean finished = false;
- private Node nextNode;
-
- public DimensionPointElement(Node node, XmlQuery xq)
- throws WCPSException, InvalidCrsException {
- System.err.println("Trying to parse DimensionPointElement expression...");
- String name;
-
- while ((node != null) && node.getNodeName().equals("#text")) {
- node = node.getNextSibling();
- }
-
- while (node != null && finished == false) {
- if (node.getNodeName().equals("#text")) {
- node = node.getNextSibling();
- continue;
- }
-
- name = node.getNodeName();
- System.err.println("Current node is " + name);
-
- // Try Axis
- try {
- axis = new AxisName(node, xq);
- node = node.getNextSibling();
- continue;
- } catch (WCPSException e) {
- System.err.println("Failed to parse an axis!");
- }
-
- // Try CRS name
- try {
- crs = new Crs(node, xq);
- node = node.getNextSibling();
- if (axis == null) {
- throw new WCPSException("Expected Axis node before CRS !");
- }
- continue;
- } catch (WCPSException e) {
- System.err.println("Failed to parse a crs!");
- }
-
- // TODO: how to implement DomainMetadataExpr ?
-
-// // Try last thing
-// try
-// {
-// domain1 = new DomainMetadataExprType(node, xq);
-// counter = 1;
-// continue;
-// }
-// catch (WCPSException e)
-// {
-// System.err.println("Failed to parse domain metadata!");
-// }
-
- // Then it must be a "slicingPosition"
- if (node.getNodeName().equals("slicingPosition")) {
- domain = new ScalarExpr(node.getFirstChild(), xq);
- if (axis == null) {
- throw new WCPSException("Expected <axis> node before <slicingPosition> !");
- }
- } else {
- throw new WCPSException("Unexpected node: " + node.getFirstChild().getNodeName());
- }
-
- if (axis != null && domain != null) {
- finished = true;
- }
-
- if (finished == true) {
- nextNode = node.getNextSibling();
- }
-
- node = node.getNextSibling();
- }
- }
-
- public String toRasQL() {
- return child.toRasQL();
- }
-
- public Node getNextNode() {
- return nextNode;
- }
-
- public String getAxisName() {
- return this.axis.toRasQL();
- }
-
- public String getCrsName() {
- return this.crs.toRasQL();
- }
-
- public String getSlicingPosition() {
- return this.domain.toRasQL();
- }
-}
+package petascope.wcps.server.core; + +import petascope.exceptions.WCPSException; +import org.w3c.dom.*; + +public class DimensionPointElement implements IRasNode { + + private IRasNode domain, child; + private AxisName axis; + private Crs crs; + private boolean finished = false; + private Node nextNode; + + public DimensionPointElement(Node node, XmlQuery xq) + throws WCPSException { + System.err.println("Trying to parse DimensionPointElement expression..."); + String name; + + while ((node != null) && node.getNodeName().equals("#text")) { + node = node.getNextSibling(); + } + + while (node != null && finished == false) { + if (node.getNodeName().equals("#text")) { + node = node.getNextSibling(); + continue; + } + + name = node.getNodeName(); + System.err.println("Current node is " + name); + + // Try Axis + try { + axis = new AxisName(node, xq); + node = node.getNextSibling(); + continue; + } catch (WCPSException e) { + System.err.println("Failed to parse an axis!"); + } + + // Try CRS name + try { + crs = new Crs(node, xq); + node = node.getNextSibling(); + if (axis == null) { + throw new WCPSException("Expected Axis node before CRS !"); + } + continue; + } catch (WCPSException e) { + System.err.println("Failed to parse a crs!"); + } + + // TODO: how to implement DomainMetadataExpr ? + +// // Try last thing +// try +// { +// domain1 = new DomainMetadataExprType(node, xq); +// counter = 1; +// continue; +// } +// catch (WCPSException e) +// { +// System.err.println("Failed to parse domain metadata!"); +// } + + // Then it must be a "slicingPosition" + if (node.getNodeName().equals("slicingPosition")) { + domain = new ScalarExpr(node.getFirstChild(), xq); + if (axis == null) { + throw new WCPSException("Expected <axis> node before <slicingPosition> !"); + } + } else { + throw new WCPSException("Unexpected node: " + node.getFirstChild().getNodeName()); + } + + if (axis != null && domain != null) { + finished = true; + } + + if (finished == true) { + nextNode = node.getNextSibling(); + } + + node = node.getNextSibling(); + } + } + + public String toRasQL() { + return child.toRasQL(); + } + + public Node getNextNode() { + return nextNode; + } + + public String getAxisName() { + return this.axis.toRasQL(); + } + + public String getCrsName() { + return this.crs.toRasQL(); + } + + public String getSlicingPosition() { + return this.domain.toRasQL(); + } +} |