diff options
author | dims <dims@13f79535-47bb-0310-9956-ffa450edef68> | 2008-06-17 00:23:01 +0000 |
---|---|---|
committer | dims <dims@13f79535-47bb-0310-9956-ffa450edef68> | 2008-06-17 00:23:01 +0000 |
commit | bdd0a41aed7edf21ec2a65cfa17a86af2ef8c48a (patch) | |
tree | 38a92061c0793434c4be189f1d70c3458b6bc41d /tags/cpp-sdo-1.0.incubating-M3-RC1/runtime/core/src/commonj/sdo/SDODataConverter.h |
Move Tuscany from Incubator to top level.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@668359 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'tags/cpp-sdo-1.0.incubating-M3-RC1/runtime/core/src/commonj/sdo/SDODataConverter.h')
-rw-r--r-- | tags/cpp-sdo-1.0.incubating-M3-RC1/runtime/core/src/commonj/sdo/SDODataConverter.h | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/tags/cpp-sdo-1.0.incubating-M3-RC1/runtime/core/src/commonj/sdo/SDODataConverter.h b/tags/cpp-sdo-1.0.incubating-M3-RC1/runtime/core/src/commonj/sdo/SDODataConverter.h new file mode 100644 index 0000000000..1cbf92f2aa --- /dev/null +++ b/tags/cpp-sdo-1.0.incubating-M3-RC1/runtime/core/src/commonj/sdo/SDODataConverter.h @@ -0,0 +1,83 @@ +/* +* +* Copyright 2007 The Apache Software Foundation or its licensors, as applicable. +* +* 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. +*/ + +/* $Rev$ $Date$ */ + +#ifndef _SDODATACONVERTER_H_ +#define _SDODATACONVERTOR_H_ + +#include "commonj/sdo/DataTypeInfo.h" +#include "commonj/sdo/SDODate.h" + +namespace commonj +{ + namespace sdo + { + // The SDODataConverter class provides methods that convert between the + // many primitive data types that SDO must support. In general, the + // inputs to a method are a DataTypeInfo::SDODataTypeUnion that gives + // the source value that is to be converted and a + // DataTypeInfo::TrueDataType that says which member of the union is + // actually set. The target of the conversion is determined by the + // method name. + + class SDODataConverter + { + + public: + static const bool convertToBoolean(const DataTypeInfo::SDODataTypeUnion& sourceValue, + const DataTypeInfo::TrueDataType& dataType); + static const char convertToByte(const DataTypeInfo::SDODataTypeUnion& sourceValue, + const DataTypeInfo::TrueDataType& dataType); + static const wchar_t convertToCharacter(const DataTypeInfo::SDODataTypeUnion& sourceValue, + const DataTypeInfo::TrueDataType& dataType); + static const short convertToShort(const DataTypeInfo::SDODataTypeUnion& sourceValue, + const DataTypeInfo::TrueDataType& dataType); + static const long convertToInteger(const DataTypeInfo::SDODataTypeUnion& sourceValue, + const DataTypeInfo::TrueDataType& dataType); + static const int64_t convertToLong(const DataTypeInfo::SDODataTypeUnion& sourceValue, + const DataTypeInfo::TrueDataType& dataType); + static const float convertToFloat(const DataTypeInfo::SDODataTypeUnion& sourceValue, + const DataTypeInfo::TrueDataType& dataType); + static const double convertToDouble(const DataTypeInfo::SDODataTypeUnion& sourceValue, + const DataTypeInfo::TrueDataType& dataType); + static const SDODate convertToDate(const DataTypeInfo::SDODataTypeUnion& sourceValue, + const DataTypeInfo::TrueDataType& dataType); + + static SDOString* convertToSDOString(const DataTypeInfo::SDODataTypeUnion& sourceValue, + const DataTypeInfo::TrueDataType& dataType); + + static unsigned int convertToBytes(const DataTypeInfo::SDODataTypeUnion& sourceValue, + const DataTypeInfo::TrueDataType& dataType, + char* outptr, + unsigned int max_length); + static unsigned int convertToString(const DataTypeInfo::SDODataTypeUnion& sourceValue, + const DataTypeInfo::TrueDataType& dataType, + wchar_t* outptr, + unsigned int max_length); + private: + // We sometimes need to convert primitive data types into an + // equivalent string representation and for that we need a + // temporary buffer. Rather than fret too much about how big each + // one can be we choose a size that should be adequate for any of them + + static const int MAX_TRANSIENT_SIZE; + }; + } +} + +#endif // _SDODATACONVERTER_H |