static Predicate<ParseContext> createFilterPredicateFromConf(Configuration conf) {
    Set<LineageInfoFilter> operations = new HashSet<>();
    boolean noneSpecified = false;
    for (String valueText : conf.getTrimmedStringCollection(HiveConf.ConfVars.HIVE_LINEAGE_STATEMENT_FILTER.varname)) {
      LineageInfoFilter enumValue = EnumUtils.getEnumIgnoreCase(LineageInfoFilter.class, valueText);
      if (enumValue == null) {
        throw new EnumConstantNotPresentException(LineageInfoFilter.class, valueText);
      }

      if (LineageInfoFilter.NONE == enumValue) {
        noneSpecified = true;
        continue;
      }

      operations.add(enumValue);
    }

    if (noneSpecified) {
      if (!operations.isEmpty()) {
        throw new IllegalArgumentException(
            "No other value can be specified when " + LineageInfoFilter.NONE.name() + " is present!");
      }
      else {
        return parseContext -> false;
      }
    }

    return parseContext ->
        operations.stream().anyMatch(lineageInfoFilter -> lineageInfoFilter.predicate.test(parseContext));
  }
This class generates the lineage information for the columns
and tables from the plan before it goes through other
optimization phases.
ql/src/java/org/apache/hadoop/hive/ql/optimizer/lineage/Generator.java