From: Dave B. <bla...@us...> - 2013-10-30 02:05:52
|
Update of /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv1689/src/org/sblim/cimclient/internal/cimxml/sax/node Modified Files: Tag: Experimental MethodResponseNode.java IMethodResponseNode.java Log Message: 2697 (I)MethodResponseNode allows ERROR with PARAMVALUE Index: IMethodResponseNode.java =================================================================== RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/IMethodResponseNode.java,v retrieving revision 1.1.2.10 retrieving revision 1.1.2.11 diff -u -d -r1.1.2.10 -r1.1.2.11 --- IMethodResponseNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.10 +++ IMethodResponseNode.java 30 Oct 2013 02:05:49 -0000 1.1.2.11 @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2006, 2012 + * (C) Copyright IBM Corp. 2006, 2013 * * THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE * ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE @@ -21,6 +21,7 @@ * 2763216 2009-04-14 blaschke-oss Code cleanup: visible spelling/grammar errors * 2845211 2009-08-27 raman_arora Pull Enumeration Feature (SAX Parser) * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly + * 2697 2012-10-29 blaschke-oss (I)MethodResponseNode allows ERROR with PARAMVALUE */ package org.sblim.cimclient.internal.cimxml.sax.node; @@ -57,6 +58,10 @@ private static final CIMArgument<?>[] EMPTY_ARG_A = new CIMArgument[0]; + private boolean iHasError; + + private boolean iHasRetVal; + /** * Ctor. */ @@ -81,6 +86,8 @@ this.iErrorNode = null; this.iRetValNode = null; if (this.iCIMArgAL != null) this.iCIMArgAL.clear(); + this.iHasError = false; + this.iHasRetVal = false; } /** @@ -93,16 +100,29 @@ @Override public void testChild(String pNodeNameEnum) throws SAXException { - if (pNodeNameEnum == ERROR || pNodeNameEnum == IRETURNVALUE) { + if (pNodeNameEnum == ERROR) { String ownedNodeName; - if (this.iRetValNode != null) ownedNodeName = IRETURNVALUE; - else if (this.iErrorNode != null) ownedNodeName = ERROR; + if (this.iHasRetVal) ownedNodeName = IRETURNVALUE; + else if (this.iHasError) ownedNodeName = ERROR; + else if (this.iCIMArgAL != null && this.iCIMArgAL.size() > 0) ownedNodeName = PARAMVALUE; else ownedNodeName = null; if (ownedNodeName != null) throw new SAXException(pNodeNameEnum + " child node is invalid for " + getNodeName() + " node, since it already has a " + ownedNodeName + " child node!"); - } else if (pNodeNameEnum != PARAMVALUE) throw new SAXException(getNodeName() - + " node cannot have " + pNodeNameEnum + " child node!"); + } else if (pNodeNameEnum == IRETURNVALUE) { + String ownedNodeName; + if (this.iHasRetVal) ownedNodeName = IRETURNVALUE; + else if (this.iHasError) ownedNodeName = ERROR; + else ownedNodeName = null; + if (ownedNodeName != null) throw new SAXException(pNodeNameEnum + + " child node is invalid for " + getNodeName() + + " node, since it already has a " + ownedNodeName + " child node!"); + } else if (pNodeNameEnum == PARAMVALUE) { + if (this.iHasError) throw new SAXException(pNodeNameEnum + + " child node is invalid for " + getNodeName() + + " node, since it already has an ERROR child node!"); + } else throw new SAXException(getNodeName() + " node cannot have " + pNodeNameEnum + + " child node!"); } /** @@ -110,6 +130,13 @@ */ @Override public void childParsed(Node pChild) { + if (pChild instanceof ErrorNode) { + this.iHasError = true; + this.iErrorNode = (ErrorNode) pChild; + } else if (pChild instanceof IReturnValueNode) { + this.iHasRetVal = true; + this.iRetValNode = (IReturnValueNode) pChild; + } else // Values of parameters should be stored in array if (pChild instanceof ParamValueNode) { if (this.iCIMArgAL == null) this.iCIMArgAL = new ArrayList<CIMArgument<Object>>(); Index: MethodResponseNode.java =================================================================== RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/sax/node/MethodResponseNode.java,v retrieving revision 1.1.2.12 retrieving revision 1.1.2.13 diff -u -d -r1.1.2.12 -r1.1.2.13 --- MethodResponseNode.java 27 Mar 2012 19:06:32 -0000 1.1.2.12 +++ MethodResponseNode.java 30 Oct 2013 02:05:49 -0000 1.1.2.13 @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2006, 2012 + * (C) Copyright IBM Corp. 2006, 2013 * * THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE * ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE @@ -23,6 +23,7 @@ * 2797550 2009-06-01 raman_arora JSR48 compliance - add Java Generics * 2845211 2009-08-27 raman_arora Pull Enumeration Feature (SAX Parser) * 3511454 2012-03-27 blaschke-oss SAX nodes not reinitialized properly + * 2697 2012-10-29 blaschke-oss (I)MethodResponseNode allows ERROR with PARAMVALUE */ package org.sblim.cimclient.internal.cimxml.sax.node; @@ -53,6 +54,10 @@ private ArrayList<CIMArgument<Object>> iCIMArgAL; + private boolean iHasError; + + private boolean iHasRetVal; + /** * Ctor. */ @@ -76,6 +81,8 @@ this.iError = null; this.iRetVal = null; if (this.iCIMArgAL != null) this.iCIMArgAL.clear(); + this.iHasError = false; + this.iHasRetVal = false; } /** @@ -88,23 +95,38 @@ @Override public void testChild(String pNodeNameEnum) throws SAXException { - if (pNodeNameEnum == ERROR || pNodeNameEnum == RETURNVALUE) { + if (pNodeNameEnum == ERROR) { String ownedNodeName; - if (this.iRetVal != null) ownedNodeName = RETURNVALUE; - else if (this.iError != null) ownedNodeName = ERROR; + if (this.iHasRetVal) ownedNodeName = RETURNVALUE; + else if (this.iHasError) ownedNodeName = ERROR; + else if (this.iCIMArgAL != null && this.iCIMArgAL.size() > 0) ownedNodeName = PARAMVALUE; else ownedNodeName = null; if (ownedNodeName != null) throw new SAXException(pNodeNameEnum + " child node is invalid for " + getNodeName() + " node, since it already has a " + ownedNodeName + " child node!"); - } else if (pNodeNameEnum != PARAMVALUE) throw new SAXException(getNodeName() - + " node cannot have " + pNodeNameEnum + " child node!"); + } else if (pNodeNameEnum == RETURNVALUE) { + String ownedNodeName; + if (this.iHasRetVal) ownedNodeName = RETURNVALUE; + else if (this.iHasError) ownedNodeName = ERROR; + else ownedNodeName = null; + if (ownedNodeName != null) throw new SAXException(pNodeNameEnum + + " child node is invalid for " + getNodeName() + + " node, since it already has a " + ownedNodeName + " child node!"); + } else if (pNodeNameEnum == PARAMVALUE) { + if (this.iHasError) throw new SAXException(pNodeNameEnum + + " child node is invalid for " + getNodeName() + + " node, since it already has an ERROR child node!"); + } else throw new SAXException(getNodeName() + " node cannot have " + pNodeNameEnum + + " child node!"); } @Override public void childParsed(Node pChild) { if (pChild instanceof ErrorNode) { + this.iHasError = true; this.iError = ((ErrorNode) pChild).getCIMError(); } else if (pChild instanceof ReturnValueNode) { + this.iHasRetVal = true; this.iRetVal = ((ReturnValueNode) pChild).getValue(); } else if (pChild instanceof ParamValueNode) { if (this.iCIMArgAL == null) this.iCIMArgAL = new ArrayList<CIMArgument<Object>>(); |