[jdom-interest] StringBufferAttribute
    Noam Tamim 
    noamt at yahoo.com
       
    Sun Jul  8 13:48:35 PDT 2001
    
    
  
Hi there.
What do you guys think about this idea: extending the Attribute class to use
(and expose!) a StringBuffer object for the value.
I'm not suggesting to replace the existing Attribute, I just want comments
on the idea:
public class SBAttribute extends Attribute {
 protected StringBuffer value;
 public SBAttribute(String name, StringBuffer value, Namespace ns) {
  super(); // avoid setting the original String value.
  setName(name);
  setValue(value);
  setNamespace(ns);
 }
 public SBAttribute(String name, StringBuffer value) {
  this(name,value,Namespace.NO_NAMESPACE);
 }
 // return the actual StringBuffer used by this attribute.
 public StringBuffer getBuffer() {
  return value;
 }
 public String getValue() {
  return value.toString();
 }
 public Attribute setValue(String value) {
  return setValue(new StringBuffer(value));
 }
 public SBAttribute setValue(StringBuffer value) {
  // here should probably come some verifications.
  this.value=value;
  return this;
 }
}
And here's an example of using it:
void main() throws IOException {
  Element root=new Element("root");
  StringBuffer name=new StringBuffer("noam");
  root.addContent(new Element("user").setAttribute(new
SBAttribute("name",name)));
  root.addContent(new Element("user").setAttribute(new
SBAttribute("name",name)));
  root.addContent(new Element("user").setAttribute(new
SBAttribute("name",name)));
  Document doc=new Document(root);
  XMLOutputter xout=new XMLOutputter("  ",true);
  System.out.println("name="+name);
  xout.output(doc,System.out);
  name.reverse();
  System.out.println("name="+name);
  xout.output(doc,System.out);
}
 - Noam.
    
    
More information about the jdom-interest
mailing list