You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by ed...@apache.org on 2006/06/06 16:16:37 UTC
svn commit: r412127 [2/2] - in /incubator/tuscany/cpp/sdo:
projects/tuscany_sdo/sdo_axiom_test/ runtime/core/src/commonj/sdo/
Modified: incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/TypeImpl.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/TypeImpl.cpp?rev=412127&r1=412126&r2=412127&view=diff
==============================================================================
--- incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/TypeImpl.cpp (original)
+++ incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/TypeImpl.cpp Tue Jun 6 07:16:35 2006
@@ -165,7 +165,7 @@
typeURI = new char[strlen(uri)+1];
strcpy(typeURI,uri);
- if (!strcmp(uri,Type::SDOTypeNamespaceURI)) {
+ if (!strcmp(uri,Type::SDOTypeNamespaceURI.c_str())) {
for (int i = 0; i < num_types ; i++) {
if (!strcmp(inname,types[i])) {
typeEnum = (Types)i;
@@ -209,7 +209,7 @@
}
if (name != 0)delete name;
if (typeURI != 0) delete typeURI;
- for (int j = 0; j < aliases.size();j++)
+ for (unsigned int j = 0; j < aliases.size();j++)
{
delete aliases[j];
}
@@ -465,6 +465,18 @@
}
return (Property&)*pi;
}
+ const Property& TypeImpl::getProperty(const SDOString& propertyName) const
+ {
+ PropertyImpl* pi = getPropertyImpl(propertyName); // ??? GMW
+ if (pi == 0)
+ {
+ string msg("Property not found:");
+ msg += propertyName;
+ SDO_THROW_EXCEPTION("getProperty",
+ SDOPropertyNotFoundException, msg.c_str());
+ }
+ return (Property&)*pi;
+ }
///////////////////////////////////////////////////////////////////////////
@@ -494,14 +506,14 @@
{
return ((*i)->getTypeImpl());
}
- for (int k=0;k < (*i)->getAliasCount(); k++)
+ for (unsigned int k=0;k < (*i)->getAliasCount(); k++)
{
if (!strcmp(propertyName,(*i)->getAlias(k)))
{
return ((*i)->getTypeImpl());
}
}
- for (int j=0;j < (*i)->getSubstitutionCount(); j++)
+ for (unsigned int j=0;j < (*i)->getSubstitutionCount(); j++)
{
if (!strcmp(propertyName,(*i)->getSubstitutionName(j)))
{
@@ -578,7 +590,7 @@
return (PropertyImpl*)(*i);
}
}
- for (int j=0;j < (*i)->getSubstitutionCount(); j++)
+ for (unsigned int j=0;j < (*i)->getSubstitutionCount(); j++)
{
if (!strcmp(copy,(*i)->getSubstitutionName(j)))
{
@@ -602,7 +614,7 @@
}
}
}
- for (int k=0;k < (*i)->getAliasCount(); k++)
+ for (unsigned int k=0;k < (*i)->getAliasCount(); k++)
{
if (!strcmp(copy,(*i)->getAlias(k)))
{
@@ -629,7 +641,119 @@
}
return 0;
}
+ // +++
+ PropertyImpl* TypeImpl::getPropertyImpl(const SDOString& propertyName) const
+ {
+
+ // Extension - find the property from an xpath
+ // you should not be able to have both "." and "[" before a "/" - this is assumed.
+
+ if (propertyName.length() == 0) return 0;
+
+ // strchr returns NULL if target not found
+ // find_first_of returns string::npos in that case
+ // find_first_of returns the subscript of the character found eg 0 if it is the first
+ size_t tokenend = propertyName.find_first_of('/');
+ size_t bracket = propertyName.find_first_of('[');
+ size_t dot = propertyName.find_first_of('.');
+ size_t dotOrBracketOrSlash = propertyName.find_first_of(".[/");
+ SDOString copy;
+ // char* copy;
+
+ int len = propertyName.length();
+ if (dotOrBracketOrSlash != string::npos)
+ {
+ len = dotOrBracketOrSlash;
+ }
+
+ if (len != 0)
+ {
+ copy.assign(propertyName, 0, len);
+ }
+ else
+ {
+ copy = propertyName;
+ }
+
+ std::list<PropertyImpl*>::const_iterator i;
+ for (i = props.begin(); i != props.end(); ++i)
+ {
+ if (!strcmp(copy.c_str(),(*i)->getName())) // ie the two strings are the same
+ {
+ // delete copy;
+ if ((tokenend != string::npos) && (propertyName.length() - tokenend) > 1)
+ {
+ // There is someting to the right of the "/"
+ const TypeImpl* ti = (*i)->getTypeImpl();
+ if (ti != 0)
+ {
+ PropertyImpl* p = ti->getPropertyImpl(SDOString(propertyName, tokenend + 1));
+ return p;
+ }
+ else
+ {
+ return (PropertyImpl*)(*i);
+ }
+ }
+ else {
+ return (PropertyImpl*)(*i);
+ }
+ }
+
+ for (unsigned int j = 0; j < (*i)->getSubstitutionCount(); j++)
+ {
+ if (!strcmp(copy.c_str(), (*i)->getSubstitutionName(j))) // ie the two strings are the same
+ {
+ // delete copy;
+ if ((tokenend != string::npos) && (propertyName.length() - tokenend) > 1)
+ {
+ // There is someting to the right of the "/"
+ const TypeImpl* ti = (*i)->getTypeImpl();
+ if (ti != 0)
+ {
+ // PropertyImpl* p = ti->getPropertyImpl((const char *)(tokenend+1));
+ PropertyImpl* p = ti->getPropertyImpl(SDOString(propertyName, tokenend + 1));
+ return p;
+ }
+ else
+ {
+ return (PropertyImpl*)(*i);
+ }
+ }
+ else {
+ return (PropertyImpl*)(*i);
+ }
+ }
+ }
+ for (unsigned int k = 0; k < (*i)->getAliasCount(); k++)
+ {
+ if (!strcmp(copy.c_str(), (*i)->getAlias(k))) // ie the two strings are the same
+ {
+ // delete copy;
+ if ((tokenend != string::npos) && (propertyName.length() - tokenend) > 1)
+ {
+ const TypeImpl* ti = (*i)->getTypeImpl();
+ if (ti != 0)
+ {
+ // PropertyImpl* p = ti->getPropertyImpl((const char *)(tokenend+1));
+ PropertyImpl* p = ti->getPropertyImpl(SDOString(propertyName, tokenend + 1));
+ return p;
+ }
+ else
+ {
+ return (PropertyImpl*)(*i);
+ }
+ }
+ else {
+ return (PropertyImpl*)(*i);
+ }
+ }
+ }
+ }
+ return 0;
+ }
+ // ---
///////////////////////////////////////////////////////////////////////////
// Returns the property with the specified name.
@@ -645,7 +769,7 @@
{
return (PropertyImpl*)(*i);
}
- for (int k=0;k < (*i)->getAliasCount(); k++)
+ for (unsigned int k=0;k < (*i)->getAliasCount(); k++)
{
if (!strcmp(propertyName,(*i)->getAlias(k)))
{
@@ -677,6 +801,23 @@
SDO_THROW_EXCEPTION("getPropertyIndex",
SDOPropertyNotFoundException, msg.c_str());
}
+ unsigned int TypeImpl::getPropertyIndex(const SDOString& propertyName) const
+ {
+ std::list<PropertyImpl*>::const_iterator i;
+ int j = 0;
+ for (i = props.begin(); i != props.end(); ++i)
+ {
+ if (!strcmp(propertyName.c_str(), (*i)->getName()))
+ {
+ return j;
+ }
+ j++;
+ }
+ string msg("Property not found:");
+ msg += propertyName;
+ SDO_THROW_EXCEPTION("getPropertyIndex",
+ SDOPropertyNotFoundException, msg.c_str());
+ }
///////////////////////////////////////////////////////////////////////////
// Returns the property with the specified name.
///////////////////////////////////////////////////////////////////////////
@@ -955,7 +1096,7 @@
{
if (*value != 0) delete ((wchar_t*)*value);
wchar_t* vw = new wchar_t[strlen(c)+1];
- for (int i=0;i< strlen(c);i++)
+ for (unsigned int i=0;i< strlen(c);i++)
{
vw[i] = (wchar_t)c[i];
}
@@ -968,7 +1109,7 @@
{
if (*value != 0) delete ((char*)*value);
char* vc = new char[strlen(c)+1];
- for (int i=0;i< strlen(c);i++)
+ for (unsigned int i=0;i< strlen(c);i++)
{
vc[i] = (char)c[i];
}
@@ -993,10 +1134,122 @@
return 0;
}
+ // +++
+
+ // This is set CString...
+ // The value supplied in s is converted and written to value.
+ unsigned int TypeImpl::convert(void** value, const SDOString& c) const
+ {
+ switch (typeEnum)
+ {
+ case BooleanType:
+ if (*value != 0) delete ((char*) *value);
+ *value = new char[sizeof(long)];
+
+ if (c == "true")
+ {
+ *(long*)*value = 0;
+ }
+ else
+ {
+ *(long*)*value = 1;
+ }
+ return sizeof(long);
+
+ case ByteType:
+ case CharacterType:
+ case IntegerType:
+ case ShortType:
+ if (*value != 0) delete ((char*)*value);
+
+ *value = new char[sizeof(long)];
+ *(long*)*value = atoi(c.c_str());
+ return sizeof(long);
+
+ case DoubleType:
+ if (*value != 0) delete ((char*)*value);
+
+ *value = new char[sizeof(long double)];
+ // TODO - atof not suitable here
+ *(long double*)*value = (long double)atof(c.c_str());
+ return sizeof(long double);
+
+ case FloatType:
+ if (*value != 0) delete ((char*)*value);
+
+ *value = new char[sizeof(float)];
+ *(float*)*value = (float)atof(c.c_str());
+ return sizeof(float);
+
+ case LongType:
+ if (*value != 0) delete ((char*)*value);
+
+ *value = new char[sizeof(int64_t)];
+#if defined(WIN32) || defined (_WINDOWS)
+ *(int64_t*)*value = (int64_t)_atoi64(c.c_str());
+#else
+ *(int64_t*)*value = (int64_t)strtoll(c.c_str(), NULL, 0);
+#endif
+ return sizeof(int64_t);
+
+ case DateType:
+ if (*value != 0) delete ((char*)*value);
+ *value = new char[sizeof(time_t)];
+ *(time_t*)*value = (time_t)atoi(c.c_str());
+ return sizeof(time_t);
+
+ case BigDecimalType:
+ case BigIntegerType:
+ case StringType:
+ case UriType:
+ {
+ if (*value != 0) delete ((wchar_t*)*value);
+ wchar_t* vw = new wchar_t[c.length() + 1];
+ for (unsigned int i = 0; i < c.length(); i++)
+ {
+ vw[i] = (wchar_t)c[i];
+ }
+ vw[c.length()] = 0;
+ *value = (void*)vw;
+ return c.length();
+ }
+ break;
+ case BytesType:
+ {
+ if (*value != 0) delete ((char*)*value);
+ char* vc = new char[c.length() + 1];
+ for (unsigned int i = 0; i < c.length(); i++)
+ {
+ vc[i] = (char)c[i];
+ }
+ vc[c.length()] = 0;
+ *value = (void*)vc;
+ return c.length();
+ }
+ break;
+
+ case OtherTypes:
+ case DataObjectType:
+ case ChangeSummaryType:
+ default:
+ {
+ string msg("Cannot set CString on object of type:");
+ msg += getName();
+ SDO_THROW_EXCEPTION("setString" ,
+ SDOInvalidConversionException, msg.c_str());
+ break;
+ }
+ }
+ return 0;
+ }
+
+
+ // ---
+
// setString
unsigned int TypeImpl::convert(void** value,const wchar_t* b, unsigned int len) const
{
- int i;
+ unsigned int i;
switch (typeEnum)
{
case BigDecimalType:
@@ -1068,7 +1321,7 @@
if (*value != 0)delete ((char*)*value);
*value = new char[sizeof(long)];
int val = 0;
- for (int j=0;j<len;j++)
+ for (unsigned int j=0;j<len;j++)
{
val += (1+ (10*j)) * ((char)b[len-1-j] - (char)'0');
}
@@ -1081,7 +1334,7 @@
if (*value != 0)delete ((char*)*value);
*value = new char[sizeof(int64_t)];
int64_t val = 0;
- for (int j=0;j<len;j++)
+ for (unsigned int j=0;j<len;j++)
{
val += (int64_t)(1+ (10*j)) * ((char)b[len-1-j] - (char)'0');
}
@@ -1109,7 +1362,7 @@
// setBytes
unsigned int TypeImpl::convert(void** value,const char* b, unsigned int len) const
{
- int i;
+ unsigned int i;
switch (typeEnum)
{
case BytesType:
@@ -1179,7 +1432,7 @@
if (*value != 0)delete ((char*)*value);
*value = new char[sizeof(long)];
int val = 0;
- for (int j=0;j<len;j++)
+ for (unsigned int j=0;j<len;j++)
{
val += (1+ (10*j)) * ((char)b[len-1-j] - (char)'0');
}
@@ -1192,7 +1445,7 @@
if (*value != 0)delete ((char*)*value);
*value = new char[sizeof(int64_t)];
int64_t val = 0;
- for (int j=0;j<len;j++)
+ for (unsigned int j=0;j<len;j++)
{
val += (int64_t)(1+ (10*j)) * ((char)b[len-1-j] - (char)'0');
}
@@ -1217,7 +1470,119 @@
}
return 0;
}
-
+
+ // +++
+
+ unsigned int TypeImpl::convert(void** value, const SDOString& b, unsigned int len) const
+ {
+ unsigned int i;
+ switch (typeEnum)
+ {
+ case BytesType:
+ {
+ if (*value != 0) delete ((char*)*value);
+
+ char* vc = new char[len + 1];
+ b.copy(vc, len);
+ vc[len] = 0;
+
+ *value = (void*)vc;
+ return len;
+ }
+
+ case BigDecimalType:
+ case BigIntegerType:
+ case UriType:
+ case StringType:
+ {
+ if (*value != 0) delete ((wchar_t*)*value);
+
+ wchar_t* vw = new wchar_t[len+1];
+ // Can't use std::string.copy() because we are copying into wchar_t elements.
+ for (i=0;i<len;i++)
+ {
+ vw[i] = b[i];
+ }
+ vw[len] = 0;
+ *value = (void*)vw;
+ return len;
+ }
+
+ case BooleanType:
+ if (*value != 0)delete ((char*)*value);
+ *value = new char[sizeof(long)];
+ if (len > 4)
+ {
+ *(long*)*value = 0;
+ }
+ else
+ {
+ if (b == "true")
+ *(long*)*value = 1;
+ else *(long*)*value = 0;
+ }
+ return sizeof(long);
+
+ case ByteType:
+ case CharacterType:
+ if (*value != 0)delete ((char*)*value);
+ *value = new char[sizeof(long)];
+ if (len > 0)
+ {
+ *(long*)*value = (long)b[0];
+ }
+ else
+ {
+ *(long*)*value = (long)0;
+ }
+ return sizeof(long);
+
+ case IntegerType:
+ case ShortType:
+ {
+ if (*value != 0)delete ((char*)*value);
+ *value = new char[sizeof(long)];
+ int val = 0;
+ for (unsigned int j=0;j<len;j++)
+ {
+ val += (1+ (10*j)) * ((char)b[len-1-j] - (char)'0');
+ }
+ *(long*)*value = (long)val;
+ return sizeof(long);
+ }
+
+ case LongType:
+ {
+ if (*value != 0)delete ((char*)*value);
+ *value = new char[sizeof(int64_t)];
+ int64_t val = 0;
+ for (unsigned int j=0;j<len;j++)
+ {
+ val += (int64_t)(1+ (10*j)) * ((char)b[len-1-j] - (char)'0');
+ }
+ *(int64_t*)*value = (int64_t)val;
+ return sizeof(long);
+ }
+
+ case DoubleType:
+ case FloatType:
+ case DateType:
+ case OtherTypes:
+ case DataObjectType:
+ case ChangeSummaryType:
+ default:
+ {
+ string msg("Cannot set Bytes on object of type:");
+ msg += getName();
+ SDO_THROW_EXCEPTION("setBytes" ,
+ SDOInvalidConversionException, msg.c_str());
+ return 0;
+ }
+ }
+ return 0;
+ }
+
+ // ---
unsigned int TypeImpl::convert(void** value,const short s) const
{
@@ -1661,7 +2026,7 @@
char* tmpstr = new char[MAX_LONG_SIZE];
int j = 0;
#endif
- int i;
+ unsigned int i;
switch (typeEnum)
{
@@ -1875,7 +2240,7 @@
unsigned int TypeImpl::convertToBytes(void* value, char* outval, unsigned int len,
unsigned int max) const
{
- int i;
+ unsigned int i;
switch (typeEnum)
{
case BytesType:
@@ -2005,10 +2370,174 @@
return 0;
}
+ // +++
+
+ // value is a pointer to the byte stream that is the value to convert
+ // outval is the resulting string representation of value
+ // len is the length of the input byte stream, it is used only when the length cannot be inferred from other information.
+ // max is the maximum size allowed for the output byte stream. (Not strictly needed when the output is an std::string but we maintain the behaviour from the earlier method.
+
+ // Questions
+ // 1. Why isn't value const?
+ //
+ unsigned int TypeImpl::convertToBytes(const void* value,
+ SDOString& outval,
+ unsigned int len,
+ unsigned int max) const
+ {
+ unsigned int i;
+ switch (typeEnum)
+ {
+ case BytesType:
+ {
+ if (value == 0) return 0;
+
+ const char* tempPtr = (const char*) value;
+ unsigned int count = (len > max) ? max : len;
+ outval.assign(tempPtr, count);
+
+ return count;
+ }
+
+ case BigDecimalType:
+ case BigIntegerType:
+ case UriType:
+ case StringType:
+ {
+ if (value == 0) return 0;
+
+ const wchar_t* tempPtr = (const wchar_t*) value;
+ unsigned int count = (len > max) ? max : len;
+
+ // The following loop copies the low byte from each 2 byte wchar_t
+ // into one byte of the target array eg H_E_L_P -> HELP
+ for (i = 0; (i < count); i++)
+ {
+ outval[i] = (char)(tempPtr[i]);
+ }
+ return count;
+ }
+
+ case BooleanType:
+ {
+ if (value == 0 || *(const long*)value == 0) {
+ if (max < 5) return 0;
+ outval = "false";
+ return 5;
+ }
+ else {
+ if (max < 4) return 0;
+ outval = "true";
+ return 4;
+ }
+ return 0;
+ }
+
+ case CharacterType:
+ case ByteType:
+ {
+ if (value == 0) return 0;
+
+ const long tmp = *(const long*)value;
+ outval[0] = (char)(tmp&0xFF);
+ return 1;
+ }
+
+ case ShortType:
+ case IntegerType:
+ {
+ if (value == 0) return 0;
+
+ const long tmp = *(const long*) value;
+ char* tmpstr = new char[MAX_LONG_SIZE + 1];
+ sprintf(tmpstr, "%ld", tmp);
+ if (strlen(tmpstr) > max)
+ {
+ delete tmpstr;
+ return 0;
+ }
+ outval = tmpstr;
+ delete tmpstr;
+ return outval.length();
+ }
+
+ case LongType:
+ {
+ if (value == 0) return 0;
+
+ const int64_t tmp = *(const int64_t*)value;
+ char* tmpstr = new char[MAX_LONG_SIZE + 1];
+ sprintf(tmpstr, "%lld", tmp);
+ if (strlen(tmpstr) > max)
+ {
+ delete tmpstr;
+ return 0;
+ }
+ outval = tmpstr;
+ delete tmpstr;
+ return outval.length();
+ }
+ case DateType:
+ {
+ if (value == 0) return 0;
+
+ string msg("Conversion to string not implemented from type:");
+ msg += getName();
+ SDO_THROW_EXCEPTION("getBytes" ,
+ SDOInvalidConversionException, msg.c_str());
+ break;
+ }
+
+ case DoubleType:
+ {
+ if (value == 0) return 0;
+
+ if (max < MAX_DOUBLE_SIZE) return 0;
+
+ char* tmpstr = new char[MAX_DOUBLE_SIZE + 1];
+ sprintf(tmpstr, "%.3Le", *(const long double*)value);
+ outval = tmpstr;
+ delete tmpstr;
+ return outval.length();
+ }
+
+ case FloatType:
+ {
+ if (value == 0) return 0;
+
+ if (max < MAX_FLOAT_SIZE) return 0;
+
+ char* tmpstr = new char[MAX_FLOAT_SIZE + 1];
+ sprintf(tmpstr, "%.3Le", *(const float*)value);
+ outval = tmpstr;
+ delete tmpstr;
+ return outval.length();
+ }
+
+ case OtherTypes:
+ case DataObjectType:
+ default:
+ {
+ if (max < 9) return 0;
+
+ char tmpstr[9];
+ sprintf(tmpstr, "%08x", value);
+ outval = tmpstr;
+ //string msg("Cannot get Bytes from object of type:");
+ //msg += getName();
+ //SDO_THROW_EXCEPTION("getBytes" ,
+ // SDOInvalidConversionException, msg.c_str());
+ return outval.length();
+ }
+ }
+ return 0;
+ }
+
+ // ---
const char* TypeImpl::convertToCString(void* value, char** asstringbuf, unsigned int len) const
{
- int i;
+ unsigned int i;
switch (typeEnum)
{
@@ -2867,8 +3396,7 @@
return 0.0;
}
char* tmp = new char[len+1];
- int j = 0;
- for (j=0;j<len;j++)
+ for (unsigned int j=0;j<len;j++)
{
tmp[j] = (char)((wchar_t*)value)[j];
}
@@ -3052,8 +3580,7 @@
return 0.0;
}
char* tmp = new char[len+1];
- int j = 0;
- for (j=0;j<len;j++)
+ for (unsigned int j=0;j<len;j++)
{
tmp[j] = (char)((wchar_t*)value)[j];
}
Modified: incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/TypeImpl.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/TypeImpl.h?rev=412127&r1=412126&r2=412127&view=diff
==============================================================================
--- incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/TypeImpl.h (original)
+++ incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/TypeImpl.h Tue Jun 6 07:16:35 2006
@@ -78,8 +78,10 @@
unsigned int convertDate( void ** value, const SDODate i) const;
unsigned int convert( void ** value,const char* s) const;
+ unsigned int convert(void ** value, const SDOString& s) const;
unsigned int convert( void ** value,const wchar_t* s, unsigned int len) const;
unsigned int convert( void ** value,const char* s, unsigned int len) const;
+ unsigned int convert(void ** value, const SDOString& s, unsigned int len) const;
unsigned int convert( void ** value,const bool b) const;
unsigned int convert( void ** value,const char c) const;
unsigned int convert( void ** value,const wchar_t c) const;
@@ -99,6 +101,8 @@
unsigned int max) const;
unsigned int convertToBytes( void* value , char* val, unsigned int len,
unsigned int max) const;
+ unsigned int convertToBytes( const void* value , SDOString& val, unsigned int len,
+ unsigned int max) const;
const wchar_t convertToCharacter( void* value ,unsigned int len) const;
const short convertToShort( void* value ,unsigned int len) const;
const long convertToInteger( void* value ,unsigned int len) const;
@@ -150,9 +154,11 @@
// Returns the property with the specified name.
///////////////////////////////////////////////////////////////////////////
const Property& getProperty(const char* propertyName) const ;
+ const Property& getProperty(const SDOString& propertyName) const ;
const Property& getProperty(unsigned int index) const ;
PropertyImpl* getPropertyImpl(const char* propertyName) const ;
+ PropertyImpl* getPropertyImpl(const SDOString& propertyName) const ;
PropertyImpl* getPropertyImpl(unsigned int index) const ;
@@ -169,6 +175,7 @@
unsigned int getPropertyIndex(const char* propertyName) const ;
+ unsigned int getPropertyIndex(const SDOString& propertyName) const ;
unsigned int getPropertiesSize() const;
///////////////////////////////////////////////////////////////////////////
Modified: incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/XMLDocumentImpl.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/XMLDocumentImpl.h?rev=412127&r1=412126&r2=412127&view=diff
==============================================================================
--- incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/XMLDocumentImpl.h (original)
+++ incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/XMLDocumentImpl.h Tue Jun 6 07:16:35 2006
@@ -25,6 +25,7 @@
#include "commonj/sdo/XMLDocument.h"
#include "commonj/sdo/DataObject.h"
#include "commonj/sdo/SDOXMLString.h"
+#include "commonj/sdo/SDOString.h"
namespace commonj
@@ -58,7 +59,7 @@
virtual DataObjectPtr getRootDataObject() const {return dataObject;}
virtual const char* getRootElementURI() const {return rootElementURI;}
- virtual const char* getRootElementName() const {return rootElementName;}
+ virtual const char* getRootElementName() const {return rootElementName;}
virtual const char* getEncoding() const {return encoding;}
virtual void setEncoding(const char* enc);
@@ -77,7 +78,7 @@
friend std::istream& operator>>(std::istream& input, XMLDocumentImpl& doc);
private:
- DataObjectPtr dataObject;
+ DataObjectPtr dataObject;
SDOXMLString rootElementURI;
SDOXMLString rootElementName;
SDOXMLString encoding;
Modified: incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/XMLHelperImpl.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/XMLHelperImpl.cpp?rev=412127&r1=412126&r2=412127&view=diff
==============================================================================
--- incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/XMLHelperImpl.cpp (original)
+++ incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/XMLHelperImpl.cpp Tue Jun 6 07:16:35 2006
@@ -87,7 +87,7 @@
{
DataFactory* df = dataFactory;
rootElementURI = dataObject->getType().getURI();
- rootElementName = ((DataFactoryImpl*)df)->getRootElementName();
+ rootElementName = ((DataFactoryImpl*)df)->getRootElementName().c_str();
}
}
catch (SDOPropertyNotFoundException&)
Modified: incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/XSDHelperImpl.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/XSDHelperImpl.cpp?rev=412127&r1=412126&r2=412127&view=diff
==============================================================================
--- incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/XSDHelperImpl.cpp (original)
+++ incubator/tuscany/cpp/sdo/runtime/core/src/commonj/sdo/XSDHelperImpl.cpp Tue Jun 6 07:16:35 2006
@@ -120,7 +120,7 @@
for (int j = 0; j < pl.size(); j++)
{
if (!pl[j].getType().isDataType()
- && strcmp(pl[j].getType().getURI(),Type::SDOTypeNamespaceURI))
+ && strcmp(pl[j].getType().getURI(),Type::SDOTypeNamespaceURI.c_str()))
{
// recurse the tree..
newSubstitute(pl[j].getType().getName(),
@@ -469,7 +469,7 @@
}
// Do not add DASValue to ChangeSummary
- if (!(prop.typeUri.equals(Type::SDOTypeNamespaceURI)
+ if (!(prop.typeUri.equals(Type::SDOTypeNamespaceURI.c_str())
&& prop.typeName.equals("ChangeSummary")))
{
df->setDASValue(
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org