in src/common/AxisUserAPI.cpp [195:510]
void Axis_Array::set(void** array, int size, XSDTYPE type)
{
clear();
if (array == NULL)
size = 0;
m_Size = size;
m_Array = NULL;
m_Type = type;
m_belongsToAxisEngine = true;
if (size == 0)
return;
m_Array = new void*[m_Size];
for (int count = 0 ; count < m_Size ; count++)
{
if ( array[count] == NULL)
{
m_Array[count] = NULL;
continue;
}
switch (m_Type)
{
case XSD_STRING:
{
((xsd__string*) m_Array)[count] = new char[strlen(((xsd__string*) array)[count])+1];
strcpy(((xsd__string*) m_Array)[count], ((xsd__string*) array)[count]);
break;
}
case XSD_DURATION:
{
((xsd__duration**) m_Array)[count] = new xsd__duration();
*((xsd__duration**)m_Array)[count] = *((xsd__duration**) array)[count];
break;
}
case XSD_DATETIME:
{
((xsd__dateTime**) m_Array)[count] = new xsd__dateTime();
*((xsd__dateTime**)m_Array)[count] = *((xsd__dateTime**) array)[count];
break;
}
case XSD_TIME:
{
((xsd__time**) m_Array)[count] = new xsd__time();
*((xsd__time**)m_Array)[count] = *((xsd__time**) array)[count];
break;
}
case XSD_DATE:
{
((xsd__date**) m_Array)[count] = new xsd__date();
*((xsd__date**)m_Array)[count] = *((xsd__date**) array)[count];
break;
}
case XSD_GYEARMONTH:
{
((xsd__gYearMonth**) m_Array)[count] = new xsd__gYearMonth();
*((xsd__gYearMonth**)m_Array)[count] = *((xsd__gYearMonth**) array)[count];
break;
}
case XSD_GYEAR:
{
((xsd__gYear**) m_Array)[count] = new xsd__gYear();
*((xsd__gYear**)m_Array)[count] = *((xsd__gYear**) array)[count];
break;
}
case XSD_GMONTHDAY:
{
((xsd__gMonthDay**) m_Array)[count] = new xsd__gMonthDay();
*((xsd__gMonthDay**)m_Array)[count] = *((xsd__gMonthDay**) array)[count];
break;
}
case XSD_GDAY:
{
((xsd__gDay**) m_Array)[count] = new xsd__gDay();
*((xsd__gDay**)m_Array)[count] = *((xsd__gDay**) array)[count];
break;
}
case XSD_GMONTH:
{
((xsd__gMonth**) m_Array)[count] = new xsd__gMonth();
*((xsd__gMonth**)m_Array)[count] = *((xsd__gMonth**) array)[count];
break;
}
case XSD_NORMALIZEDSTRING:
{
((xsd__normalizedString*) m_Array)[count] = new char[strlen(((xsd__normalizedString*) array)[count])+1];
strcpy(((xsd__normalizedString*) m_Array)[count], ((xsd__normalizedString*) array)[count]);
break;
}
case XSD_TOKEN:
{
((xsd__token*) m_Array)[count] = new char[strlen(((xsd__token*) array)[count])+1];
strcpy(((xsd__token*) m_Array)[count], ((xsd__token*) array)[count]);
break;
}
case XSD_LANGUAGE:
{
((xsd__language*) m_Array)[count] = new char[strlen(((xsd__language*) array)[count])+1];
strcpy(((xsd__language*) m_Array)[count], ((xsd__language*) array)[count]);
break;
}
case XSD_NAME:
{
((xsd__Name*) m_Array)[count] = new char[strlen(((xsd__Name*) array)[count])+1];
strcpy(((xsd__Name*) m_Array)[count], ((xsd__Name*) array)[count]);
break;
}
case XSD_NCNAME:
{
((xsd__NCName*) m_Array)[count] = new char[strlen(((xsd__NCName*) array)[count])+1];
strcpy(((xsd__NCName*) m_Array)[count], ((xsd__NCName*) array)[count]);
break;
}
case XSD_ID:
{
((xsd__ID*) m_Array)[count] = new char[strlen(((xsd__ID*) array)[count])+1];
strcpy(((xsd__ID*) m_Array)[count], ((xsd__ID*) array)[count]);
break;
}
case XSD_IDREF:
{
((xsd__IDREF*) m_Array)[count] = new char[strlen(((xsd__IDREF*) array)[count])+1];
strcpy(((xsd__IDREF*) m_Array)[count], ((xsd__IDREF*) array)[count]);
break;
}
case XSD_IDREFS:
{
((xsd__IDREFS*) m_Array)[count] = new char[strlen(((xsd__IDREFS*) array)[count])+1];
strcpy(((xsd__IDREFS*) m_Array)[count], ((xsd__IDREFS*) array)[count]);
break;
}
case XSD_ENTITY:
{
((xsd__ENTITY*) m_Array)[count] = new char[strlen(((xsd__ENTITY*) array)[count])+1];
strcpy(((xsd__ENTITY*) m_Array)[count], ((xsd__ENTITY*) array)[count]);
break;
}
case XSD_ENTITIES:
{
((xsd__ENTITIES*) m_Array)[count] = new char[strlen(((xsd__ENTITIES*) array)[count])+1];
strcpy(((xsd__ENTITIES*) m_Array)[count], ((xsd__ENTITIES*) array)[count]);
break;
}
case XSD_NMTOKEN:
{
((xsd__NMTOKEN*) m_Array)[count] = new char[strlen(((xsd__NMTOKEN*) array)[count])+1];
strcpy(((xsd__NMTOKEN*) m_Array)[count], ((xsd__NMTOKEN*) array)[count]);
break;
}
case XSD_NMTOKENS:
{
((xsd__NMTOKENS*) m_Array)[count] = new char[strlen(((xsd__NMTOKENS*) array)[count])+1];
strcpy(((xsd__NMTOKENS*) m_Array)[count], ((xsd__NMTOKENS*) array)[count]);
break;
}
case XSD_BOOLEAN:
{
((xsd__boolean**) m_Array)[count] = new xsd__boolean();
*((xsd__boolean**)m_Array)[count] = *((xsd__boolean**) array)[count];
break;
}
case XSD_BASE64BINARY:
{
((xsd__base64Binary**) m_Array)[count] = new xsd__base64Binary();
*((xsd__base64Binary**)m_Array)[count] = *((xsd__base64Binary**) array)[count];
break;
}
case XSD_HEXBINARY:
{
((xsd__hexBinary**) m_Array)[count] = new xsd__hexBinary();
*((xsd__hexBinary**)m_Array)[count] = *((xsd__hexBinary**) array)[count];
break;
}
case XSD_FLOAT:
{
((xsd__float**) m_Array)[count] = new xsd__float();
*((xsd__float**)m_Array)[count] = *((xsd__float**) array)[count];
break;
}
case XSD_DECIMAL:
{
((xsd__decimal**) m_Array)[count] = new xsd__decimal();
*((xsd__decimal**)m_Array)[count] = *((xsd__decimal**) array)[count];
break;
}
case XSD_INTEGER:
{
((xsd__integer**) m_Array)[count] = new xsd__integer();
*((xsd__integer**)m_Array)[count] = *((xsd__integer**) array)[count];
break;
}
case XSD_NONPOSITIVEINTEGER:
{
((xsd__nonPositiveInteger**) m_Array)[count] = new xsd__nonPositiveInteger();
*((xsd__nonPositiveInteger**)m_Array)[count] = *((xsd__nonPositiveInteger**) array)[count];
break;
}
case XSD_NEGATIVEINTEGER:
{
((xsd__negativeInteger**) m_Array)[count] = new xsd__negativeInteger();
*((xsd__negativeInteger**)m_Array)[count] = *((xsd__negativeInteger**) array)[count];
break;
}
case XSD_LONG:
{
((xsd__long**) m_Array)[count] = new xsd__long();
*((xsd__long**)m_Array)[count] = *((xsd__long**) array)[count];
break;
}
case XSD_INT:
{
((xsd__int**) m_Array)[count] = new xsd__int();
*((xsd__int**)m_Array)[count] = *((xsd__int**) array)[count];
break;
}
case XSD_SHORT:
{
((xsd__short**) m_Array)[count] = new xsd__short();
*((xsd__short**)m_Array)[count] = *((xsd__short**) array)[count];
break;
}
case XSD_BYTE:
{
((xsd__byte**) m_Array)[count] = new xsd__byte();
*((xsd__byte**)m_Array)[count] = *((xsd__byte**) array)[count];
break;
}
case XSD_NONNEGATIVEINTEGER:
{
((xsd__nonNegativeInteger**) m_Array)[count] = new xsd__nonNegativeInteger();
*((xsd__nonNegativeInteger**)m_Array)[count] = *((xsd__nonNegativeInteger**) array)[count];
break;
}
case XSD_UNSIGNEDLONG:
{
((xsd__unsignedLong**) m_Array)[count] = new xsd__unsignedLong();
*((xsd__unsignedLong**)m_Array)[count] = *((xsd__unsignedLong**) array)[count];
break;
}
case XSD_UNSIGNEDINT:
{
((xsd__unsignedInt**) m_Array)[count] = new xsd__unsignedInt();
*((xsd__unsignedInt**)m_Array)[count] = *((xsd__unsignedInt**) array)[count];
break;
}
case XSD_UNSIGNEDSHORT:
{
((xsd__unsignedShort**) m_Array)[count] = new xsd__unsignedShort();
*((xsd__unsignedShort**)m_Array)[count] = *((xsd__unsignedShort**) array)[count];
break;
}
case XSD_UNSIGNEDBYTE:
{
((xsd__unsignedByte**) m_Array)[count] = new xsd__unsignedByte();
*((xsd__unsignedByte**)m_Array)[count] = *((xsd__unsignedByte**) array)[count];
break;
}
case XSD_POSITIVEINTEGER:
{
((xsd__positiveInteger**) m_Array)[count] = new xsd__positiveInteger();
*((xsd__positiveInteger**)m_Array)[count] = *((xsd__positiveInteger**) array)[count];
break;
}
case XSD_DOUBLE:
{
((xsd__double**) m_Array)[count] = new xsd__double();
*((xsd__double**)m_Array)[count] = *((xsd__double**) array)[count];
break;
}
case XSD_ANYURI:
{
((xsd__anyURI*) m_Array)[count] = new char[strlen(((xsd__anyURI*) array)[count])+1];
strcpy(((xsd__anyURI*) m_Array)[count], ((xsd__anyURI*) array)[count]);
break;
}
case XSD_QNAME:
{
((xsd__QName*) m_Array)[count] = new char[strlen(((xsd__QName*) array)[count])+1];
strcpy(((xsd__QName*) m_Array)[count], ((xsd__QName*) array)[count]);
break;
}
case XSD_NOTATION:
{
((xsd__NOTATION*) m_Array)[count] = new char[strlen(((xsd__NOTATION*) array)[count])+1];
strcpy(((xsd__NOTATION*) m_Array)[count], ((xsd__NOTATION*) array)[count]);
break;
}
case XSD_ARRAY:
{
((Axis_Array**) m_Array)[count] = new Axis_Array(*((Axis_Array**) array)[count]);
break;
}
case USER_TYPE:
{
m_Array[count] = array[count];
break;
}
case XSD_ANYTYPE:
{
((xsd__anyType*) m_Array)[count] = new char[strlen(((xsd__anyType*) array)[count])+1];
strcpy(((xsd__anyType*) m_Array)[count], ((xsd__anyType*) array)[count]);
break;
}
case XSD_UNKNOWN:
case XSD_ANY:
case ATTACHMENT:
default:
break;
} // end switch
} // end for loop
}