1 /* 2 (C) Copyright IBM Corp. 2006, 2009 3 4 THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE 5 ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE 6 CONSTITUTES RECIPIENTS ACCEPTANCE OF THE AGREEMENT. 7 8 You can obtain a current copy of the Eclipse Public License from 9 http://www.opensource.org/licenses/eclipse-1.0.php 10 11 @author : Endre Bak, ebak@de.ibm.com 12 * 13 * Flag Date Prog Description 14 * ------------------------------------------------------------------------------- 15 * 1565892 2006-12-04 ebak Make SBLIM client JSR48 compliant 16 * 1663270 2007-02-19 ebak Minor performance problems 17 * 1660756 2007-02-22 ebak Embedded object support 18 * 1820763 2007-10-29 ebak Supporting the EmbeddedInstance qualifier 19 * 1848607 2007-12-11 ebak Strict EmbeddedObject types 20 * 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL 21 * 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1) 22 * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2) 23 * 2797550 2009-06-01 raman_arora JSR48 compliance - add Java Generics 24 */ 25 26 package org.metricshub.wbem.sblim.cimclient.internal.cimxml.sax.node; 27 28 /*- 29 * ╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲ 30 * WBEM Java Client 31 * ჻჻჻჻჻჻ 32 * Copyright 2023 - 2025 MetricsHub 33 * ჻჻჻჻჻჻ 34 * Licensed under the Apache License, Version 2.0 (the "License"); 35 * you may not use this file except in compliance with the License. 36 * You may obtain a copy of the License at 37 * 38 * http://www.apache.org/licenses/LICENSE-2.0 39 * 40 * Unless required by applicable law or agreed to in writing, software 41 * distributed under the License is distributed on an "AS IS" BASIS, 42 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 43 * See the License for the specific language governing permissions and 44 * limitations under the License. 45 * ╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱ 46 */ 47 48 import org.metricshub.wbem.javax.cim.CIMParameter; 49 import org.metricshub.wbem.sblim.cimclient.internal.cimxml.sax.SAXSession; 50 import org.xml.sax.Attributes; 51 import org.xml.sax.SAXException; 52 53 /** 54 * Class AbstractParameterNode is the superclass of ParameterArrayNode, 55 * ParameterNode, ParameterRefArrayNode and ParameterReferenceNode classes. 56 */ 57 public abstract class AbstractParameterNode extends Node implements TypedIf { 58 private String iName; 59 60 protected QualifiedNodeHandler iQualiHandler; 61 62 protected SAXSession iSession; 63 64 /** 65 * Ctor. 66 * 67 * @param pNameEnum 68 */ 69 public AbstractParameterNode(String pNameEnum) { 70 super(pNameEnum); 71 } 72 73 @Override 74 public void init(Attributes pAttribs, SAXSession pSession) throws SAXException { 75 this.iSession = pSession; 76 this.iQualiHandler = QualifiedNodeHandler.init(this.iQualiHandler); 77 this.iName = getCIMName(pAttribs); 78 specificInit(pAttribs); 79 } 80 81 protected abstract void specificInit(Attributes pAttribs) throws SAXException; 82 83 @Override 84 public void testChild(String pNodeNameEnum) throws SAXException { 85 if (pNodeNameEnum != QUALIFIER) throw new SAXException( 86 getNodeName() + " cannot have " + pNodeNameEnum + " child node!" 87 ); 88 } 89 90 @Override 91 public void childParsed(Node pChild) { 92 this.iQualiHandler.addQualifierNode(pChild); 93 } 94 95 /** 96 * @param pData 97 */ 98 @Override 99 public void parseData(String pData) { 100 // no data 101 } 102 103 /** 104 * getCIMParameter 105 * 106 * @return CIMParameter 107 */ 108 public CIMParameter<Object> getCIMParameter() { 109 /* 110 * CIMParameter(String name, CIMDataType type, CIMQualifier[] 111 * qualifiers) 112 * 113 * Not dealing with embedded object is faster. Here we don't have to do 114 * anything with embedded object qualifier, since parameter doesn't have 115 * value. 116 * 117 * Strict embObj type parsing requires different behavior. 118 */ 119 return new CIMParameter<Object>( 120 this.iName, 121 getType(), 122 this.iQualiHandler.getQualis(!this.iSession.strictEmbObjParsing()) 123 ); 124 } 125 }