code: private static int[] computeMaximumFixedSpanTable(List formSpecs) {
          int size = formSpecs.size();
          int[] table = new int[size];
          int maximumFixedSpan = Integer.MAX_VALUE;        // Could be 1
          for (int i = size - 1; i >= 0; i--) {
              FormSpec spec = (FormSpec) formSpecs.get(i); // ArrayList access
              if (spec.canGrow()) {
                  maximumFixedSpan = 0;
              }
              table[i] = maximumFixedSpan;
              if (maximumFixedSpan < Integer.MAX_VALUE) {
                  maximumFixedSpan++;
              }
          }
          return table;
      }
docs: Computes and returns a table that maps a column/row index to the maximum number of
  columns/rows that a component can span without spanning a growing column.<p>
  
  Iterates over the specs from right to left/bottom to top, sets the table value to zero if a
  spec can grow, otherwise increases the span by one.<p>
  
  <strong>Examples:</strong><pre>
  "pref, 4dlu, pref, 2dlu, p:grow, 2dlu,      pref" ->
  [4,    3,    2,    1,    0,      MAX_VALUE, MAX_VALUE]
  
  "p:grow, 4dlu, p:grow, 9dlu,      pref" ->
  [0,      1,    0,      MAX_VALUE, MAX_VALUE]
  
  "p, 4dlu, p, 2dlu, 0:grow" ->
  [4, 3,    2, 1,    0]
  </pre>
  
  @param formSpecs the column specs or row specs
  @return a table that maps a spec index to the maximum span for fixed size specs