shared_ptr<EntitiesEntities> EntitiesEntity::getChilds(const shared_ptr<IPortalDatabase> &database, const ObjectsTypes &types, const RangeUint32 &range, CommonOrder order) const { shared_ptr<DbSqlSelect> select; getChildsStatement(database, types, range, false, false, false, select); switch(order) { case coSubmitDateAsc: select->orderBy.add(DbSqlField(DBTABLES::SNAPSHOT_OBJECTS::SUBMIT_DATE, DBTABLES::SNAPSHOT_OBJECTS_TABLE), DbSqlField::foAsc); break; case coSubmitDateDesc: select->orderBy.add(DbSqlField(DBTABLES::SNAPSHOT_OBJECTS::SUBMIT_DATE, DBTABLES::SNAPSHOT_OBJECTS_TABLE), DbSqlField::foDesc); break; case coPositionAsc: select->orderBy.add(DbSqlField(DBTABLES::SNAPSHOT_OBJECTS::POSITION, DBTABLES::SNAPSHOT_OBJECTS_TABLE), DbSqlField::foAsc); break; case coPositionDesc: select->orderBy.add(DbSqlField(DBTABLES::SNAPSHOT_OBJECTS::POSITION, DBTABLES::SNAPSHOT_OBJECTS_TABLE), DbSqlField::foDesc); break; default: OS_EXCEPTION("Invalid order"); break; } return getChilds(database, types, range, select); }
shared_ptr<EntitiesEntities> EntitiesEntity::getChilds(const shared_ptr<IPortalDatabase> &database, const ExtensionsComponentID &component, const RangeUint32 &range, CommonOrder order) const { OS_TIMER_PERFORMANCE(TP, _S("Entity::getChilds")); shared_ptr<DbSqlSelect> select; getChildsStatement(database, portalObjectTypeSection, range, false, false, false, select); // Aggiunge alla select la tabella delle sezioni select->tables.add(DbSqlTable(DBTABLES::SECTIONS_TABLE)); // Crea la join tra la tabella di cache e quella delle sezioni select->where.add(DbSqlField(DBTABLES::SNAPSHOT_OBJECTS::CURRENT, DBTABLES::SNAPSHOT_OBJECTS_TABLE), DbSqlField(DBTABLES::SECTIONS::ID, DBTABLES::SECTIONS_TABLE)); // Seleziona il componente specificato select->where.add(DbSqlField(DBTABLES::SECTIONS::COMPONENT, DBTABLES::SECTIONS_TABLE), Convert::toSQL(component.toUTF16())); switch(order) { case coSubmitDateAsc: select->orderBy.add(DbSqlField(DBTABLES::SNAPSHOT_OBJECTS::SUBMIT_DATE, DBTABLES::SNAPSHOT_OBJECTS_TABLE), DbSqlField::foAsc); break; case coSubmitDateDesc: select->orderBy.add(DbSqlField(DBTABLES::SNAPSHOT_OBJECTS::SUBMIT_DATE, DBTABLES::SNAPSHOT_OBJECTS_TABLE), DbSqlField::foDesc); break; case coPositionAsc: select->orderBy.add(DbSqlField(DBTABLES::SNAPSHOT_OBJECTS::POSITION, DBTABLES::SNAPSHOT_OBJECTS_TABLE), DbSqlField::foAsc); break; case coPositionDesc: select->orderBy.add(DbSqlField(DBTABLES::SNAPSHOT_OBJECTS::POSITION, DBTABLES::SNAPSHOT_OBJECTS_TABLE), DbSqlField::foDesc); break; default: OS_EXCEPTION("Invalid order"); break; } return getChilds(database, portalObjectTypeSection, range, select); }
void xml_node::clear() { std::vector<xml_node*> const& childs = getChilds(); for( xml_node * node : childs ) { node->clear(); } _childs.clear(); }
String OMLItem::getSingleText() { // Alcuni tag dovrebbero contenere solo un figlio di testo nel body, quali il [code], il [noparse] e il [?]. if(getChilds().size() == 1) { shared_ptr<OMLItem> text = getChilds().front(); //Assert sotto commentato, un caso come //[img][center]alfa[/center][/img] //finisce qui con text->getTagName() == "center". //OS_ASSERT(text->getTagName() == OMLItem::ITEM_TAG_TEXT); if(text->getTagName() == OMLItem::ITEM_TAG_TEXT) { return text->getParam(OMLItem::ITEM_PARAM_TEXT); } } return String::EMPTY; }
// save as text (must implement!) bool ConfigVarBase::saveText( SaveStruct &s ) const { QTextStream &ts = *s.ts; QString name = getName(); const ChildList &cl = getChilds(); if ( !s.firstItem ) { ts << ",\n"; } s.firstItem = 0; if ( !cl.empty() ) { // must serialize as group now // put indent putIndent(ts, s.indent); if ( !name.isEmpty() ) { ts << '"' << escape(name) << '"' << " : {\n"; } else { ts << "{\n"; } SaveStruct ls(s); ls.indent++; ls.firstItem = 1; size_t nwr = 0; for (size_t i=0; i<cl.size(); i++) { if ( cl[i]->varFlags & CF_TRANSIENT ) continue; if ( !cl[i]->saveText(ls) ) return 0; nwr++; } if ( nwr ) ts << '\n'; putIndent(ts, s.indent); ts << "}"; } return 1; }
shared_ptr<EntitiesEntities> EntitiesEntity::getChilds(const shared_ptr<IPortalDatabase> &database, PortalObjectType type, const RangeUint32 &range, CommonOrder order) const { return getChilds(database, ObjectsTypes(1, type), range, order); }
shared_ptr<EntitiesEntities> EntitiesEntity::getChilds(const shared_ptr<IPortalDatabase> &database, PortalObjectType type, const RangeUint32 &range, shared_ptr<DbSqlSelect> select) const { return getChilds(database, ObjectsTypes(1, type), range, select); }