public void addStr(Object str) {
    if(_id == null || str != null) {
      if(_is == null || _sparseLen >= _is.length) {
        append2slowstr();
        addStr(str);
        assert _sparseLen <= _len;
        return;
      }
      if (str != null) {
        if(_id != null)_id[_sparseLen] = _len;
        _is[_sparseLen] = _sslen;
        _sparseLen++;
        if (str instanceof BufferedString)
          append_ss((BufferedString) str);
        else // this spares some callers from an unneeded conversion to BufferedString first
          append_ss((String) str);
      } else if (_id == null) {
        _is[_sparseLen] = CStrChunk.NA;
        set_sparseLen(_sparseLen + 1);
      }
    }
    set_len(_len + 1);
    assert _sparseLen <= _len;
  }
public void addStr ( Object str ) { if ( _id == null || str != null ) { if ( _is == null || _sparseLen >= _is . length ) { append2slowstr ( ) ; addStr ( str ) ; assert _sparseLen <= _len ; return ; } if ( str != null ) { if ( _id != null ) _id [ _sparseLen ] = _len ; _is [ _sparseLen ] = _sslen ; _sparseLen ++ ; if ( str instanceof BufferedString ) append_ss ( ( BufferedString ) str ) ; else append_ss ( ( String ) str ) ; } else if ( _id == null ) { _is [ _sparseLen ] = CStrChunk . NA ; set_sparseLen ( _sparseLen + 1 ) ; } } set_len ( _len + 1 ) ; assert _sparseLen <= _len ; }
TODO cleanup