// ============================================================================ // // Copyright (C) 2006-2012 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.core.model.components; import java.util.List; import java.util.Map; import org.eclipse.jface.resource.ImageDescriptor; import org.talend.core.model.general.ModuleNeeded; import org.talend.core.model.process.IElementParameter; import org.talend.core.model.process.INode; import org.talend.core.model.process.INodeConnector; import org.talend.core.model.process.INodeReturn; import org.talend.core.model.process.IProcess; import org.talend.core.model.temp.ECodePart; /** * Interface that describes the functions that a must implements a component manager. <br/> * * $Id: IComponent.java 40568 2010-04-19 02:10:00Z nrousseau $ */ public interface IComponent { String JOBLET_PID = "org.talend.designer.joblet"; //$NON-NLS-1$ String PROP_NAME = "NAME"; //$NON-NLS-1$ String PROP_LONG_NAME = "LONG_NAME"; //$NON-NLS-1$ String PROP_FAMILY = "FAMILY"; //$NON-NLS-1$ String PROP_MENU = "MENU"; //$NON-NLS-1$ String PROP_LINK = "LINK"; //$NON-NLS-1$ String PROP_HELP = "HELP"; //$NON-NLS-1$ String FAMILY = "Joblets";//$NON-NLS-1$ public String getName(); public String getLongName(); public String getOriginalFamilyName(); public String getTranslatedFamilyName(); public void setImageRegistry(Map<String, ImageDescriptor> imageRegistry); public ImageDescriptor getIcon32(); public ImageDescriptor getIcon24(); public ImageDescriptor getIcon16(); public List<? extends IElementParameter> createElementParameters(INode node); public List<? extends INodeReturn> createReturns(); public List<? extends INodeConnector> createConnectors(INode node); public boolean hasConditionalOutputs(); public boolean isMultiplyingOutputs(); /** * Should only be set for external components, for others should be null. * * @return */ public String getPluginExtension(); public boolean isSchemaAutoPropagated(); public boolean isDataAutoPropagated(); public boolean isHashComponent(); public boolean useMerge(); public boolean useLookup(); public String getVersion(); public List<IMultipleComponentManager> getMultipleComponentManagers(); public boolean isLoaded(); public boolean isVisible(); public boolean isVisible(String family); public List<ModuleNeeded> getModulesNeeded(); public String getPathSource(); public List<ECodePart> getAvailableCodeParts(); public List<String> getPluginDependencies(); public boolean isMultipleOutput(); public boolean useImport(); public EComponentType getComponentType(); /** * Return true if this component is technical, means should not be displayed in the palette but must be generated * * @return */ public boolean isTechnical(); public boolean isVisibleInComponentDefinition(); public boolean isSingleton(); public boolean isMainCodeCalled(); public boolean canParallelize(); public String getShortName(); // see 17353 public String getCombine(); public IProcess getProcess(); public String getPaletteType(); public void setPaletteType(String paletteType); public String getRepositoryType(); }