private Integer findNode(long hash) { for (LongRange longRang : this.longRanges) { if (hash <= longRang.getValueEnd() && hash >= longRang.getValueStart()) { return longRang.getNodeIndex(); } } return null; }
private void initHashCode() { hashCode *= patternValue; if (defaultNode != 0) { hashCode *= defaultNode; } for (LongRange longRange : longRanges) { hashCode *= longRange.hashCode(); } } }
/** * @param columnValue * @return */ public boolean isUseDefaultNode(String columnValue) { try { long value = Long.parseLong(columnValue); for (LongRange longRang : this.longRanges) { if (value <= longRang.getValueEnd() && value >= longRang.getValueStart()) { return false; } } if (defaultNode >= 0) { return true; } } catch (NumberFormatException e) { throw new IllegalArgumentException("columnValue:" + columnValue + " Please eliminate any quote and non number within it.", e); } return false; }
@Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } PartitionByPattern other = (PartitionByPattern) o; if (other.defaultNode != defaultNode) { return false; } if (other.patternValue != patternValue) { return false; } for (int i = 0; i < longRanges.length; i++) { if (!other.longRanges[i].equals(longRanges[i])) { return false; } } return true; }
initializeAux(longRangeList, new LongRange(nodeId, longStart, longEnd)); if (iRow > 0) { sb.append(",");
private void initializeAux(LinkedList<LongRange> ll, LongRange lr) { if (ll.size() == 0) { ll.add(lr); } else { LongRange tmp; for (int i = ll.size() - 1; i > -1; i--) { tmp = ll.get(i); if (tmp.getValueStart() < lr.getValueStart()) { ll.add(i + 1, lr); return; } } ll.add(0, lr); } }
@Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } AutoPartitionByLong other = (AutoPartitionByLong) o; if (other.defaultNode != defaultNode) { return false; } if (other.longRanges.length != longRanges.length) { return false; } for (int i = 0; i < longRanges.length; i++) { if (!other.longRanges[i].equals(longRanges[i])) { return false; } } return true; }
String value = line.substring(ind + 1).trim(); int nodeId = Integer.parseInt(value); longRangeList.add(new LongRange(nodeId, longStart, longEnd)); if (iRow > 0) { sb.append(",");
private void calcAux(HashSet<Integer> ids, long begin, long end) { for (LongRange longRang : this.longRanges) { if (longRang.getValueEnd() < begin) { continue; } if (longRang.getValueStart() > end) { break; } ids.add(longRang.getNodeIndex()); } }
private void initHashCode() { if (defaultNode != 0) { hashCode *= defaultNode; } for (LongRange longRange : longRanges) { hashCode *= longRange.hashCode(); } } }
@Override public Integer calculate(String columnValue) { //columnValue = NumberParseUtil.eliminateQuote(columnValue); try { if (columnValue == null || columnValue.equalsIgnoreCase("NULL")) { if (defaultNode >= 0) { return defaultNode; } return null; } long value = Long.parseLong(columnValue); for (LongRange longRang : this.longRanges) { if (value <= longRang.getValueEnd() && value >= longRang.getValueStart()) { return longRang.getNodeIndex(); } } // use default node for other value if (defaultNode >= 0) { return defaultNode; } return null; } catch (NumberFormatException e) { throw new IllegalArgumentException("columnValue:" + columnValue + " Please eliminate any quote and non number within it.", e); } }