You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by vh...@apache.org on 2007/11/13 18:13:20 UTC

svn commit: r594584 - in /xmlgraphics/fop/trunk/src/java/org/apache/fop/fo: flow/table/EmptyGridUnit.java properties/CommonBorderPaddingBackground.java

Author: vhennebert
Date: Tue Nov 13 09:13:19 2007
New Revision: 594584

URL: http://svn.apache.org/viewvc?rev=594584&view=rev
Log:
Use a singleton for a default BorderInfo of style none, instead of every time a new instance

Modified:
    xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/EmptyGridUnit.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/properties/CommonBorderPaddingBackground.java

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/EmptyGridUnit.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/EmptyGridUnit.java?rev=594584&r1=594583&r2=594584&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/EmptyGridUnit.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/EmptyGridUnit.java Tue Nov 13 09:13:19 2007
@@ -42,7 +42,7 @@
     /** {@inheritDoc} */
     protected void setBorder(int side) {
         resolvedBorders[side] = new BorderSpecification(
-                new CommonBorderPaddingBackground.BorderInfo(Constants.EN_NONE, null, null),
+                CommonBorderPaddingBackground.getDefaultBorderInfo(),
                 Constants.FO_TABLE_CELL);
     }
 

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/properties/CommonBorderPaddingBackground.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/properties/CommonBorderPaddingBackground.java?rev=594584&r1=594583&r2=594584&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/properties/CommonBorderPaddingBackground.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/properties/CommonBorderPaddingBackground.java Tue Nov 13 09:13:19 2007
@@ -83,7 +83,7 @@
         private Color mColor; // Border color
         private CondLengthProperty mWidth;
 
-        public BorderInfo(int style, CondLengthProperty width, Color color) {
+        BorderInfo(int style, CondLengthProperty width, Color color) {
             mStyle = style;
             mWidth = width;
             mColor = color;
@@ -124,6 +124,25 @@
         }
     }
 
+    /**
+     * A border info with style none. Used as a singleton, in the collapsing-border model,
+     * for elements which don't specify any border on some of their sides.
+     */
+    private static BorderInfo defaultBorderInfo;
+
+    /**
+     * Returns a default BorderInfo of style none.
+     * 
+     * @return a BorderInfo instance with style set to {@link Constants#EN_NONE}
+     */
+    public static synchronized BorderInfo getDefaultBorderInfo() {
+        if (defaultBorderInfo == null) {
+            /* It is enough to set color and width to null, as they should never be consulted */
+            defaultBorderInfo = new BorderInfo(Constants.EN_NONE, null, null);
+        }
+        return defaultBorderInfo;
+    }
+
     private BorderInfo[] borderInfo = new BorderInfo[4];
     private CondLengthProperty[] padding = new CondLengthProperty[4];
 
@@ -228,7 +247,7 @@
      */
     public BorderInfo getBorderInfo(int side) {
         if (this.borderInfo[side] == null) {
-            return new BorderInfo(Constants.EN_NONE, null, null); // TODO
+            return getDefaultBorderInfo();
         } else {
             return this.borderInfo[side];
         }



---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org