19 #ifndef ATTRIBUTEACCESSOR_HXX
20 #define ATTRIBUTEACCESSOR_HXX
27 #include <cxpom/libcxpom_exports.h>
34 static int getValue(tag_t inst_tag, tag_t att_tag,
bool& value,
bool& isNull) {
return getLogicalValue(inst_tag, att_tag, value, isNull); }
35 static int getValue(tag_t inst_tag, tag_t att_tag,
char& value,
bool& isNull) {
return getCharValue(inst_tag, att_tag, value, isNull); }
36 static int getValue(tag_t inst_tag, tag_t att_tag, date_t& value,
bool& isNull) {
return getDateValue(inst_tag, att_tag, value, isNull); }
37 static int getValue(tag_t inst_tag, tag_t att_tag,
double& value,
bool& isNull) {
return getDoubleValue(inst_tag, att_tag, value, isNull); }
38 static int getValue(tag_t inst_tag, tag_t att_tag,
int& value,
bool& isNull) {
return getIntegerValue(inst_tag, att_tag, value, isNull); }
39 static int getValue(tag_t inst_tag, tag_t att_tag, tag_t& value,
bool& isNull) {
return getTagValue(inst_tag, att_tag, value, isNull); }
40 static int getValue(tag_t inst_tag, tag_t att_tag,
const char*& value,
bool& isNull);
54 static int getCharValue ( tag_t inst_tag, tag_t att_tag ,
char &value,
bool &isNull,
bool &hasReadAccess );
59 static int getCharValue ( tag_t inst_tag, tag_t att_tag ,
char &value,
bool &isNull );
64 static int getCharValue ( tag_t inst_tag, tag_t att_tag ,
char &value );
69 static int setCharValue( tag_t inst_tag, tag_t att_tag ,
char value,
bool isNull =
false );
74 static int getDateValue( tag_t inst_tag, tag_t att_tag , date_t &value,
bool &isNull,
bool& hasReadAccess );
79 static int getDateValue( tag_t inst_tag, tag_t att_tag , date_t &value,
bool &isNull );
84 static int getDateValue( tag_t inst_tag, tag_t att_tag , date_t &value );
89 static int setDateValue( tag_t inst_tag, tag_t att_tag , date_t value,
bool isNull =
false );
94 static int getDoubleValue( tag_t inst_tag, tag_t att_tag ,
double &value,
bool &isNull,
bool& hasReadAccess );
99 static int getDoubleValue( tag_t inst_tag, tag_t att_tag ,
double &value,
bool &isNull );
104 static int getDoubleValue( tag_t inst_tag, tag_t att_tag ,
double &value );
109 static int setDoubleValue( tag_t inst_tag, tag_t att_tag ,
double value,
bool isNull =
false );
114 static int getIntegerValue( tag_t inst_tag, tag_t att_tag ,
int &value,
bool &isNull,
bool& hasReadAccess );
119 static int getIntegerValue( tag_t inst_tag, tag_t att_tag ,
int &value,
bool &isNull );
124 static int getIntegerValue( tag_t inst_tag, tag_t att_tag ,
int &value );
129 static int setIntegerValue( tag_t inst_tag, tag_t att_tag ,
int value,
bool isNull =
false );
134 static int getLogicalValue( tag_t inst_tag, tag_t att_tag ,
bool &value,
bool &isNull,
bool& hasReadAccess );
139 static int getLogicalValue( tag_t inst_tag, tag_t att_tag ,
bool &value,
bool &isNull );
144 static int getLogicalValue( tag_t inst_tag, tag_t att_tag ,
bool &value );
149 static int setLogicalValue( tag_t inst_tag, tag_t att_tag ,
bool value,
bool isNull =
false );
154 static int getStringValue( tag_t inst_tag, tag_t att_tag , std::string& value,
bool &isNull );
159 static int getStringValue( tag_t inst_tag, tag_t att_tag , std::string& value );
164 static int getStringValue(tag_t inst_tag, tag_t att_tag, std::string& value,
bool& isNull,
bool& hasReadAccess );
169 static int setStringValue( tag_t inst_tag, tag_t att_tag ,
const std::string& value,
bool isNull =
false );
174 static int getTagValue( tag_t inst_tag, tag_t att_tag , tag_t &value,
bool &isNull,
bool& hasReadAccess);
179 static int getTagValue( tag_t inst_tag, tag_t att_tag , tag_t &value,
bool &isNull );
184 static int getTagValue( tag_t inst_tag, tag_t att_tag , tag_t &value );
189 static int setTagValue( tag_t inst_tag, tag_t att_tag , tag_t value,
bool isNull =
false );
194 static int getCharValueAt( tag_t inst_tag, tag_t att_tag,
int pos,
char& value,
bool* isNull,
bool& hasReadAccess );
199 static int getCharValueAt( tag_t inst_tag, tag_t att_tag,
int pos,
char &value,
bool* isNull = 0 );
204 static int setCharValueAt( tag_t inst_tag, tag_t att_tag ,
int pos,
char value,
bool isNull =
false );
209 static int getDateValueAt( tag_t inst_tag, tag_t att_tag,
int pos, date_t& value,
bool* isNull,
bool& hasReadAccess );
214 static int getDateValueAt( tag_t inst_tag, tag_t att_tag,
int pos, date_t &value,
bool* isNull = 0 );
219 static int setDateValueAt( tag_t inst_tag, tag_t att_tag ,
int pos, date_t value,
bool isNull =
false );
224 static int getDoubleValueAt( tag_t inst_tag, tag_t att_tag,
int pos,
double& value,
bool* isNull,
bool& hasReadAccess );
229 static int getDoubleValueAt( tag_t inst_tag, tag_t att_tag ,
int pos,
double &value,
bool* isNull = 0 );
234 static int setDoubleValueAt( tag_t inst_tag, tag_t att_tag ,
int pos,
double value,
bool isNull =
false );
239 static int getIntegerValueAt( tag_t inst_tag, tag_t att_tag,
int pos,
int& value,
bool* isNull,
bool& hasReadAccess );
244 static int getIntegerValueAt( tag_t inst_tag, tag_t att_tag ,
int pos,
int &value,
bool* isNull = 0 );
249 static int setIntegerValueAt( tag_t inst_tag, tag_t att_tag ,
int pos,
int value,
bool isNull =
false );
254 static int getLogicalValueAt( tag_t inst_tag, tag_t att_tag,
int pos,
bool& value,
bool* isNull,
bool& hasReadAccess );
259 static int getLogicalValueAt( tag_t inst_tag, tag_t att_tag ,
int pos,
bool &value,
bool* isNull = 0 );
264 static int setLogicalValueAt( tag_t inst_tag, tag_t att_tag ,
int pos,
bool value,
bool isNull =
false );
269 static int getStringValueAt( tag_t inst_tag, tag_t att_tag,
int pos, std::string& value,
bool* isNull,
bool& hasReadAccess );
274 static int getStringValueAt( tag_t inst_tag, tag_t att_tag ,
int pos, std::string& value,
bool* isNull = 0 );
279 static int setStringValueAt( tag_t inst_tag, tag_t att_tag ,
int pos, std::string& value,
bool isNull =
false );
284 static int getTagValueAt( tag_t inst_tag, tag_t att_tag,
int pos, tag_t& value,
bool* isNull,
bool& hasReadAccess );
289 static int getTagValueAt( tag_t inst_tag, tag_t att_tag ,
int pos, tag_t &value,
bool* isNull = 0 );
294 static int setTagValueAt( tag_t inst_tag, tag_t att_tag ,
int pos, tag_t value,
bool isNull =
false );
299 static int getCharValues( tag_t inst_tag, tag_t att_tag, std::vector<char> &values, std::vector<int> &isNull,
bool& hasReadAccess );
304 static int getCharValues( tag_t inst_tag, tag_t att_tag, std::vector<char> &values, std::vector<int> &isNull );
309 static int getCharValues( tag_t inst_tag, tag_t att_tag, std::vector<char> &values );
314 static int getDateValues( tag_t inst_tag, tag_t att_tag, std::vector< date_t > &values, std::vector<int> &isNull,
bool& hasReadAccess );
319 static int getDateValues( tag_t inst_tag, tag_t att_tag, std::vector< date_t > &values, std::vector<int> &isNull );
324 static int getDateValues( tag_t inst_tag, tag_t att_tag, std::vector< date_t > &values );
329 static int getDoubleValues( tag_t inst_tag, tag_t att_tag , std::vector< double > &values, std::vector<int> &isNull,
bool& hasReadAccess );
334 static int getDoubleValues( tag_t inst_tag, tag_t att_tag , std::vector< double > &values, std::vector<int> &isNull );
339 static int getDoubleValues( tag_t inst_tag, tag_t att_tag , std::vector< double > &values );
344 static int getIntegerValues( tag_t inst_tag, tag_t att_tag , std::vector<int> &values, std::vector<int> &isNull,
bool& hasReadAccess );
349 static int getIntegerValues( tag_t inst_tag, tag_t att_tag , std::vector<int> &values, std::vector<int> &isNull );
354 static int getIntegerValues( tag_t inst_tag, tag_t att_tag , std::vector<int> &values );
359 static int getLogicalValues( tag_t inst_tag, tag_t att_tag, std::vector<int> &values, std::vector<int> &isNull,
bool& hasReadAccess );
364 static int getLogicalValues( tag_t inst_tag, tag_t att_tag, std::vector<int> &values, std::vector<int> &isNull );
369 static int getLogicalValues( tag_t inst_tag, tag_t att_tag, std::vector<int> &values );
374 static int getStringValues( tag_t inst_tag, tag_t att_tag, std::vector<std::string> &values, std::vector<int> &isNull,
bool& hasReadAccess );
379 static int getStringValues( tag_t inst_tag, tag_t att_tag, std::vector<std::string> &values, std::vector<int> &isNull );
384 static int getStringValues( tag_t inst_tag, tag_t att_tag, std::vector<std::string> &values );
389 static int getTagValues( tag_t inst_tag, tag_t att_tag , std::vector<tag_t> &values, std::vector<int> &isNull,
bool& hasReadAccess );
394 static int getTagValues( tag_t inst_tag, tag_t att_tag , std::vector<tag_t> &values, std::vector<int> &isNull );
399 static int getTagValues( tag_t inst_tag, tag_t att_tag , std::vector<tag_t> &values );
404 static int appendTagValues( tag_t inst_tag, tag_t att_tag ,
const std::vector<tag_t> &values,
const std::vector<int> *isNull = 0 );
409 static bool isCharNull ( tag_t inst_tag, tag_t att_tag );
414 static bool isDateNull ( tag_t inst_tag, tag_t att_tag );
419 static bool isDoubleNull ( tag_t inst_tag, tag_t att_tag );
424 static bool isIntegerNull ( tag_t inst_tag, tag_t att_tag );
429 static bool isLogicalNull ( tag_t inst_tag, tag_t att_tag );
434 static bool isStringNull ( tag_t inst_tag, tag_t att_tag );
439 static bool isTagNull ( tag_t inst_tag, tag_t att_tag );
452 static int insertChar( tag_t inst_tag, tag_t att_tag,
int pos,
char type );
466 static int insertDate( tag_t inst_tag, tag_t att_tag,
int pos, date_t type );
479 static int insertDouble( tag_t inst_tag, tag_t att_tag,
int pos,
double type );
491 static int insertInteger( tag_t inst_tag, tag_t att_tag,
int pos,
int type );
503 static int insertLogical( tag_t inst_tag, tag_t att_tag,
int pos,
bool type );
515 static int insertString( tag_t inst_tag, tag_t att_tag,
int pos, std::string type );
527 static int insertTag( tag_t inst_tag, tag_t att_tag,
int pos, tag_t type );
532 static int charIndex( tag_t inst_tag, tag_t att_tag ,
char value,
int &index_val );
537 static int dateIndex( tag_t inst_tag, tag_t att_tag , date_t value,
int &index_val );
542 static int doubleIndex( tag_t inst_tag, tag_t att_tag ,
double value,
int &index_val );
547 static int integerIndex( tag_t inst_tag, tag_t att_tag ,
int value,
int &index_val );
552 static int logicalIndex( tag_t inst_tag, tag_t att_tag , logical value,
int &index_val );
557 static int stringIndex( tag_t inst_tag, tag_t att_tag , std::string& value,
int &index_val );
562 static int tagIndex( tag_t inst_tag, tag_t att_tag , tag_t value,
int &index_val );
567 static int removeChar( tag_t inst_tag, tag_t att_tag ,
char value );
572 static int removeDate( tag_t inst_tag, tag_t att_tag , date_t value );
577 static int removeDouble( tag_t inst_tag, tag_t att_tag ,
double value );
582 static int removeInteger( tag_t inst_tag, tag_t att_tag ,
int value );
587 static int removeLogical( tag_t inst_tag, tag_t att_tag ,
bool value );
592 static int removeString( tag_t inst_tag, tag_t att_tag , std::string& value );
597 static int removeTag( tag_t inst_tag, tag_t att_tag , tag_t value );
602 static int appendChar( tag_t inst_tag, tag_t att_tag ,
char value );
607 static int appendDate( tag_t inst_tag, tag_t att_tag , date_t value );
612 static int appendDouble( tag_t inst_tag, tag_t att_tag ,
double value );
617 static int appendInteger( tag_t inst_tag, tag_t att_tag ,
int value );
622 static int appendLogical( tag_t inst_tag, tag_t att_tag ,
bool value );
627 static int appendString( tag_t inst_tag, tag_t att_tag , std::string value );
632 static int appendTag( tag_t inst_tag, tag_t att_tag , tag_t value );
637 static int resetCharArray( tag_t inst_tag, tag_t att_tag,
const std::vector<char>& values,
const std::vector<int>* is_null = 0);
642 static int resetCharList( tag_t inst_tag, tag_t att_tag,
const std::vector<char>& values,
const std::vector<int>* is_null = 0);
647 static int resetDateArray( tag_t inst_tag, tag_t att_tag,
const std::vector<date_t>& values,
const std::vector<int>* is_null = 0);
652 static int resetDateList( tag_t inst_tag, tag_t att_tag,
const std::vector<date_t>& values,
const std::vector<int>* is_null = 0);
657 static int resetDoubleArray( tag_t inst_tag, tag_t att_tag,
const std::vector<double>& values,
const std::vector<int>* is_null = 0);
662 static int resetDoubleList( tag_t inst_tag, tag_t att_tag,
const std::vector<double>& values,
const std::vector<int>* is_null);
667 static int resetIntegerArray( tag_t inst_tag, tag_t att_tag,
const std::vector<int>& values,
const std::vector<int>* is_null);
672 static int resetIntegerList( tag_t inst_tag, tag_t att_tag,
const std::vector<int>& values,
const std::vector<int>* is_null = 0);
677 static int resetLogicalArray( tag_t inst_tag, tag_t att_tag,
const std::vector<int>& values,
const std::vector<int>* is_null = 0);
682 static int resetLogicalList( tag_t inst_tag, tag_t att_tag,
const std::vector<int>& values,
const std::vector<int>* is_null = 0);
687 static int resetStringArray( tag_t inst_tag, tag_t att_tag,
const std::vector<std::string>& values,
const std::vector<int>* is_null = 0);
692 static int resetStringList( tag_t inst_tag, tag_t att_tag,
const std::vector<std::string>& values,
const std::vector<int>* is_null = 0);
697 static int resetTagArray( tag_t inst_tag, tag_t att_tag,
const std::vector<tag_t>& values,
const std::vector<int>* is_null = 0);
702 static int resetTagList( tag_t inst_tag, tag_t att_tag,
const std::vector<tag_t>& values,
const std::vector<int>* is_null = 0);
707 static int length( tag_t inst_tag, tag_t att_tag);
712 static int setNull( tag_t inst_tag, tag_t attr_tag );
717 static int setNullList( tag_t inst_tag, tag_t attr_tag );
722 static int setNullArray( tag_t inst_tag, tag_t attr_tag );
727 static int removeAt(tag_t inst, tag_t attr,
int position);
732 static int reorder(tag_t inst_tag, tag_t attr_tag,
int oldStart,
int oldEnd,
int newStart);
735 static int getCharValue(tag_t inst_tag, tag_t att_tag,
bool checkReadAccess,
char& value,
bool& isNull,
bool& isEmpty,
bool& hasReadAccess);
736 static int getDateValue(tag_t inst_tag, tag_t att_tag,
bool checkReadAccess, date_t& value,
bool& isNull,
bool& isEmpty,
bool& hasReadAccess);
737 static int getDoubleValue(tag_t inst_tag, tag_t att_tag,
bool checkReadAccess,
double& value,
bool& isNull,
bool& isEmpty,
bool& hasReadAccess);
738 static int getIntegerValue(tag_t inst_tag, tag_t att_tag,
bool checkReadAccess,
int& value,
bool& isNull,
bool& isEmpty,
bool& hasReadAccess);
739 static int getLogicalValue(tag_t inst_tag, tag_t att_tag,
bool checkReadAccess,
bool& value,
bool& isNull,
bool& isEmpty,
bool& hasReadAccess);
740 static int getStringValue(tag_t inst_tag, tag_t att_tag,
bool checkReadAccess, std::string& value,
bool& isNull,
bool& isEmpty,
bool& hasReadAccess);
741 static int getTagValue(tag_t inst_tag, tag_t att_tag,
bool checkReadAccess, tag_t& value,
bool& isNull,
bool& isEmpty,
bool& hasReadAccess);
744 #include <cxpom/libcxpom_undef.h>