W3C home > Mailing lists > Public > www-validator-cvs@w3.org > March 2008

2002/css-validator/org/w3c/css/selectors SelectorsList.java,1.3,1.4

From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
Date: Thu, 20 Mar 2008 12:15:56 +0000
To: www-validator-cvs@w3.org
Message-Id: <E1JcJga-0004ex-LI@lionel-hutz.w3.org>

Update of /sources/public/2002/css-validator/org/w3c/css/selectors
In directory hutz:/tmp/cvs-serv17893

Modified Files:
	SelectorsList.java 
Log Message:
toString optimizations


Index: SelectorsList.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/selectors/SelectorsList.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- SelectorsList.java	13 Aug 2007 12:38:22 -0000	1.3
+++ SelectorsList.java	20 Mar 2008 12:15:54 -0000	1.4
@@ -53,17 +53,19 @@
 public class SelectorsList {
 
     // the list of selectors
-    private ArrayList selectors;
+    private ArrayList<Selector> selectors;
 
     private ApplContext ac;
 
     private int specificity;
 
+    private String stringrep = null;
+
     /**
      * Creates a new empty SelectorsList
      */
     public SelectorsList() {
-	selectors = new ArrayList();
+	selectors = new ArrayList<Selector>();
     }
 
     /**
@@ -72,14 +74,14 @@
      */
     public SelectorsList(ApplContext ac) {
 	this.ac = ac;
-	selectors = new ArrayList();
+	selectors = new ArrayList<Selector>();
     }
 
     /**
      * Returns the selectors list
      * @return Returns the selectors list.
      */
-    public ArrayList getSelectors() {
+    public ArrayList<Selector> getSelectors() {
         return selectors;
     }
 
@@ -87,8 +89,9 @@
      * Sets the selectors list
      * @param selectors The selectors list to set.
      */
-    public void setSelectors(ArrayList selectors) {
+    public void setSelectors(ArrayList<Selector> selectors) {
         this.selectors = selectors;
+	stringrep = null;
     }
 
     /**
@@ -97,7 +100,7 @@
      * @return the nth selector
      */
     public Selector getSelector(int index) {
-	return (Selector) selectors.get(index);
+	return selectors.get(index);
     }
 
     /**
@@ -115,12 +118,14 @@
      */
     public void addSelector(Selector selector) throws InvalidParamException {
 	if(selectors.size() > 0) {
-	    Selector last = (Selector) selectors.get(selectors.size() - 1);
+	    Selector last = selectors.get(selectors.size() - 1);
 	    if(last instanceof PseudoElementSelector) {
-		throw new InvalidParamException("pseudo-element", selector, ac.getMsg().getString(ac.getCssVersion()), ac);
+		throw new InvalidParamException("pseudo-element", selector, 
+						ac.getMsg().getString(ac.getCssVersion()), ac);
 	    }
 	}
 	selectors.add(selector);
+	stringrep = null;
     }
 
     /**
@@ -235,11 +240,20 @@
      * @return  the String representation of this SelectorsList
      */
     public String toString() {
-	StringBuffer res = new StringBuffer();
-	for(int i = 0; i < selectors.size(); i++) {
+	if (stringrep != null ) {
+	    return stringrep;
+	}
+	StringBuilder res = new StringBuilder();
+	int selsize = selectors.size();
+	for(int i = 0; i < selsize; i++) {
 	    res.append(selectors.get(i));
 	}
-	return res.toString();
+	stringrep = res.toString();
+	return stringrep;
+    }
+    
+    public boolean isToStringCached() {
+	return (stringrep != null);
     }
 
     /**
Received on Thursday, 20 March 2008 12:16:39 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Thursday, 26 April 2012 12:55:00 GMT