// ============================================================================ // // 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.sql; import java.io.File; import org.apache.log4j.Logger; import org.eclipse.core.runtime.IPath; import org.eclipse.jface.wizard.Wizard; import org.talend.commons.exception.ExceptionHandler; import org.talend.commons.exception.PersistenceException; import org.talend.commons.utils.VersionUtils; import org.talend.commons.utils.WorkspaceUtils; import org.talend.core.model.properties.ByteArray; import org.talend.core.model.properties.PropertiesFactory; import org.talend.core.model.properties.Property; import org.talend.core.repository.model.ProxyRepositoryFactory; import org.talend.dataprofiler.core.PluginConstant; import org.talend.dataprofiler.core.i18n.internal.DefaultMessagesImpl; import org.talend.dataquality.properties.TDQSourceFileItem; import org.talend.dq.analysis.parameters.SqlFileParameter; import org.talend.repository.model.IProxyRepositoryFactory; import org.talend.resource.ResourceManager; /** * DOC qzhang class global comment. Detailled comment <br/> * * $Id: talend.epf 1 2006-09-29 17:06:40Z nrousseau $ * */ public class CreateSqlFileWizard extends Wizard { protected static Logger log = Logger.getLogger(CreateSqlFileWizard.class); private CreateSqlFileWizardPage mPage; private File sqlFile; private SqlFileParameter parameter; private TDQSourceFileItem sourceFileItem; /** * DOC qzhang CreateSqlFileWizard constructor comment. * * @param folder */ public CreateSqlFileWizard(SqlFileParameter parameter) { this.parameter = parameter; } /* * (non-Javadoc) * * @see org.eclipse.jface.wizard.Wizard#addPages() */ @Override public void addPages() { mPage = new CreateSqlFileWizardPage(parameter); mPage.setTitle(DefaultMessagesImpl.getString("CreateSqlFileWizard.newSQLFile")); //$NON-NLS-1$ mPage.setDescription(DefaultMessagesImpl.getString("CreateSqlFileWizard.define")); //$NON-NLS-1$ mPage.setPageComplete(false); addPage(mPage); } /* * (non-Javadoc) * * @see org.eclipse.jface.wizard.Wizard#performFinish() */ @Override public boolean performFinish() { IPath path = WorkspaceUtils.fileToIFile(new File(parameter.getFolderProvider().getFolder().getPath())).getFullPath() .makeRelativeTo(ResourceManager.getSourceFileFolder().getFullPath()); Property property = PropertiesFactory.eINSTANCE.createProperty(); property.setVersion(VersionUtils.DEFAULT_VERSION); property.setStatusCode(PluginConstant.EMPTY_STRING); property.setLabel(WorkspaceUtils.normalize(parameter.getFileName())); property.setDisplayName(parameter.getFileName()); sourceFileItem = org.talend.dataquality.properties.PropertiesFactory.eINSTANCE .createTDQSourceFileItem(); sourceFileItem.setProperty(property); sourceFileItem.setName(parameter.getFileName()); sourceFileItem.setExtension(PluginConstant.SQL_STRING); sourceFileItem.setFilename(property.getLabel() + "_" + property.getVersion() + PluginConstant.DOT_STRING + PluginConstant.SQL_STRING); // set empty content ByteArray byteArray = PropertiesFactory.eINSTANCE.createByteArray(); byteArray.setInnerContent(PluginConstant.EMPTY_STRING.getBytes()); sourceFileItem.setContent(byteArray); IProxyRepositoryFactory repositoryFactory = ProxyRepositoryFactory.getInstance(); try { property.setId(repositoryFactory.getNextId()); repositoryFactory.create(sourceFileItem, path); this.sqlFile = getCreatedSqlFile(sourceFileItem, path); return true; } catch (PersistenceException e) { ExceptionHandler.process(e); } return false; } /** * DOC xqliu Comment method "getCreatedSqlFile". * * @param sourceFileItem * @param path * @return */ private File getCreatedSqlFile(TDQSourceFileItem sourceFileItem, IPath path) { return ResourceManager.getSourceFileFolder().getRawLocation().append(path) .append(WorkspaceUtils.normalize(sourceFileItem.getName()) + "_0.1." + sourceFileItem.getExtension()).toFile(); //$NON-NLS-1$ } /** * Getter for sqlFile. * * @return the sqlFile */ public File getSqlFile() { return this.sqlFile; } // Added 20130603 yyin TDQ-7143 public TDQSourceFileItem getSourceFileItem() { return this.sourceFileItem; } }