public SortedSet<RegionState> getRegionsInTransitionOrderedByTimestamp() { final SortedSet<RegionState> rit = new TreeSet<RegionState>(REGION_STATE_STAMP_COMPARATOR); for (RegionStateNode node: regionInTransition.values()) { rit.add(node.toRegionState()); } return rit; }
public RegionState getRegionState(final RegionInfo regionInfo) { RegionStateNode regionStateNode = getRegionStateNode(regionInfo); return regionStateNode == null ? null : regionStateNode.toRegionState(); }
public ArrayList<RegionState> getRegionStates() { final ArrayList<RegionState> regions = new ArrayList<RegionState>(regionsMap.size()); for (RegionStateNode node: regionsMap.values()) { regions.add(node.toRegionState()); } return regions; }
public List<RegionState> getRegionsStateInTransition() { final List<RegionState> rit = new ArrayList<RegionState>(regionInTransition.size()); for (RegionStateNode node: regionInTransition.values()) { rit.add(node.toRegionState()); } return rit; }
public List<RegionState> getRegionFailedOpen() { if (regionFailedOpen.isEmpty()) return Collections.emptyList(); ArrayList<RegionState> regions = new ArrayList<RegionState>(regionFailedOpen.size()); for (RegionFailedOpen r: regionFailedOpen.values()) { regions.add(r.getRegionStateNode().toRegionState()); } return regions; }
public RegionState getRegionState(final String encodedRegionName) { // TODO: Need a map <encodedName, ...> but it is just dispatch merge... for (RegionStateNode node: regionsMap.values()) { if (node.getRegionInfo().getEncodedName().equals(encodedRegionName)) { return node.toRegionState(); } } return null; }
ArrayList<RegionState> getTableRegionStates(final TableName tableName) { final ArrayList<RegionState> regions = new ArrayList<RegionState>(); for (RegionStateNode node: regionsMap.tailMap(tableName.getName()).values()) { if (!node.getTable().equals(tableName)) break; regions.add(node.toRegionState()); } return regions; }
public RegionState getRegionTransitionState(RegionInfo hri) { RegionStateNode node = regionInTransition.get(hri); if (node == null) { return null; } node.lock(); try { return node.isInTransition() ? node.toRegionState() : null; } finally { node.unlock(); } }