code: private void checkAndAddCapabilities(AnalysisEngineDescription aed) {
          for (Capability capability : aed.getAnalysisEngineMetaData()
                  .getCapabilities()) {
              for (TypeOrFeature input : capability.getInputs())
                  if (!outputTypes.contains(input.getName()))
                      LOG.error("AnalysisEngine "
                              + aed.getAnnotatorImplementationName()
                              + " is missing input @TypeCapability: "
                              + input.getName());
          }
          for (Capability capability : aed.getAnalysisEngineMetaData()
                  .getCapabilities()) {
              for (TypeOrFeature output : capability.getOutputs()) {
                  // LOG.info("add @TypeCapability: " + output.getName());
                  outputTypes.add(output.getName());
              }
          }
      }
docs: Checks that this @param aed is provided with the right {@link Annotation}
  s in the upstream of this pipeline, and prints an error log otherwise.
  Add this aed's capabilities for other downstream aeds.