@Override
 public MetaData getMetaData() {
   if (inPort != null) {
     return inPort.getMetaData();
   } else {
     return null;
   }
 }
 @Override
 public void transformMD() {
   for (InputPort inputPort : inputPorts) {
     MetaData metaData = inputPort.getMetaData();
     if (metaData != null) {
       if (metaData instanceof CollectionMetaData) {
         metaData = ((CollectionMetaData) metaData).getElementMetaDataRecursive();
       }
       metaData = metaData.clone();
       metaData.addToHistory(outputPort);
       outputPort.deliverMD(modifyMetaData(metaData));
       return;
     }
   }
   outputPort.deliverMD(null);
 }