Java Code Examples for com.google.common.collect.BoundType.valueOf()

The following are Jave code examples for showing how to use valueOf() of the com.google.common.collect.BoundType class. You can vote up the examples you like. Your votes will be used in our system to get more good examples.
Example 1
Project: activitystreams   File: Adapters.java   Source Code and License Vote up 5 votes
private BoundType bt(JsonPrimitive p) {
  try {
    return BoundType.valueOf(p.toString());
  } catch (Throwable t) {
    return BoundType.CLOSED;
  }
}
 
Example 2
Project: lens   File: BetweenTimeRangeWriter.java   Source Code and License Vote up 4 votes
@Override
public String getTimeRangeWhereClause(CubeQueryContext cubeQueryContext, String tableName,
  Set<FactPartition> rangeParts) throws LensException {
  if (rangeParts.size() == 0) {
    return "";
  }
  //Flag to check if only between range needs to be used
  boolean useBetweenOnly = cubeQueryContext.getConf().getBoolean(CubeQueryConfUtil.BETWEEN_ONLY_TIME_RANGE_WRITER,
    CubeQueryConfUtil.DEFAULT_BETWEEN_ONLY_TIME_RANGE_WRITER);

  //Fetch the date start and end bounds from config
  BoundType startBound = BoundType.valueOf(cubeQueryContext.getConf().get(CubeQueryConfUtil.START_DATE_BOUND_TYPE,
    CubeQueryConfUtil.DEFAULT_START_BOUND_TYPE));
  BoundType endBound = BoundType.valueOf(cubeQueryContext.getConf().get(CubeQueryConfUtil.END_DATE_BOUND_TYPE,
    CubeQueryConfUtil.DEFAULT_END_BOUND_TYPE));

  StringBuilder partStr = new StringBuilder();
  if (!useBetweenOnly && rangeParts.size() == 1) {
    partStr.append("(");
    String partFilter =
      TimeRangeUtils.getTimeRangePartitionFilter(rangeParts.iterator().next(), cubeQueryContext, tableName);
    partStr.append(partFilter);
    partStr.append(")");
  } else {
    TreeSet<FactPartition> parts = new TreeSet<>();
    FactPartition first = null;
    for (FactPartition part : rangeParts) {
      if (part.hasContainingPart()) {
        throw new LensException(LensCubeErrorCode.CANNOT_USE_TIMERANGE_WRITER.getLensErrorInfo(),
          "Partition has containing part");
      }
      if (first == null) {
        first = part;
      } else {
        // validate partcol, update period are same for both
        if (!first.getPartCol().equalsIgnoreCase(part.getPartCol())) {
          throw new LensException(LensCubeErrorCode.CANNOT_USE_TIMERANGE_WRITER.getLensErrorInfo(),
            "Part columns are different in partitions");
        }
        if (!first.getPeriod().equals(part.getPeriod())) {
          throw new LensException(LensCubeErrorCode.CANNOT_USE_TIMERANGE_WRITER.getLensErrorInfo(),
            "Partitions are in different update periods");
        }
      }
      parts.add(part);
    }

    FactPartition start = parts.first();
    FactPartition end = parts.last();

    if (startBound.equals(BoundType.OPEN)) {
      start = start.previous();
    }

    if (endBound.equals(BoundType.OPEN)) {
      end = end.next();
    }

    String partCol = start.getPartCol();
    if (!cubeQueryContext.shouldReplaceTimeDimWithPart()) {
      partCol = cubeQueryContext.getTimeDimOfPartitionColumn(partCol);
    }

    partStr.append(" (").append(tableName).append(".").append(partCol).append(" BETWEEN '")
      .append(start.getFormattedPartSpec()).append("' AND '").append(end.getFormattedPartSpec()).append("') ");
  }
  return partStr.toString();
}