// ============================================================================ // // 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.rcp; import java.io.File; import java.io.IOException; import java.util.List; import java.util.Map; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.jobs.Job; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.swt.graphics.Image; import org.talend.commons.exception.BusinessException; import org.talend.commons.exception.ExceptionHandler; import org.talend.commons.exception.LoginException; import org.talend.commons.exception.PersistenceException; import org.talend.commons.exception.SystemException; import org.talend.commons.utils.workbench.resources.ResourceUtils; import org.talend.core.ICoreService; import org.talend.core.model.general.LibraryInfo; import org.talend.core.model.general.Project; import org.talend.core.model.metadata.ColumnNameChanged; import org.talend.core.model.metadata.IMetadataTable; import org.talend.core.model.metadata.MetadataTalendType; import org.talend.core.model.metadata.builder.connection.MetadataTable; import org.talend.core.model.properties.Item; import org.talend.core.model.repository.IRepositoryViewObject; import org.talend.core.repository.model.ProxyRepositoryFactory; import org.talend.core.utils.KeywordsValidator; import org.talend.dataprofiler.core.CorePlugin; import org.talend.designer.core.model.utils.emf.talendfile.NodeType; import org.talend.repository.ProjectManager; import org.talend.repository.RepositoryWorkUnit; import org.talend.utils.io.FilesUtils; /** * * @author zshen * * This class is needed by ProxyRepositoryFactory, so if simple remove it will effect startup for TOP. If you came to * ProxyRepositoryFactory class you will find coreService variable and it need a service (which implements ICoreService) * to initialize itself. We have a CoreService calss in the org.talend.core plugin but in TOP we can't get it from * org.talend.core(TOP don't contain it). So we need another one to instead of it. And ICoreService is main responsible * to check Job name and logon project, logon project we have be done by myself and we don't have job on the TOP. So * TopService only is empty class. */ public class TopService implements ICoreService { /* * (non-Javadoc) * * @see org.talend.core.ICoreService#addWorkspaceTaskDone(java.lang.String) */ @Override public void addWorkspaceTaskDone(String task) { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#checkJob(java.lang.String) */ @Override public boolean checkJob(String name) throws BusinessException { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#createStatsLogAndImplicitParamter(org.talend.core.model.general.Project) */ @Override public void createStatsLogAndImplicitParamter(Project project) { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#deleteAllJobs(boolean) */ @Override public void deleteAllJobs(boolean fromPluginModel) { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#deleteRoutinefile(org.talend.core.model.repository.IRepositoryViewObject) */ @Override public void deleteRoutinefile(IRepositoryViewObject objToDelete) { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#filterSpecialChar(java.lang.String) */ @Override public String filterSpecialChar(String input) { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#getColumnNameChanged(org.talend.core.model.metadata.IMetadataTable, * org.talend.core.model.metadata.IMetadataTable) */ @Override public List<ColumnNameChanged> getColumnNameChanged(IMetadataTable oldTable, IMetadataTable newTable) { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#getContextFileNameForPerl(java.lang.String, java.lang.String, java.lang.String, * java.lang.String) */ @Override public String getContextFileNameForPerl(String projectName, String jobName, String version, String context) { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#getContextFlagFromQueryUtils() */ @Override public boolean getContextFlagFromQueryUtils() { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#getImageWithDocExt(java.lang.String) */ @Override public Image getImageWithDocExt(String extension) { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#getImageWithSpecial(org.eclipse.swt.graphics.Image) */ @Override public ImageDescriptor getImageWithSpecial(Image source) { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#getJavaJobFolderName(java.lang.String, java.lang.String) */ @Override public String getJavaJobFolderName(String jobName, String version) { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#getJavaProjectFolderName(org.talend.core.model.properties.Item) */ @Override public String getJavaProjectFolderName(Item item) { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#getLanTypeString() */ @Override public String getLanTypeString() { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#getLastUser() */ @Override public String getLastUser() { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#getNewMetadataColumns(org.talend.core.model.metadata.IMetadataTable, * org.talend.core.model.metadata.IMetadataTable) */ @Override public List<ColumnNameChanged> getNewMetadataColumns(IMetadataTable oldTable, IMetadataTable newTable) { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see * org.talend.core.ICoreService#getParameterUNIQUENAME(org.talend.designer.core.model.utils.emf.talendfile.NodeType) */ @Override public String getParameterUNIQUENAME(NodeType node) { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#getRemoveMetadataColumns(org.talend.core.model.metadata.IMetadataTable, * org.talend.core.model.metadata.IMetadataTable) */ @Override public List<ColumnNameChanged> getRemoveMetadataColumns(IMetadataTable oldTable, IMetadataTable newTable) { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#getRootProjectNameForPerl(org.talend.core.model.properties.Item) */ @Override public String getRootProjectNameForPerl(Item item) { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#getRoutineAndJars() */ @Override public Map<String, List<LibraryInfo>> getRoutineAndJars() { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#getSpecificResourceInJavaProject(org.eclipse.core.runtime.IPath) */ @Override public IResource getSpecificResourceInJavaProject(IPath path) throws CoreException { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#getSpecificResourceInPerlProject(org.eclipse.core.runtime.IPath) */ @Override public IResource getSpecificResourceInPerlProject(IPath path) throws CoreException { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#getTemplateString() */ @Override public String getTemplateString() { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#initializeForTalendStartupJob() */ @Override public void initializeForTalendStartupJob() { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#initializeTemplates() */ @Override public Job initializeTemplates() { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#isAlreadyBuilt(org.talend.core.model.general.Project) */ @Override public boolean isAlreadyBuilt(Project project) { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#isContainContextParam(java.lang.String) */ @Override public boolean isContainContextParam(String code) { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#isKeyword(java.lang.String) */ @Override public boolean isKeyword(String word) { return KeywordsValidator.isKeyword(word); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#readWorkspaceTasksDone() */ @Override public List<String> readWorkspaceTasksDone() { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#removeItemRelations(org.talend.core.model.properties.Item) */ @Override public void removeItemRelations(Item item) { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#removeJobLaunch(org.talend.core.model.repository.IRepositoryViewObject) */ @Override public void removeJobLaunch(IRepositoryViewObject objToDelete) { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#setFlagForQueryUtils(boolean) */ @Override public void setFlagForQueryUtils(boolean flag) { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#syncAllRoutines() */ @Override public void syncAllRoutines() throws SystemException { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#syncLibraries(org.eclipse.core.runtime.IProgressMonitor[]) */ @Override public void syncLibraries(IProgressMonitor... monitorWrap) { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#validateValueForDBType(java.lang.String) */ @Override public String validateValueForDBType(String columnName) { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#synchronizeMapptingXML() */ @Override public void synchronizeMapptingXML() { // I do not know what the method is supposed to be doing to I do nothing. } @Override public IPreferenceStore getPreferenceStore() { // MOD qiongli 2011-4-11.bug 20115. return CorePlugin.getDefault().getPreferenceStore(); } @Override public boolean isOpenedItemInEditor(IRepositoryViewObject object) { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#deleteBeanfile(org.talend.core.model.repository.IRepositoryViewObject) */ @Override public void deleteBeanfile(IRepositoryViewObject objToDelete) { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#syncAllBeans() */ @Override public void syncAllBeans() throws SystemException { throw new UnsupportedOperationException(); } /* * (non-Javadoc) * * @see org.talend.core.ICoreService#convert(org.talend.core.model.metadata.builder.connection.MetadataTable) */ @Override public IMetadataTable convert(MetadataTable originalTable) { throw new UnsupportedOperationException(); } @Override public void syncLog4jSettings() { throw new UnsupportedOperationException(); } @Override public void syncMappingsFileFromSystemToProject() { RepositoryWorkUnit workUnit = new RepositoryWorkUnit("Sync mapping files from system to project") { //$NON-NLS-1$ @Override protected void run() throws LoginException, PersistenceException { try { File sysMappingfolder = new File(MetadataTalendType.getSystemForderURLOfMappingsFile().getPath()); IFolder projectMappingFolder = ResourceUtils.getProject(ProjectManager.getInstance().getCurrentProject()) .getFolder(MetadataTalendType.PROJECT_MAPPING_FOLDER); if (!projectMappingFolder.exists()) { projectMappingFolder.create(true, true, null); } for (File in : sysMappingfolder.listFiles()) { IFile out = projectMappingFolder.getFile(in.getName()); FilesUtils.copyFile(in, out.getLocation().toFile()); } } catch (SystemException | CoreException | IOException e) { ExceptionHandler.process(e); } } }; workUnit.setAvoidUnloadResources(true); ProxyRepositoryFactory.getInstance().executeRepositoryWorkUnit(workUnit); } }