User: vharcq  
  Date: 02/03/30 01:34:03

  Modified:    src/xjavadoc DefaultXTag.java
  Log:
  Implement a todo by using StringBuffer (Thanks to pazu)
  
  Revision  Changes    Path
  1.8       +18 -21    xjavadoc/src/xjavadoc/DefaultXTag.java
  
  Index: DefaultXTag.java
  ===================================================================
  RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/DefaultXTag.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -w -r1.7 -r1.8
  --- DefaultXTag.java  16 Mar 2002 21:51:50 -0000      1.7
  +++ DefaultXTag.java  30 Mar 2002 09:34:03 -0000      1.8
  @@ -71,7 +71,7 @@
        /**
         * Get static reference to Log4J Logger
         */
  -     private static org.apache.log4j.Category _log = 
org.apache.log4j.Category.getInstance(DefaultXTag.class.getName());
  +     private final static org.apache.log4j.Category _log = 
org.apache.log4j.Category.getInstance(DefaultXTag.class);
   
   
        /**
  @@ -217,11 +217,10 @@
         * @todo-javadoc Write javadocs for exception
         */
        private void parse() {
  -             // Todo: use StringBuffer, or do some substring stuff using i.
  -             String attr_name = "";
  -             String attr_value = "";
  +             String attr_name = null;
  +             StringBuffer attr_value = new StringBuffer();
                int i = 0;
  -//           int params_parsed = 0;
  +             int end = 0;
   
                if (!_isParsed) {
   
  @@ -236,12 +235,13 @@
   
                                //read attribute name
   
  -                             while (i < _value.length() && _value.charAt(i) != '=' 
&& (!Character.isWhitespace(_value.charAt(i)))) {
  -                                     attr_name += _value.charAt(i);
  -                                     i++;
  +                             end = i;
  +                             while (end < _value.length() && _value.charAt(end) != 
'=' && (!Character.isWhitespace(_value.charAt(end)))) {
  +                                     end++;
                                }
   
  -                             i = skipWhitespace(_value, i);
  +                             attr_name = _value.substring(i, end);
  +                             i = skipWhitespace(_value, end);
   
                                //skip = sign
   
  @@ -260,7 +260,7 @@
                                        i++;
                                }
                                else {
  -                                     //_log.debug("Error in @tag: \" sign expected 
but something different found, @tags=" + value);
  +                                     //if (_log.isDebugEnabled()) _log.debug("Error 
in @tag: \" sign expected but something different found, @tags=" + value);
                                        return;
                                }
   
  @@ -284,26 +284,23 @@
                                                                }
                                                                else {
                                                                        //probably 
user does not know escaping is needed!
  -                                                                     
//_log.debug("Error in @tag: to put \" in a parameter value you need to escape \" 
character with \\\", @tags=" + value);
  +                                                                     //if 
(_log.isDebugEnabled()) _log.debug("Error in @tag: to put \" in a parameter value you 
need to escape \" character with \\\", @tags=" + value);
                                                                        return;
                                                                }
                                                        }
                                                }
                                                else {
  -                                                     //remove \"
  -
  -                                                     attr_value = 
attr_value.substring(0, attr_value.length() - 1);
  +                                                     //remove previous \
  +                                                     
attr_value.delete(attr_value.length() - 2, attr_value.length() - 1);
   
  -                                                     //append a single "
  -
  -                                                     attr_value += "\"";
                                                        i++;
   
                                                        continue;
                                                }
                                        }
   
  -                                     attr_value += _value.charAt(i);
  +                                     attr_value.append(_value.charAt(i));
  +
                                        i++;
                                }
   
  @@ -316,9 +313,9 @@
                                        //_log.warn("Error in @tag: tailing \" sign 
expected but not found, @tags=" + value);
                                        return;
                                }
  -                             _attributes.put(attr_name, attr_value);
  -                             attr_name = "";
  -                             attr_value = "";
  +                             _attributes.put(attr_name, attr_value.toString());
  +                             attr_name = null;
  +                             attr_value.delete(0, attr_value.length());
                        }
                }
                _isParsed = true;
  
  
  

_______________________________________________
Xdoclet-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel

Reply via email to