code: public List<ElementSpec> update(Viewport root, Dimension newDimension, CSSBoxAnalyzer cba) throws IOException
      {
          if (cba == null)
              throw new IllegalArgumentException("CSSBoxAnalyzer can not be NULL !!!\nProvide your custom implementation or check instantiation of DefaultAnalyzer object...");
  
          elements = new LinkedList<ElementSpec>();
          elements.add(new ElementSpec(SimpleAttributeSet.EMPTY, ElementSpec.EndTagType));
          order = 0;
  
          Viewport vp;
          try
          {
              vp = cba.update(newDimension);
          } catch (Exception e)
          {
              throw new IOException(e);
          }
  
          vp.draw(this);
          
          return elements;
      }
docs: Updates the layout. It is designed to do a re-layout only, not to process
  input data again.
  
  @param root
  the root
  @param newDimension
  the new dimension
  @param cba
  the CSSBoxAnalyzer
  @return the list
  @throws IOException
  Signals that an I/O exception has occurred.