Перейти к публикации

Получение Dataset у TCComponentItem по его TCComponentItemRevision


Progress

Рекомендованные сообщения

Здравствуйте!

 

Бьюсь над такой проблемой: Стою на Item и мне нужно перейти к его последней ревизии и получить оттуда Dataset'ы.

 

Вот я нахожу выделенный Item и его ревизию. После перехожу на AIFComponentContext который содержит несколько MENCProgram по отношению Контент. Они в свою очередь ссылаются на Dataset.

Только не получается с MENCProgram перейти к Dataset (тип UGCAMPTP).

InterfaceAIFComponent c_target = AIFUtility.getTargetComponent(); //получаю выбранный Item
TCComponentItem item = (TCComponentItem)c_target;
try {
	TCComponentItemRevision itemRev = item.getLatestItemRevision(); //его последняя ревизия
	AIFComponentContext[] itemRevChild = itemRev.getChildren();
            
	for (AIFComponentContext itrch : itemRevChild) {
	if (itrch.getContext().toString().contains("root_activity"))
	{
		InterfaceAIFComponent activity = itrch.getComponent();
		AIFComponentContext[] activityChild = activity.getChildren();
		for (AIFComponentContext ach : activityChild) {
			InterfaceAIFComponent achPr = ach.getComponent(); //здесь стою на MENCProgram
		}
	}
}

Может кто сможет подсказать или идею подкинуть.

 

После того как я получу Dataset'ы нужно будет выгрузить файлы по "Именованным ссылкам" в файловую систему.

Изменено пользователем Progress
Ссылка на сообщение
Поделиться на других сайтах


Пока получается что-то такое... В месте где комментировал код, я нахожусь на объекте содержащем "Именованную ссылку". Вот только вытащить файлы пока не выходит.

InterfaceAIFComponent c_target = AIFUtility.getTargetComponent();
TCComponentItem item = (TCComponentItem)c_target;
try {
    TCComponentItemRevision itemRev = item.getLatestItemRevision();
    AIFComponentContext[] itemRevChild = itemRev.getChildren();
    File[] exportedFiles = null;
    for (AIFComponentContext itrch : itemRevChild) {
        if (itrch.getContext().toString().contains("root_activity")) {
            InterfaceAIFComponent activity = itrch.getComponent();
            TCComponent activityCom = (TCComponent)activity;
            TCComponent[] activityComps = activityCom.getRelatedComponents();
            for (TCComponent activityComp : activityComps){
                if (activityComp.getTypeComponent().toString().contains("MENCProgram")){
                    TCComponent[] achPrComps = activityComp.getRelatedComponents();
                    for (TCComponent achPrComp : achPrComps){
                        if (achPrComp.getTypeComponent().toString().contains("UGCAMPTP")){
                            //здесь нужно скачать файл привязанный именованной ссылкой к TCComponent achPrComp
                        }
                    }
                }
            }
        }
    }
}
catch (TCException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

 

Ссылка на сообщение
Поделиться на других сайтах

TCComponentDataset cam_dataset = .....; //Ваш UGCAMPTP dataset
                                    
TCComponentTcFile tc_files[] = cam_dataset.getTcFiles();

 

for(....)

{

     String original_file_name = tc_files[n].getTCProperty("original_file_name").getStringValue();
                                              
     File f = tc_files[n].getFile(temp_dir,original_file_name);

}
 

Ссылка на сообщение
Поделиться на других сайтах

Спасибо за подсказку!

Вот готовый вариант, вдруг кому понадобится:

InterfaceAIFComponent c_target = AIFUtility.getTargetComponent(); //выделенный таргет
TCComponentItem item = (TCComponentItem)c_target; //item
try {
    TCComponentItemRevision itemRev = item.getLatestItemRevision(); //последняя ревизия итема
    AIFComponentContext[] itemRevChild = itemRev.getChildren();
    for (AIFComponentContext itrch : itemRevChild) {
        if (itrch.getContext().toString().contains("root_activity")) { //если дочерний объект в нужном отношении
            InterfaceAIFComponent activity = itrch.getComponent();
            TCComponent activityCom = (TCComponent)activity;
            TCComponent[] activityComps = activityCom.getRelatedComponents(); //все объекты в отношениях с TCComponent activityCom
            for (TCComponent activityComp : activityComps){
                if (activityComp.getTypeComponent().toString().contains("MENCProgram")) { //если объект нужного типа
                    TCComponent[] achPrComps = activityComp.getRelatedComponents();	 //все объекты в отношениях с TCComponent activityComp					
                    for (TCComponent achPrComp : achPrComps) {								
                        if (achPrComp.getTypeComponent().toString().contains("UGCAMPTP")) { //если объект нужного типа
                            TCComponentDataset cam_dataset = (TCComponentDataset)achPrComp;
                            TCComponentTcFile tc_files[] = cam_dataset.getTcFiles(); //получаем файлы TCComponentDataset cam_dataset
                            int n = 0;
                            for (TCComponentTcFile tc_file : tc_files) {                                      
                                File f = tc_files[n].getFile(sPath); //sPath - переменная String
                                n = n + 1;
                            }
                        }
                    }
                }
            }
            break;
        }
    }			
} catch (TCException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

 

Изменено пользователем Progress
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...