code: public List<ResidueRangeAndLength> getRanges() {
  		String currentChain = "";
  		ResidueNumber first = null;
  		ResidueNumber prev = null;
  		List<ResidueRangeAndLength> ranges = new ArrayList<ResidueRangeAndLength>();
  		for (ResidueNumber rn : treeMap.keySet()) {
  			if (!rn.getChainName().equals(currentChain)) {
  				if (first != null) {
  					ResidueRangeAndLength newRange = new ResidueRangeAndLength(currentChain, first, prev, this.getLength(first, prev));
  					ranges.add(newRange);
  				}
  				first = rn;
  			}
  			prev = rn;
  			currentChain = rn.getChainName();
  		}
  		ResidueRangeAndLength newRange = new ResidueRangeAndLength(currentChain, first, prev, this.getLength(first, prev));
  		ranges.add(newRange);
  		return ranges;
  	}
docs: Returns a list of {@link ResidueRange ResidueRanges} corresponding to this entire AtomPositionMap.