Author: gadams
Date: Mon May 28 03:30:37 2012
New Revision: 1343133

URL: http://svn.apache.org/viewvc?rev=1343133&view=rev
Log:
Add version attribute to AT and IF intermediate formats. Also eliminate 
redundant use of reversed attribute in AT format.

Modified:
    
xmlgraphics/fop/trunk/src/documentation/intermediate-format-ng/fop-intermediate-format-ng.xsd
    
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFSerializer.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/render/xml/XMLRenderer.java
    xmlgraphics/fop/trunk/status.xml
    
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/bidi_propagation_1.xml
    
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/character_writing-mode_rl.xml

Modified: 
xmlgraphics/fop/trunk/src/documentation/intermediate-format-ng/fop-intermediate-format-ng.xsd
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/documentation/intermediate-format-ng/fop-intermediate-format-ng.xsd?rev=1343133&r1=1343132&r2=1343133&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/src/documentation/intermediate-format-ng/fop-intermediate-format-ng.xsd
 (original)
+++ 
xmlgraphics/fop/trunk/src/documentation/intermediate-format-ng/fop-intermediate-format-ng.xsd
 Mon May 28 03:30:37 2012
@@ -34,6 +34,7 @@
         <xs:element ref="mf:page-sequence" minOccurs="1" 
maxOccurs="unbounded"/>
         <xs:element ref="mf:trailer"/>
       </xs:sequence>
+      <xs:attribute name="version" type="xs:string"/>
     </xs:complexType>
   </xs:element>
   <xs:element name="header">

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFSerializer.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFSerializer.java?rev=1343133&r1=1343132&r2=1343133&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFSerializer.java
 (original)
+++ 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFSerializer.java
 Mon May 28 03:30:37 2012
@@ -64,6 +64,15 @@ import org.apache.fop.util.XMLUtil;
 public class IFSerializer extends AbstractXMLWritingIFDocumentHandler
         implements IFConstants, IFPainter, IFDocumentNavigationHandler {
 
+    /**
+     * Intermediate Format (IF) version, used to express an @version attribute
+     * in the root element of the IF document, the initial value of which
+     * is set to '2.0' to signify that something preceded it (but didn't
+     * happen to be marked as such), and that this version is not necessarily
+     * backwards compatible with the unmarked (<2.0) version.
+     */
+    public static final String VERSION = "2.0";
+
     private IFDocumentHandler mimicHandler;
     private int pageSequenceIndex; // used for accessibility
 
@@ -167,7 +176,9 @@ public class IFSerializer extends Abstra
                     DocumentNavigationExtensionConstants.NAMESPACE);
             handler.startPrefixMapping(InternalElementMapping.STANDARD_PREFIX,
                     InternalElementMapping.URI);
-            handler.startElement(EL_DOCUMENT);
+            AttributesImpl atts = new AttributesImpl();
+            addAttribute(atts, "version", VERSION);
+            handler.startElement(EL_DOCUMENT, atts);
         } catch (SAXException e) {
             throw new IFException("SAX error in startDocument()", e);
         }

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/xml/XMLRenderer.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/xml/XMLRenderer.java?rev=1343133&r1=1343132&r2=1343133&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/xml/XMLRenderer.java 
(original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/xml/XMLRenderer.java 
Mon May 28 03:30:37 2012
@@ -97,6 +97,15 @@ import org.apache.fop.util.XMLUtil;
  */
 public class XMLRenderer extends AbstractXMLRenderer {
 
+    /**
+     * Area Tree  (AT) version, used to express an @version attribute
+     * in the root element of the AT document, the initial value of which
+     * is set to '2.0' to signify that something preceded it (but didn't
+     * happen to be marked as such), and that this version is not necessarily
+     * backwards compatible with the unmarked (<2.0) version.
+     */
+    public static final String VERSION = "2.0";
+
     /** XML MIME type */
     public static final String XML_MIME_TYPE = 
MimeConstants.MIME_FOP_AREA_TREE;
 
@@ -365,7 +374,9 @@ public class XMLRenderer extends Abstrac
         if (userAgent.getProducer() != null) {
             comment("Produced by " + userAgent.getProducer());
         }
-        startElement("areaTree");
+        atts.clear();
+        addAttribute("version", VERSION);
+        startElement("areaTree", atts);
     }
 
     /** {@inheritDoc} */
@@ -825,11 +836,10 @@ public class XMLRenderer extends Abstrac
         }
         maybeAddLevelAttribute(word);
         maybeAddPositionAdjustAttribute(word);
-        if ( word.isReversed() ) {
-            addAttribute("reversed", "true");
-        }
+        String text = word.getWord();
+        maybeAddReversedAttribute(word, text);
         startElement("word", atts);
-        characters(word.getWord());
+        characters(text);
         endElement("word");
         super.renderWord(word);
     }
@@ -917,5 +927,11 @@ public class XMLRenderer extends Abstrac
         }
     }
 
+    private void maybeAddReversedAttribute ( WordArea w, String text ) {
+        if ( w.isReversed() && ( text.length() > 1 )  ) {
+            addAttribute("reversed", "true");
+        }
+    }
+
 
 }

Modified: xmlgraphics/fop/trunk/status.xml
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/status.xml?rev=1343133&r1=1343132&r2=1343133&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/status.xml (original)
+++ xmlgraphics/fop/trunk/status.xml Mon May 28 03:30:37 2012
@@ -63,6 +63,9 @@
       documents. Example: the fix of marks layering will be such a case when 
it's done.
     -->
     <release version="FOP Trunk" date="TBD">
+      <action context="Renderers" dev="GA" type="fix" fixes-bug="53304,53306">
+        Add version attribute to AT and IF intermediate formats. Also 
eliminate redundant use of reversed attribute in AT format.
+      </action>
       <action context="Renderers" dev="GA" type="fix" fixes-bug="53295" 
due-to="Luis Bernardo">
         Add extension to place code just before PostScript %PageTrailer.
       </action>

Modified: 
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/bidi_propagation_1.xml
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/bidi_propagation_1.xml?rev=1343133&r1=1343132&r2=1343133&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/bidi_propagation_1.xml
 (original)
+++ 
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/bidi_propagation_1.xml
 Mon May 28 03:30:37 2012
@@ -66,7 +66,7 @@
                           <fo:table-cell margin-left="0" text-align="right">
                             <fo:block>
                               <fo:inline>
-                                <fo:inline><fo:bidi-override 
unicode-bidi="bidi-override" direction="rtl">X</fo:bidi-override></fo:inline>
+                                <fo:inline><fo:bidi-override 
unicode-bidi="bidi-override" direction="rtl">XY</fo:bidi-override></fo:inline>
                               </fo:inline>
                             </fo:block>
                           </fo:table-cell>
@@ -93,7 +93,7 @@
                           <fo:table-cell margin-left="0" text-align="right">
                             <fo:block>
                               <fo:inline>
-                                <fo:inline><fo:bidi-override 
unicode-bidi="bidi-override" direction="rtl">X</fo:bidi-override></fo:inline>
+                                <fo:inline><fo:bidi-override 
unicode-bidi="bidi-override" direction="rtl">XY</fo:bidi-override></fo:inline>
                               </fo:inline>
                             </fo:block>
                           </fo:table-cell>

Modified: 
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/character_writing-mode_rl.xml
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/character_writing-mode_rl.xml?rev=1343133&r1=1343132&r2=1343133&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/character_writing-mode_rl.xml
 (original)
+++ 
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/character_writing-mode_rl.xml
 Mon May 28 03:30:37 2012
@@ -59,18 +59,18 @@
     <eval expected="6672" 
xpath="//flow/block[2]/block[1]/block[1]/lineArea/inlineparent/text[1]/@ipd"/>
     <eval expected="4" 
xpath="//flow/block[2]/block[1]/block[1]/lineArea/inlineparent/text[1]/word[1]"/>
     <eval expected="3" 
xpath="//flow/block[2]/block[1]/block[1]/lineArea/inlineparent/text[1]/word[1]/@level"/>
-    <true 
xpath="boolean(//flow/block[2]/block[1]/block[1]/lineArea/inlineparent/text[1]/word[1]/@reversed)"/>
+    <eval expected="" 
xpath="//flow/block[2]/block[1]/block[1]/lineArea/inlineparent/text[1]/word[1]/@reversed"/>
     <eval expected="6672" 
xpath="//flow/block[2]/block[1]/block[1]/lineArea/inlineparent/text[2]/@ipd"/>
     <eval expected="3" 
xpath="//flow/block[2]/block[1]/block[1]/lineArea/inlineparent/text[2]/word[1]"/>
-    <eval expected="3" 
xpath="//flow/block[2]/block[1]/block[1]/lineArea/inlineparent/text[1]/word[1]/@level"/>
-    <true 
xpath="boolean(//flow/block[2]/block[1]/block[1]/lineArea/inlineparent/text[1]/word[1]/@reversed)"/>
+    <eval expected="3" 
xpath="//flow/block[2]/block[1]/block[1]/lineArea/inlineparent/text[2]/word[1]/@level"/>
+    <eval expected="" 
xpath="//flow/block[2]/block[1]/block[1]/lineArea/inlineparent/text[2]/word[1]/@reversed"/>
     <eval expected="6672" 
xpath="//flow/block[2]/block[1]/block[1]/lineArea/inlineparent/text[3]/@ipd"/>
     <eval expected="2" 
xpath="//flow/block[2]/block[1]/block[1]/lineArea/inlineparent/text[3]/word[1]"/>
     <eval expected="3" 
xpath="//flow/block[2]/block[1]/block[1]/lineArea/inlineparent/text[3]/word[1]/@level"/>
-    <true 
xpath="boolean(//flow/block[2]/block[1]/block[1]/lineArea/inlineparent/text[3]/word[1]/@reversed)"/>
+    <eval expected="" 
xpath="//flow/block[2]/block[1]/block[1]/lineArea/inlineparent/text[3]/word[1]/@reversed"/>
     <eval expected="6672" 
xpath="//flow/block[2]/block[1]/block[1]/lineArea/inlineparent/text[4]/@ipd"/>
     <eval expected="1" 
xpath="//flow/block[2]/block[1]/block[1]/lineArea/inlineparent/text[4]/word[1]"/>
     <eval expected="3" 
xpath="//flow/block[2]/block[1]/block[1]/lineArea/inlineparent/text[4]/word[1]/@level"/>
-    <true 
xpath="boolean(//flow/block[2]/block[1]/block[1]/lineArea/inlineparent/text[4]/word[1]/@reversed)"/>
+    <eval expected="" 
xpath="//flow/block[2]/block[1]/block[1]/lineArea/inlineparent/text[4]/word[1]/@reversed"/>
   </checks>
 </testcase>



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to