code: public boolean isDownStreamOf(PfafstetterNumber pfafstetterNumber) {
          /*
           * all the upstreams will have same numbers until the last dot
           */
          int lastDot = pfafstetterNumberString.lastIndexOf('.');
          String pre = pfafstetterNumberString.substring(0, lastDot + 1);
          String lastNum = pfafstetterNumberString.substring(lastDot + 1, pfafstetterNumberString
                  .length());
          int lastNumInt = Integer.parseInt(lastNum);
  
          if (lastNumInt % 2 == 0) {
              // it has to be the last piece of a river, therefore no piece contained
              return false;
          } else {
              /*
               * check if the passed one is upstream
               */
              String pfaff = pfafstetterNumber.toString();
              if (pfaff.startsWith(pre)) {
                  // search for all those with a higher next number
                  String lastPart = pfaff.substring(lastDot + 1, pfaff.length());
                  String lastPartParent = StringUtilities.REGEX_PATTER_DOT.split(lastPart)[0];
                  if (Integer.parseInt(lastPartParent) >= lastNumInt) {
                      return true;
                  }
              }
          }
          return false;
      }
docs: Checks if the actual pfafstetter object is downstream or not of the passed argument
  
  @param pfafstetterNumber the pfafstetterNumber to check against.
  @return true if the actual obj is downstream of the passed one.