@Override
 public void execute() {
   EndpointDescriptionsManager outputDescriptionsManager =
       getProperties().getOutputDescriptionsManager();
   outputDescriptionsManager.addDynamicEndpointDescription(
       dynEndpointId, name, type, metaDataOutput);
   super.execute();
 }
  /** Adds initial endpoints, if there are some declared. */
  public void addInitialDynamicEndpointDescriptions() {

    for (EndpointDefinition definition :
        endpointDefinitionsProvider.getDynamicEndpointDefinitions()) {
      for (InitialDynamicEndpointDefinition initialDefinition :
          definition.getInitialDynamicEndpointDefinitions()) {
        addDynamicEndpointDescription(
            definition.getIdentifier(),
            initialDefinition.getName(),
            initialDefinition.getDataType(),
            new HashMap<String, String>());
      }
    }
  }
 private void switchDynamicInputsId(String toDynamicInputId) {
   inputPane.updateDynamicEndpointIdToManage(toDynamicInputId);
   EndpointDescriptionsManager inputDescriptionsManager =
       getConfiguration().getInputDescriptionsManager();
   for (EndpointDescription ep : inputDescriptionsManager.getEndpointDescriptions()) {
     inputDescriptionsManager.removeDynamicEndpointDescriptionQuietely(ep.getName());
     ep.getMetaData().remove(ComponentConstants.INPUT_METADATA_KEY_INPUT_EXECUTION_CONSTRAINT);
     inputDescriptionsManager.addDynamicEndpointDescription(
         toDynamicInputId, ep.getName(), ep.getDataType(), ep.getMetaData(), ep.getIdentifier());
     if (!ep.getConnectedDataTypes().isEmpty()) {
       // inputs can only be connected to one ouput
       inputDescriptionsManager.addConnectedDataType(
           ep.getName(), ep.getConnectedDataTypes().get(0));
     }
   }
 }