Update of /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv12659/src/org/sblim/cimclient/internal/cimxml Modified Files: Tag: Experimental CIMXMLBuilderImpl.java CIMClientXML_HelperImpl.java CIMXMLParserImpl.java Log Message: 2616 Add new API WBEMClientSBLIM.sendIndication() Index: CIMXMLBuilderImpl.java =================================================================== RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/CIMXMLBuilderImpl.java,v retrieving revision 1.9.2.35 retrieving revision 1.9.2.36 diff -u -d -r1.9.2.35 -r1.9.2.36 --- CIMXMLBuilderImpl.java 27 Nov 2012 01:31:03 -0000 1.9.2.35 +++ CIMXMLBuilderImpl.java 23 Feb 2013 19:56:54 -0000 1.9.2.36 @@ -1,7 +1,7 @@ /** * CIMXMLBuilderImpl.java * - * (C) Copyright IBM Corp. 2005, 2012 + * (C) Copyright IBM Corp. 2005, 2013 * * THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE * ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE @@ -49,6 +49,7 @@ * 3001333 2010-05-19 blaschke-oss CIMMethod class ignores propagated parameter * 3304058 2011-05-20 blaschke-oss Use same date format in change history * 3588558 2012-11-26 blaschke-oss An enhancement on Java CIM Client logging + * 2616 2013-02-23 blaschke-oss Add new API WBEMClientSBLIM.sendIndication() */ package org.sblim.cimclient.internal.cimxml; @@ -2221,4 +2222,55 @@ return localnamespacepathE; } + + /** + * createSIMPLEEXPREQ + * + * @param pDoc + * @return Element + */ + public static Element createSIMPLEEXPREQ(Document pDoc) { + // <!ELEMENT SIMPLEEXPREQ (EXPMETHODCALL)> + Element e = pDoc.createElement("SIMPLEEXPREQ"); + return e; + } + + /** + * createEXPMETHODCALL + * + * @param pDoc + * @param pParentE + * @param pName + * @return Element + */ + public static Element createEXPMETHODCALL(Document pDoc, Element pParentE, String pName) { + // <!ELEMENT EXPMETHODCALL (EXPPARAMVALUE*)> + // <!ATTLIST EXPMETHODCALL %NAME> + Element e = pDoc.createElement("EXPMETHODCALL"); + if (pName != null) { + e.setAttribute("NAME", pName); + } + pParentE.appendChild(e); + return e; + } + + /** + * createEXPPARAMVALUE + * + * @param pDoc + * @param pParentE + * @param pName + * @return Element + */ + public static Element createEXPPARAMVALUE(Document pDoc, Element pParentE, String pName) { + // <!ELEMENT EXPPARAMVALUE (INSTANCE? | VALUE? | METHODRESPONSE? | + // IMETHODRESPONSE?)> + // <!ATTLIST EXPPARAMVALUE %NAME> + Element e = pDoc.createElement("EXPPARAMVALUE"); + if (pName != null) { + e.setAttribute("NAME", pName); + } + pParentE.appendChild(e); + return e; + } } Index: CIMXMLParserImpl.java =================================================================== RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/CIMXMLParserImpl.java,v retrieving revision 1.14.2.40 retrieving revision 1.14.2.41 diff -u -d -r1.14.2.40 -r1.14.2.41 --- CIMXMLParserImpl.java 17 Jan 2013 14:28:20 -0000 1.14.2.40 +++ CIMXMLParserImpl.java 23 Feb 2013 19:56:54 -0000 1.14.2.41 @@ -57,6 +57,7 @@ * 3526679 2012-05-14 blaschke-oss DOM parser ignores ERROR node CODE * 3572993 2012-10-01 blaschke-oss parseDouble("2.2250738585072012e-308") DoS vulnerability * 3598613 2013-01-11 blaschke-oss different data type in cim instance and cim object path + * 2616 2013-02-23 blaschke-oss Add new API WBEMClientSBLIM.sendIndication() */ package org.sblim.cimclient.internal.cimxml; @@ -2110,6 +2111,13 @@ return request; } // SIMPLEEXPRSP + Element simpleexprspE = (Element) searchFirstNode(pMessageE, "SIMPLEEXPRSP"); + if (simpleexprspE != null) { + CIMResponse response = parseSIMPLEEXPRSP(simpleexprspE); + response.setMethod("SIMPLEEXPRSP"); + response.setId(id); + return response; + } // MULTIEXPRSP // SIMPLEREQ @@ -3092,4 +3100,56 @@ } } + /** + * parseSIMPLEEXPRSP + * + * @param pSimpleExpRspE + * @return CIMResponse + * @throws CIMXMLParseException + */ + public static CIMResponse parseSIMPLEEXPRSP(Element pSimpleExpRspE) throws CIMXMLParseException { + // <!ELEMENT SIMPLEEXPRSP (EXPMETHODRESPONSE)> + + // EXPMETHODRESPONSE + Element expmethodresponseE = (Element) searchFirstNode(pSimpleExpRspE, "EXPMETHODRESPONSE"); + if (expmethodresponseE != null) { return parseEXPMETHODRESPONSE(expmethodresponseE); } + + throw new CIMXMLParseException("EXPMETHODRESPONSE node not found!"); + } + + /** + * parseEXPMETHODRESPONSE + * + * @param pExpMethodResponseE + * @return CIMResponse + * @throws CIMXMLParseException + */ + public static CIMResponse parseEXPMETHODRESPONSE(Element pExpMethodResponseE) + throws CIMXMLParseException { + // <!ELEMENT EXPMETHODRESPONSE (ERROR | IRETURNVALUE?)> + + CIMResponse response = new CIMResponse(); + + // ERROR + Element errorE = (Element) searchFirstNode(pExpMethodResponseE, "ERROR"); + if (errorE != null) { + WBEMException exception = parseERROR(errorE); + response.setError(exception); + return response; + } + + // RETURNVALUE + Element[] retValElementA = searchNodes(pExpMethodResponseE, "IRETURNVALUE"); + if (retValElementA != null && retValElementA.length > 0) { + Vector<Object> v = new Vector<Object>(); + for (int i = 0; i < retValElementA.length; i++) { + Element returnvalueE = retValElementA[i]; + v.add(parseIRETURNVALUE(returnvalueE)); + } + response.setReturnValue(v); + } + + return response; + } + } Index: CIMClientXML_HelperImpl.java =================================================================== RCS file: /cvsroot/sblim/jsr48-client/src/org/sblim/cimclient/internal/cimxml/CIMClientXML_HelperImpl.java,v retrieving revision 1.18.2.31 retrieving revision 1.18.2.32 diff -u -d -r1.18.2.31 -r1.18.2.32 --- CIMClientXML_HelperImpl.java 23 Jan 2013 20:53:46 -0000 1.18.2.31 +++ CIMClientXML_HelperImpl.java 23 Feb 2013 19:56:54 -0000 1.18.2.32 @@ -49,6 +49,7 @@ * 3521119 2012-04-24 blaschke-oss JSR48 1.0.0: remove CIMObjectPath 2/3/4-parm ctors * 3527580 2012-05-17 blaschke-oss WBEMClient should not throw IllegalArgumentException * 3601894 2013-01-23 blaschke-oss Enhance HTTP and CIM-XML tracing + * 2616 2013-02-23 blaschke-oss Add new API WBEMClientSBLIM.sendIndication() */ package org.sblim.cimclient.internal.cimxml; @@ -2589,4 +2590,24 @@ return simplereqE; } + /** + * sendIndication_request + * + * @param pDoc + * @param pIndication + * @return Element sendIndication_request + * @throws WBEMException + */ + public Element sendIndication_request(Document pDoc, CIMInstance pIndication) + throws WBEMException { + Element simpleexpreqE = CIMXMLBuilderImpl.createSIMPLEEXPREQ(pDoc); + Element expmethodcallE = CIMXMLBuilderImpl.createEXPMETHODCALL(pDoc, simpleexpreqE, + "ExportIndication"); + Element expparamvalueE = CIMXMLBuilderImpl.createEXPPARAMVALUE(pDoc, expmethodcallE, + "NewIndication"); + + CIMXMLBuilderImpl.createINSTANCE(pDoc, expparamvalueE, pIndication); + + return simpleexpreqE; + } } |