code: public static RowSpec decode(String encodedRowSpec, LayoutMap layoutMap) {
          checkNotBlank(encodedRowSpec,
                  "The encoded row specification must not be null, empty or whitespace.");
          checkNotNull(layoutMap,
                  "The LayoutMap must not be null.");
          String trimmed = encodedRowSpec.trim();
          String lower = trimmed.toLowerCase(Locale.ENGLISH);
          return decodeExpanded(layoutMap.expand(lower, false));
      }
docs: Parses the encoded row specifications and returns a RowSpec object that represents the
  string. Variables are expanded using the given LayoutMap.
  
  @param encodedRowSpec the encoded column specification
  @param layoutMap expands layout row variables
  
  @return a RowSpec instance for the given specification
  @throws NullPointerException if {@code encodedRowSpec} or {@code layoutMap} is {@code null}
  
  @see #decodeSpecs(String, LayoutMap)
  
  @since 1.2