| /* -*- C++ -*- */ |
| /* |
| * Copyright 2003-2004 The Apache Software Foundation. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| * |
| * |
| * @author Susantha Kumara (skumara@virtusa.com) |
| * @author Roshan Weerasuriya (roshanw@jkcsworld.com, roshan@opensource.lk, roshan_444@yahoo.com) |
| * |
| */ |
| |
| // !!! This include file must be first thing in file !!! |
| #include "../platforms/PlatformAutoSense.hpp" |
| |
| #include <axis/AxisUserAPI.hpp> |
| |
| #include "AxisUtils.h" |
| #include "../soap/apr_base64.h" |
| |
| #include "AxisTrace.h" |
| |
| AXIS_CPP_NAMESPACE_START |
| |
| AxisXMLCh AxisUtils::m_Buffer[CONVERT_BUFFER_SIZE]; |
| |
| AxisUtils::AxisUtils () |
| { |
| |
| } |
| |
| AxisUtils::~AxisUtils () |
| { |
| |
| } |
| |
| const AxisXMLCh* AxisUtils::ToAxisXMLCh (const AxisChar* pch) |
| { |
| /* return XMLString::transcode(pch); |
| * this is ok as long as we use xerces library. |
| */ |
| return pch; |
| } |
| |
| void AxisUtils::initialize () |
| { |
| } |
| |
| /* following functions is not thread safe and should only be used |
| * for initialization purposes. |
| */ |
| const AxisXMLCh * |
| AxisUtils::Convert (const AxisChar * pch) |
| { |
| |
| /* if (XMLString::transcode(pch, m_Buffer, CONVERT_BUFFER_SIZE)) |
| * return m_Buffer; |
| * return NULL; |
| */ |
| return pch; |
| } |
| |
| |
| int AxisUtils::clearArray (char* arrCh, int iSize) |
| { |
| for (int iTmp = 0; iTmp < iSize; iTmp++) |
| { |
| arrCh[iTmp] = '\0'; |
| } |
| |
| return AXIS_SUCCESS; |
| } |
| |
| bool AxisUtils::isCharacterAvailable (const string &sString, |
| const char cCharacter) |
| { |
| bool bFoundStatus = false; |
| |
| if ((sString.find (cCharacter, 0)) != string::npos) |
| { |
| bFoundStatus = true; |
| } |
| |
| return bFoundStatus; |
| } |
| |
| bool AxisUtils::isCharacterAvailable (const char* pchStringToSearch, |
| const char cCharacter) |
| { |
| bool bFoundStatus = false; |
| |
| if (strchr (pchStringToSearch, cCharacter)) |
| { |
| bFoundStatus = true; |
| } |
| |
| return bFoundStatus; |
| } |
| |
| string AxisUtils::toUpperCase (const string sWord) |
| { |
| /* Fill the code */ |
| |
| return NULL; |
| } |
| |
| char* AxisUtils::toUpperCase (const char* pchWord) |
| { |
| /* Fill the code */ |
| |
| return NULL; |
| } |
| |
| string AxisUtils::toLowerCase (const string sWord) |
| { |
| /* Fill the code */ |
| |
| return NULL; |
| } |
| |
| char* AxisUtils::toLowerCase (const char* pchWord) |
| { |
| /* Fill the code */ |
| |
| return NULL; |
| } |
| |
| xsd__base64Binary * AxisUtils::decodeFromBase64Binary(const AxisChar *pValue) |
| { |
| xsd__base64Binary* value = new xsd__base64Binary(); |
| int size = apr_base64_decode_len (pValue); |
| xsd__unsignedByte * pTemp = new unsigned char[size + 1]; |
| size = apr_base64_decode_binary (pTemp, pValue); |
| pTemp[size] = 0; // Null terminate so it could be used as a string |
| value->set(pTemp, size); |
| delete [] pTemp; |
| return value; |
| } |
| |
| bool AxisUtils::isStringOnlyWithSpaces(const char* pchWord) |
| { |
| bool blnStatus = true; |
| |
| int iLen = strlen(pchWord); |
| |
| for (int i=0; i<iLen; i++) { |
| if (pchWord[i] != ' ') { |
| blnStatus = false; |
| break; |
| } |
| } |
| |
| return blnStatus; |
| } |
| |
| IAnySimpleType* AxisUtils::createSimpleTypeObject(XSDTYPE type) |
| { |
| return createSimpleTypeObject(NULL, type); |
| } |
| |
| IAnySimpleType* AxisUtils::createSimpleTypeObject(void * pValue, XSDTYPE type) |
| { |
| logEntryEngine("AxisUtils::createSimpleTypeObject") |
| |
| IAnySimpleType* xsdValue = NULL; |
| |
| // Put commonly used type at top of switch statement! |
| switch (type) |
| { |
| case XSD_STRING: |
| xsdValue = new String((xsd__string) pValue); |
| break; |
| case XSD_NORMALIZEDSTRING: |
| xsdValue = new NormalizedString((xsd__normalizedString) pValue); |
| break; |
| case XSD_DECIMAL: |
| xsdValue = new Decimal((xsd__decimal*) pValue); |
| break; |
| case XSD_INTEGER: |
| xsdValue = new Integer((xsd__integer*) pValue); |
| break; |
| case XSD_LONG: |
| xsdValue = new Long((xsd__long*) pValue); |
| break; |
| case XSD_INT: |
| xsdValue = new Int((xsd__int*) pValue); |
| break; |
| case XSD_SHORT: |
| xsdValue = new Short((xsd__short*) pValue); |
| break; |
| case XSD_BYTE: |
| xsdValue = new Byte((xsd__byte*) pValue); |
| break; |
| case XSD_NONNEGATIVEINTEGER: |
| xsdValue = new NonNegativeInteger((xsd__nonNegativeInteger*) pValue); |
| break; |
| case XSD_UNSIGNEDLONG: |
| xsdValue = new UnsignedLong((xsd__unsignedLong*) pValue); |
| break; |
| case XSD_UNSIGNEDINT: |
| xsdValue = new UnsignedInt((xsd__unsignedInt*) pValue); |
| break; |
| case XSD_UNSIGNEDSHORT: |
| xsdValue = new UnsignedShort((xsd__unsignedShort*) pValue); |
| break; |
| case XSD_UNSIGNEDBYTE: |
| xsdValue = new UnsignedByte((xsd__unsignedByte*) pValue); |
| break; |
| case XSD_POSITIVEINTEGER: |
| xsdValue = new PositiveInteger((xsd__positiveInteger*) pValue); |
| break; |
| case XSD_NONPOSITIVEINTEGER: |
| xsdValue = new NonPositiveInteger((xsd__nonPositiveInteger*) pValue); |
| break; |
| case XSD_NEGATIVEINTEGER: |
| xsdValue = new NegativeInteger((xsd__negativeInteger*) pValue); |
| break; |
| case XSD_FLOAT: |
| xsdValue = new Float((xsd__float*) pValue); |
| break; |
| case XSD_BOOLEAN: |
| xsdValue = new Boolean((xsd__boolean*) pValue); |
| break; |
| case XSD_DOUBLE: |
| xsdValue = new Double((xsd__double*) pValue); |
| break; |
| case XSD_DURATION: |
| xsdValue = new Duration((xsd__duration*) pValue); |
| break; |
| case XSD_DATETIME: |
| xsdValue = new DateTime((xsd__dateTime*) pValue); |
| break; |
| case XSD_TIME: |
| xsdValue = new Time((xsd__time*) pValue); |
| break; |
| case XSD_DATE: |
| xsdValue = new Date((xsd__date*) pValue); |
| break; |
| case XSD_GYEARMONTH: |
| xsdValue = new GYearMonth((xsd__gYearMonth*) pValue); |
| break; |
| case XSD_GYEAR: |
| xsdValue = new GYear((xsd__gYear*) pValue); |
| break; |
| case XSD_GMONTHDAY: |
| xsdValue = new GMonthDay((xsd__gMonthDay*) pValue); |
| break; |
| case XSD_GDAY: |
| xsdValue = new GDay((xsd__gDay*) pValue); |
| break; |
| case XSD_GMONTH: |
| xsdValue = new GMonth((xsd__gMonth*) pValue); |
| break; |
| case XSD_HEXBINARY: |
| xsdValue = new HexBinary((xsd__hexBinary*) pValue); |
| break; |
| case XSD_BASE64BINARY: |
| xsdValue = new Base64Binary((xsd__base64Binary*) pValue); |
| break; |
| case XSD_ANYURI: |
| xsdValue = new AnyURI((xsd__anyURI) pValue); |
| break; |
| case XSD_QNAME: |
| xsdValue = new XSD_QName((xsd__QName) pValue); |
| break; |
| case XSD_NOTATION: |
| xsdValue = new NOTATION((xsd__NOTATION) pValue); |
| break; |
| case XSD_TOKEN: |
| xsdValue = new Token((xsd__token) pValue); |
| break; |
| case XSD_LANGUAGE: |
| xsdValue = new Language((xsd__language) pValue); |
| break; |
| case XSD_NAME: |
| xsdValue = new Name((xsd__Name) pValue); |
| break; |
| case XSD_NCNAME: |
| xsdValue = new NCName((xsd__NCName) pValue); |
| break; |
| case XSD_ID: |
| xsdValue = new ID((xsd__ID) pValue); |
| break; |
| case XSD_IDREF: |
| xsdValue = new IDREF((xsd__IDREF) pValue); |
| break; |
| case XSD_IDREFS: |
| xsdValue = new IDREFS((xsd__IDREFS) pValue); |
| break; |
| case XSD_ENTITY: |
| xsdValue = new ENTITY((xsd__ENTITY) pValue); |
| break; |
| case XSD_ENTITIES: |
| xsdValue = new ENTITIES((xsd__ENTITIES) pValue); |
| break; |
| case XSD_NMTOKEN: |
| xsdValue = new NMTOKEN((xsd__NMTOKEN) pValue); |
| break; |
| case XSD_NMTOKENS: |
| xsdValue = new NMTOKENS((xsd__NMTOKENS) pValue); |
| break; |
| case XSD_ANYTYPE: |
| xsdValue = new AnyType2((xsd__anyType) pValue); |
| break; |
| default: |
| break; |
| } |
| |
| logExitWithPointer(xsdValue) |
| |
| return xsdValue; |
| } |
| |
| AXIS_CPP_NAMESPACE_END |
| |
| |
| |