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