private static ImmutableList getTreeProps()

in litho-processor/src/main/java/com/facebook/litho/specmodels/model/SpecModelImpl.java [1111:1178]


  private static ImmutableList<TreePropModel> getTreeProps(
      ImmutableList<SpecMethodModel<DelegateMethod, Void>> delegateMethods,
      ImmutableList<SpecMethodModel<EventMethod, EventDeclarationModel>> eventMethods,
      ImmutableList<SpecMethodModel<EventMethod, EventDeclarationModel>> triggerMethods,
      @Nullable SpecMethodModel<EventMethod, Void> workingRangeRegisterMethod,
      ImmutableList<WorkingRangeMethodModel> workingRangeMethods,
      ImmutableList<SpecMethodModel<UpdateStateMethod, Void>> updateStateMethods) {
    final Set<TreePropModel> treeProps =
        new TreeSet<>(MethodParamModelUtils.shallowParamComparator());
    for (SpecMethodModel<DelegateMethod, Void> delegateMethod : delegateMethods) {
      for (MethodParamModel param : delegateMethod.methodParams) {
        if (param instanceof TreePropModel) {
          treeProps.add((TreePropModel) param);
        }
      }
    }

    for (SpecMethodModel<EventMethod, EventDeclarationModel> eventMethod : eventMethods) {
      for (MethodParamModel param : eventMethod.methodParams) {
        if (param instanceof TreePropModel) {
          treeProps.add((TreePropModel) param);
        }
      }
    }

    for (SpecMethodModel<EventMethod, EventDeclarationModel> triggerMethod : triggerMethods) {
      for (MethodParamModel param : triggerMethod.methodParams) {
        if (param instanceof TreePropModel) {
          treeProps.add((TreePropModel) param);
        }
      }
    }

    if (workingRangeRegisterMethod != null) {
      for (MethodParamModel param : workingRangeRegisterMethod.methodParams) {
        if (param instanceof TreePropModel) {
          treeProps.add((TreePropModel) param);
        }
      }
    }

    for (WorkingRangeMethodModel workingRangeMethod : workingRangeMethods) {
      if (workingRangeMethod.enteredRangeModel != null) {
        for (MethodParamModel param : workingRangeMethod.enteredRangeModel.methodParams) {
          if (param instanceof TreePropModel) {
            treeProps.add((TreePropModel) param);
          }
        }
      }
      if (workingRangeMethod.exitedRangeModel != null) {
        for (MethodParamModel param : workingRangeMethod.exitedRangeModel.methodParams) {
          if (param instanceof TreePropModel) {
            treeProps.add((TreePropModel) param);
          }
        }
      }
    }

    for (SpecMethodModel<UpdateStateMethod, Void> updateStateMethod : updateStateMethods) {
      for (MethodParamModel param : updateStateMethod.methodParams) {
        if (param instanceof TreePropModel) {
          treeProps.add((TreePropModel) param);
        }
      }
    }

    return ImmutableList.copyOf(new ArrayList<>(treeProps));
  }