// ============================================================================ // // Copyright (C) 2006-2016 Talend Inc. - www.talend.com // // This source code is available under agreement available at // %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt // // You should have received a copy of the agreement // along with this program; if not, write to Talend SA // 9 rue Pages 92150 Suresnes, France // // ============================================================================ package org.talend.dataprofiler.core.ui.imex; import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.eclipse.core.resources.IFile; import org.talend.cwm.helper.TaggedValueHelper; import org.talend.dataprofiler.core.ui.imex.model.ItemRecord; import org.talend.dataprofiler.core.ui.utils.UDIUtils; import orgomg.cwm.objectmodel.core.ModelElement; import orgomg.cwm.objectmodel.core.TaggedValue; /** * created by xqliu on Jan 31, 2013 Detailled comment */ public class ExportUdiForExchangeWizard extends ExportForExchangeWizard { public ExportUdiForExchangeWizard(String specifiedPath) { super(specifiedPath); } /* * (non-Javadoc) * * @see * org.talend.dataprofiler.core.ui.imex.ExportForExchangeWizard#buildItemRecordList(org.talend.dataprofiler.core * .ui.imex.model.ItemRecord[]) */ @Override protected Map<String, ItemRecord[]> buildItemRecordList(ItemRecord[] records) { Map<String, ItemRecord[]> map = new HashMap<String, ItemRecord[]>(); for (ItemRecord record : records) { ModelElement element = record.getElement(); if (element != null) { String zipFileName = element.getName() + ".zip"; //$NON-NLS-1$ List<ItemRecord> list = new ArrayList<ItemRecord>(); list.add(record); list.addAll(getDependencyRecords(record)); map.put(zipFileName, list.toArray(new ItemRecord[list.size()])); } } return map; } /** * get the dependency ItemRecord for UDI. * * @param record UDI ItemRecord * @param records jar files ItemRecord which dependencied by UDI * @return */ private List<ItemRecord> getDependencyRecords(ItemRecord record) { List<ItemRecord> list = new ArrayList<ItemRecord>(); List<File> udiJarfiles = new ArrayList<File>(); TaggedValue tv = TaggedValueHelper.getTaggedValue(TaggedValueHelper.JAR_FILE_PATH, record.getElement().getTaggedValue()); if (tv != null) { for (IFile udiJarFile : UDIUtils.getLibJarFileList()) { for (String jarName : tv.getValue().split("\\|\\|")) { //$NON-NLS-1$ if (udiJarFile.getName().equals(jarName)) { udiJarfiles.add(udiJarFile.getLocation().toFile()); break; } } } } for (File jarFile : udiJarfiles) { list.add(new ItemRecord(jarFile)); } return list; } }