==== Vzorovy kod pre ESuperCommonData ==== //collection -> EDataCollection prisla niekde zo vstupu, jeden z moznych sposobov pouzitia ESuperCommonData *data = (ESuperCommonData*)collection->GetClassByType(TYPE_SUPER_COMMON_DATA); unsigned long count = data->GetCommonObjectsCount(); EAbstractCardData *tmpData = NULL; for(int i = 0;i < count;i++) { switch(data->GetDataByIdx(i)->WhoIAm()) { case TYPE_COMMON_DATA: tmpData = superData->GetDataByIdx(i); // kod kde spracujete data break; case TYPE_IDS_CUSTOMER_PROFILE: tmpData = superData->GetDataByIdx(i); // kod kde spracujete data break; case TYPE_IDOL_CARD_PUBLISHER: tmpData = superData->GetDataByIdx(i); // kod kde spracujete data break; default: AddLog("Unknown common type %d",superData->GetDataByIdx(i)->WhoIAm()); break; } } ==== alebo ==== //data -> ESuperCommonData objekt ktory mam z kolekcie EAbstractCardData *tmpData = data->GetDataByType(TYPE_COMMON_DATA); if (tmpData != NULL) { //emtest stara vetva, vsetky doteraz implementovane karty } else { tmpData = data->GetDataByType(TYPE_IDOL_CARD_PUBLISHER); if (tmpData) { //osetrenie IDOL karty potrebujeme este TYPE_IDS_CUSTOMER_PROFILE tmpData = data->GetDataByType(TYPE_IDS_CUSTOMER_PROFILE); } else// moze to byt este ina karta napr IDS Pardubice { tmpData = data->GetDataByType(TYPE_IDS_CUSTOMER_PROFILE); //osetrenie IDS Pardubice } // ak sa nenajde ziadny objekt z definovanych typov => ina karta doteraz neimplementovana if (tmpData == NULL) return error; }