17 #ifndef ZORBA_ITEM_FACTORY_API_H
18 #define ZORBA_ITEM_FACTORY_API_H
23 #include <zorba/config.h>
52 createString(
const String& aString) = 0;
65 createStreamableString( std::istream &stream,
67 bool seekable =
false ) = 0;
76 createAnyURI(
const String& aURI) = 0;
88 createQName(
const String& aNamespace,
const String& aPrefix,
89 const String& aLocalname) = 0;
99 createQName(
const String& aNamespace,
const String& aLocalname) = 0;
111 createQName(
const String& aQNameString) = 0;
120 createNCName(
const String& aValue) = 0;
131 createBase64Binary(
const char* aBinData,
size_t aLength) = 0;
140 createBase64Binary(std::istream& aStream) = 0;
150 createBase64Binary(
const unsigned char* aBinData,
size_t aLength) = 0;
165 createStreamableBase64Binary(
166 std::istream &stream,
168 bool seekable =
false,
169 bool encoded =
false) = 0;
178 createBoolean(
bool aValue) = 0;
187 createDecimalFromLong (
unsigned long aValue) = 0;
196 createDecimalFromDouble (
double aValue) = 0;
205 createDecimal (
const String& aValue) = 0;
214 createInteger(
long long aInteger) = 0;
223 createInteger(
const String& aInteger) = 0;
232 createLong (
long long aLong ) = 0;
241 createInt (
int aInt ) = 0;
250 createShort (
short aShort ) = 0;
259 createByte (
char aByte ) = 0;
268 createDate (
const String& aDate ) = 0;
279 createDate (
short aYear,
short aMonth,
short aDay ) = 0;
294 createDateTime(
short aYear,
short aMonth,
short aDay,
295 short aHour,
short aMinute,
double aSecond,
296 short aTimeZone_hours) = 0;
310 createDateTime(
short aYear,
short aMonth,
short aDay,
311 short aHour,
short aMinute,
double aSecond) = 0;
321 createDateTime(
const String& aDateTimeValue ) = 0;
330 createDouble (
double aValue ) = 0;
339 createDouble (
const String& aValue ) = 0;
348 createDuration(
const String& aValue ) = 0;
362 createDuration (
short aYear,
short aMonths,
short aDays,
363 short aHours,
short aMinutes,
double aSeconds ) = 0;
372 createDayTimeDuration(
const String& aValue ) = 0;
381 createYearMonthDuration(
const String& aValue ) = 0;
391 createDocumentNode(
const String& aBaseUri,
const String& aDocUri ) = 0;
400 createFloat (
const String& aValue ) = 0;
409 createFloat (
float aValue ) = 0;
418 createGDay (
const String& aValue ) = 0;
427 createGDay (
short aDay ) = 0;
436 createGMonth (
const String& aValue ) = 0;
445 createGMonth (
short aMonth ) = 0;
454 createGMonthDay (
const String& aValue ) = 0;
464 createGMonthDay (
short aMonth,
short aDay ) = 0;
473 createGYear (
const String& aValue ) = 0;
482 createGYear (
short aYear ) = 0;
491 createGYearMonth (
const String& aValue ) = 0;
501 createGYearMonth (
short aYear,
short aMonth ) = 0;
511 createHexBinary (
const char* aHexData,
size_t aSize ) = 0;
520 createNegativeInteger (
long long aValue ) = 0;
529 createNonNegativeInteger (
unsigned long long aValue ) = 0;
538 createNonPositiveInteger (
long long aValue ) = 0;
547 createPositiveInteger (
unsigned long long aValue ) = 0;
556 createTime (
const String& aValue ) = 0;
567 createTime (
short aHour,
short aMinute,
double aSecond ) = 0;
579 createTime (
short aHour,
short aMinute,
double aSecond,
short aTimeZone_hours ) = 0;
588 createUnsignedByte(
const unsigned char aValue) = 0;
597 createUnsignedInt(
unsigned int aValue) = 0;
606 createUnsignedLong(
unsigned long long aValue) = 0;
615 createUnsignedShort(
unsigned short aValue) = 0;
640 createElementNode(
Item& aParent,
662 createAttributeNode(
Item aParent,
665 Item aTypedValue) = 0;
668 createAttributeNode(
Item aParent,
671 std::vector<Item> aTypedValue) = 0;
682 virtual Item createCommentNode (
697 virtual Item createPiNode (
712 virtual Item createTextNode(
721 virtual Item createUntypedAtomic(
const String& value) = 0;
723 #ifdef ZORBA_WITH_JSON
728 virtual Item createJSONNull() = 0;
737 virtual Item createJSONNumber(
String aString) = 0;
744 virtual Item createJSONObject(std::vector<std::pair<Item, Item> >& aNames) = 0;
753 virtual Item createJSONArray(std::vector<Item>& aItems) = 0;
770 assignElementTypedValue(
Item& aElement,
771 Item aTypedValue) = 0;
785 assignElementTypedValue(
Item& aElement,
786 std::vector<Item>& aTypedValue) = 0;
797 createUserTypedAtomicItem(
Item& aBaseItem,
Item& aTypeName) = 0;