/**
   * @param manualActivityPath
   * @param pathDataMapping
   */
  private void processManualActivityPath(
      ManualActivityPath manualActivityPath, Map<Path, DataMapping> pathDataMapping) {
    // Process Children
    for (Path path : manualActivityPath.getChildPaths()) {
      if (path instanceof IppSystemPath) {
        handleSystemPath((IppSystemPath) path);
      } else if (path instanceof DocumentPath) {
        handleDocumentPath((DocumentPath) path, pathDataMapping.get(path));
      } else if (path.isEnumeration()) {
        handleEnumerationPath(path);
      } else if (path.isPrimitive()) {
        handlePrimitivePath(path);
      } else if (path.isList()) {
        handleListDataMapping(path);
      } else if (path.getChildPaths().size() > 0) {
        handleStructureDataMapping(path);
      }
    }

    // For Single Document Case
    IppDocumentInputController docController = getIfSingleDocument();
    if (null != docController && null == docController.getValue()) {
      docController.setOpenDocument(true);
      docController.setEnableOpenDocument(false);
    }
  }
  /**
   * @param path
   * @return
   */
  private boolean handleListDataMapping(Path path) {
    ListInputController listInputController = new ListInputController(path);
    formGenerator.addListComponent(getRootContainer(), path);

    getFullPathInputControllerMap().put("/" + path.getId(), listInputController);
    getTopLevelInputControllerMap().put(path.getId(), listInputController);

    return true;
  }
  /**
   * @param path
   * @return
   */
  private boolean handleEnumerationPath(Path path) {
    PrimitiveInputController inputController =
        new PrimitiveInputController(path, new PrimitiveInputControllerDataTypeAdapter(path));
    FormInput input = formGenerator.addEnumerationInput(getRootContainer(), inputController);
    getRootContainer().getInputs().add(input);

    getFullPathInputControllerMap().put("/" + path.getId(), inputController);
    getTopLevelInputControllerMap().put(path.getId(), inputController);

    return true;
  }
 /**
  * @param path
  * @return
  */
 private boolean handleStructureDataMapping(Path path) {
   getTopLevelInputControllerMap()
       .put(
           path.getId(),
           formGenerator.generateStructurePanel(
               getFullPathInputControllerMap(), getRootContainer(), path));
   return true;
 }