From 59933c342db81b1409d1c9d3cfdb466e194e4649 Mon Sep 17 00:00:00 2001 From: "Andreas L. Delmelle" Date: Mon, 24 Jan 2011 18:06:25 +0000 Subject: [PATCH] Bugzilla 50593: Mostly add type safety to various collections in the fop.area package. Additionally, added @Override annotations and used static import for Constants. git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1062901 13f79535-47bb-0310-9956-ffa450edef68 --- src/java/org/apache/fop/area/Area.java | 55 +++++---- .../org/apache/fop/area/AreaTreeHandler.java | 31 ++--- .../org/apache/fop/area/AreaTreeModel.java | 12 +- .../org/apache/fop/area/AreaTreeObject.java | 35 +++--- .../org/apache/fop/area/AreaTreeParser.java | 52 ++++---- src/java/org/apache/fop/area/BeforeFloat.java | 2 + src/java/org/apache/fop/area/BlockParent.java | 8 +- .../org/apache/fop/area/BookmarkData.java | 54 ++++---- src/java/org/apache/fop/area/CTM.java | 17 +-- .../fop/area/CachedRenderPagesModel.java | 12 +- .../org/apache/fop/area/DestinationData.java | 10 +- src/java/org/apache/fop/area/Footnote.java | 1 + src/java/org/apache/fop/area/IDTracker.java | 98 ++++++++++----- src/java/org/apache/fop/area/LineArea.java | 29 +++-- .../org/apache/fop/area/LinkResolver.java | 10 +- .../org/apache/fop/area/MainReference.java | 23 ++-- src/java/org/apache/fop/area/Page.java | 53 ++++---- .../org/apache/fop/area/PageSequence.java | 4 +- .../org/apache/fop/area/PageViewport.java | 116 +++++++++--------- .../org/apache/fop/area/RegionReference.java | 8 +- .../org/apache/fop/area/RenderPagesModel.java | 24 ++-- src/java/org/apache/fop/area/Resolvable.java | 2 +- src/java/org/apache/fop/area/Span.java | 7 +- src/java/org/apache/fop/area/Trait.java | 27 ++-- .../org/apache/fop/area/inline/Container.java | 2 +- .../apache/fop/area/inline/FilledArea.java | 20 ++- .../apache/fop/area/inline/InlineArea.java | 5 +- .../fop/area/inline/InlineBlockParent.java | 1 + .../org/apache/fop/area/inline/SpaceArea.java | 4 +- .../org/apache/fop/area/inline/TextArea.java | 11 +- .../fop/area/inline/UnresolvedPageNumber.java | 11 +- .../org/apache/fop/area/inline/WordArea.java | 14 +-- 32 files changed, 398 insertions(+), 360 deletions(-) diff --git a/src/java/org/apache/fop/area/Area.java b/src/java/org/apache/fop/area/Area.java index f94c68454..b1e27a1eb 100644 --- a/src/java/org/apache/fop/area/Area.java +++ b/src/java/org/apache/fop/area/Area.java @@ -132,7 +132,7 @@ public class Area extends AreaTreeObject implements Serializable { /** * Traits for this area stored in a HashMap */ - protected Map props = null; + protected Map props = null; /** * logging instance @@ -239,7 +239,7 @@ public class Area extends AreaTreeObject implements Serializable { Integer padWidth = (Integer) getTrait(Trait.PADDING_BEFORE); if (padWidth != null) { - margin += padWidth.intValue(); + margin += padWidth; } return margin; @@ -260,7 +260,7 @@ public class Area extends AreaTreeObject implements Serializable { Integer padWidth = (Integer) getTrait(Trait.PADDING_AFTER); if (padWidth != null) { - margin += padWidth.intValue(); + margin += padWidth; } return margin; @@ -280,7 +280,7 @@ public class Area extends AreaTreeObject implements Serializable { Integer padWidth = (Integer) getTrait(Trait.PADDING_START); if (padWidth != null) { - margin += padWidth.intValue(); + margin += padWidth; } return margin; @@ -300,7 +300,7 @@ public class Area extends AreaTreeObject implements Serializable { Integer padWidth = (Integer) getTrait(Trait.PADDING_END); if (padWidth != null) { - margin += padWidth.intValue(); + margin += padWidth; } return margin; @@ -315,7 +315,7 @@ public class Area extends AreaTreeObject implements Serializable { int margin = 0; Integer space = (Integer) getTrait(Trait.SPACE_BEFORE); if (space != null) { - margin = space.intValue(); + margin = space; } return margin; } @@ -329,7 +329,7 @@ public class Area extends AreaTreeObject implements Serializable { int margin = 0; Integer space = (Integer) getTrait(Trait.SPACE_AFTER); if (space != null) { - margin = space.intValue(); + margin = space; } return margin; } @@ -343,7 +343,7 @@ public class Area extends AreaTreeObject implements Serializable { int margin = 0; Integer space = (Integer) getTrait(Trait.SPACE_START); if (space != null) { - margin = space.intValue(); + margin = space; } return margin; } @@ -357,7 +357,7 @@ public class Area extends AreaTreeObject implements Serializable { int margin = 0; Integer space = (Integer) getTrait(Trait.SPACE_END); if (space != null) { - margin = space.intValue(); + margin = space; } return margin; } @@ -380,9 +380,9 @@ public class Area extends AreaTreeObject implements Serializable { */ public void addTrait(Object traitCode, Object prop) { if (props == null) { - props = new java.util.HashMap(20); + props = new java.util.HashMap(20); } - props.put(traitCode, prop); + props.put((Integer)traitCode, prop); } /** @@ -390,7 +390,7 @@ public class Area extends AreaTreeObject implements Serializable { * * @return the map of traits */ - public Map getTraits() { + public Map getTraits() { return this.props; } @@ -402,44 +402,44 @@ public class Area extends AreaTreeObject implements Serializable { /** * Get a trait from this area. * - * @param oTraitCode the trait key + * @param traitCode the trait key * @return the trait value */ - public Object getTrait(Object oTraitCode) { - return (props != null ? props.get(oTraitCode) : null); + public Object getTrait(Integer traitCode) { + return (props != null ? props.get(traitCode) : null); } /** * Checks whether a certain trait is set on this area. - * @param oTraitCode the trait key + * @param traitCode the trait key * @return true if the trait is set */ - public boolean hasTrait(Object oTraitCode) { - return (getTrait(oTraitCode) != null); + public boolean hasTrait(Integer traitCode) { + return (getTrait(traitCode) != null); } /** * Get a boolean trait from this area. - * @param oTraitCode the trait key + * @param traitCode the trait key * @return the trait value */ - public boolean getTraitAsBoolean(Object oTraitCode) { - return Boolean.TRUE.equals(getTrait(oTraitCode)); + public boolean getTraitAsBoolean(Integer traitCode) { + return Boolean.TRUE.equals(getTrait(traitCode)); } /** * Get a trait from this area as an integer. * - * @param oTraitCode the trait key + * @param traitCode the trait key * @return the trait value */ - public int getTraitAsInteger(Object oTraitCode) { - final Object obj = getTrait(oTraitCode); + public int getTraitAsInteger(Integer traitCode) { + final Object obj = getTrait(traitCode); if (obj instanceof Integer) { - return ((Integer)obj).intValue(); + return (Integer) obj; } else { throw new IllegalArgumentException("Trait " - + oTraitCode.getClass().getName() + + traitCode.getClass().getName() + " could not be converted to an integer"); } } @@ -447,7 +447,8 @@ public class Area extends AreaTreeObject implements Serializable { /** * {@inheritDoc} * @return ipd and bpd of area - * */ + */ + @Override public String toString() { StringBuffer sb = new StringBuffer(super.toString()); sb.append(" {ipd=").append(Integer.toString(getIPD())); diff --git a/src/java/org/apache/fop/area/AreaTreeHandler.java b/src/java/org/apache/fop/area/AreaTreeHandler.java index 87c681ed6..2729a5a0a 100644 --- a/src/java/org/apache/fop/area/AreaTreeHandler.java +++ b/src/java/org/apache/fop/area/AreaTreeHandler.java @@ -21,7 +21,6 @@ package org.apache.fop.area; // Java import java.io.OutputStream; -import java.util.Iterator; import java.util.List; import org.xml.sax.SAXException; @@ -175,6 +174,7 @@ public class AreaTreeHandler extends FOEventHandler { * @throws SAXException * if there is an error */ + @Override public void startDocument() throws SAXException { // Initialize statistics if (statistics != null) { @@ -194,6 +194,7 @@ public class AreaTreeHandler extends FOEventHandler { } /** {@inheritDoc} */ + @Override public void startPageSequence(PageSequence pageSequence) { startAbstractPageSequence(pageSequence); } @@ -210,10 +211,8 @@ public class AreaTreeHandler extends FOEventHandler { } } - private void wrapAndAddExtensionAttachments(List list) { - Iterator it = list.iterator(); - while (it.hasNext()) { - ExtensionAttachment attachment = (ExtensionAttachment) it.next(); + private void wrapAndAddExtensionAttachments(List list) { + for (ExtensionAttachment attachment : list) { addOffDocumentItem(new OffDocumentExtensionAttachment(attachment)); } } @@ -224,6 +223,7 @@ public class AreaTreeHandler extends FOEventHandler { * * @param pageSequence the page sequence ending */ + @Override public void endPageSequence(PageSequence pageSequence) { if (statistics != null) { @@ -243,11 +243,13 @@ public class AreaTreeHandler extends FOEventHandler { } /** {@inheritDoc} */ + @Override public void startExternalDocument(ExternalDocument document) { startAbstractPageSequence(document); } /** {@inheritDoc} */ + @Override public void endExternalDocument(ExternalDocument document) { if (statistics != null) { statistics.end(); @@ -282,15 +284,16 @@ public class AreaTreeHandler extends FOEventHandler { * * @throws SAXException if there is some error */ + @Override public void endDocument() throws SAXException { finishPrevPageSequence(null); // process fox:destination elements if (rootFObj != null) { - List destinationList = rootFObj.getDestinationList(); + List destinationList = rootFObj.getDestinationList(); if (destinationList != null) { while (destinationList.size() > 0) { - Destination destination = (Destination) destinationList.remove(0); + Destination destination = destinationList.remove(0); DestinationData destinationData = new DestinationData(destination); addOffDocumentItem(destinationData); } @@ -325,15 +328,15 @@ public class AreaTreeHandler extends FOEventHandler { if (odi instanceof Resolvable) { Resolvable res = (Resolvable) odi; String[] ids = res.getIDRefs(); - for (int count = 0; count < ids.length; count++) { - List pageVPList = idTracker.getPageViewportsContainingID(ids[count]); + for (String id : ids) { + List pageVPList = idTracker.getPageViewportsContainingID(id); if (pageVPList != null) { - res.resolveIDRef(ids[count], pageVPList); + res.resolveIDRef(id, pageVPList); } else { AreaEventProducer eventProducer = AreaEventProducer.Provider.get( getUserAgent().getEventBroadcaster()); - eventProducer.unresolvedIDReference(this, odi.getName(), ids[count]); - idTracker.addUnresolvedIDRef(ids[count], res); + eventProducer.unresolvedIDReference(this, odi.getName(), id); + idTracker.addUnresolvedIDRef(id, res); } } // check to see if ODI is now fully resolved, if so process it @@ -414,13 +417,13 @@ public class AreaTreeHandler extends FOEventHandler { } /** - * Get the list of page viewports that have an area with a given id. + * Get the set of page viewports that have an area with a given id. * * @param id the id to lookup * @return the list of PageViewports * @deprecated use getIDTracker().getPageViewportsContainingID(id) instead */ - public List getPageViewportsContainingID(String id) { + public List getPageViewportsContainingID(String id) { return idTracker.getPageViewportsContainingID(id); } diff --git a/src/java/org/apache/fop/area/AreaTreeModel.java b/src/java/org/apache/fop/area/AreaTreeModel.java index 8659b4cca..b829d89a2 100644 --- a/src/java/org/apache/fop/area/AreaTreeModel.java +++ b/src/java/org/apache/fop/area/AreaTreeModel.java @@ -36,7 +36,7 @@ import org.apache.commons.logging.LogFactory; * the life of the area tree model. */ public class AreaTreeModel { - private List/**/ pageSequenceList = null; + private List pageSequenceList = null; private int currentPageSequenceIndex = -1; /** the current page sequence */ protected PageSequence currentPageSequence; @@ -48,7 +48,7 @@ public class AreaTreeModel { * Create a new store pages model */ public AreaTreeModel() { - pageSequenceList = new java.util.ArrayList/**/(); + pageSequenceList = new java.util.ArrayList(); } /** @@ -72,7 +72,7 @@ public class AreaTreeModel { currentPageSequence.addPage(page); int pageIndex = 0; for (int i = 0; i < currentPageSequenceIndex; i++) { - pageIndex += ((PageSequence)pageSequenceList.get(i)).getPageCount(); + pageIndex += pageSequenceList.get(i).getPageCount(); } pageIndex += currentPageSequence.getPageCount() - 1; page.setPageIndex(pageIndex); @@ -113,8 +113,7 @@ public class AreaTreeModel { * @return returns the number of pages in a page sequence */ public int getPageCount(int seq) { - PageSequence sequence = (PageSequence)pageSequenceList.get(seq - 1); - return sequence.getPageCount(); + return pageSequenceList.get(seq - 1).getPageCount(); } /** @@ -124,7 +123,6 @@ public class AreaTreeModel { * @return the PageViewport for the particular page */ public PageViewport getPage(int seq, int count) { - PageSequence sequence = (PageSequence)pageSequenceList.get(seq - 1); - return sequence.getPage(count); + return pageSequenceList.get(seq - 1).getPage(count); } } diff --git a/src/java/org/apache/fop/area/AreaTreeObject.java b/src/java/org/apache/fop/area/AreaTreeObject.java index bab27f411..dbbfc5744 100644 --- a/src/java/org/apache/fop/area/AreaTreeObject.java +++ b/src/java/org/apache/fop/area/AreaTreeObject.java @@ -34,10 +34,10 @@ import org.apache.fop.fo.extensions.ExtensionAttachment; public abstract class AreaTreeObject { /** Foreign attributes */ - protected Map foreignAttributes = null; + protected Map foreignAttributes = null; /** Extension attachments */ - protected List/**/ extensionAttachments = null; + protected List extensionAttachments = null; /** * Sets a foreign attribute. @@ -46,25 +46,22 @@ public abstract class AreaTreeObject { */ public void setForeignAttribute(QName name, String value) { if (this.foreignAttributes == null) { - this.foreignAttributes = new java.util.HashMap(); + this.foreignAttributes = new java.util.HashMap(); } this.foreignAttributes.put(name, value); } /** - * Set foreign attributes from a Map. + * Add foreign attributes from a Map. + * * @param atts a Map with attributes (keys: QName, values: String) */ - public void setForeignAttributes(Map atts) { - if (atts.size() == 0) { + public void setForeignAttributes(Map atts) { + if (atts == null || atts.size() == 0) { return; } - Iterator iter = atts.entrySet().iterator(); - while (iter.hasNext()) { - Map.Entry entry = (Map.Entry)iter.next(); - String value = (String)entry.getValue(); - //The casting is only to ensure type safety (too bad we can't use generics, yet) - setForeignAttribute((QName)entry.getKey(), value); + for (Map.Entry e : atts.entrySet()) { + setForeignAttribute(e.getKey(), e.getValue()); } } @@ -75,24 +72,24 @@ public abstract class AreaTreeObject { */ public String getForeignAttributeValue(QName name) { if (this.foreignAttributes != null) { - return (String)this.foreignAttributes.get(name); + return this.foreignAttributes.get(name); } else { return null; } } /** @return the foreign attributes associated with this area */ - public Map getForeignAttributes() { + public Map getForeignAttributes() { if (this.foreignAttributes != null) { return Collections.unmodifiableMap(this.foreignAttributes); } else { - return Collections.EMPTY_MAP; + return Collections.emptyMap(); } } private void prepareExtensionAttachmentContainer() { if (this.extensionAttachments == null) { - this.extensionAttachments = new java.util.ArrayList/**/(); + this.extensionAttachments = new java.util.ArrayList(); } } @@ -109,17 +106,17 @@ public abstract class AreaTreeObject { * Set extension attachments from a List * @param extensionAttachments a List with extension attachments */ - public void setExtensionAttachments(List extensionAttachments) { + public void setExtensionAttachments(List extensionAttachments) { prepareExtensionAttachmentContainer(); this.extensionAttachments.addAll(extensionAttachments); } /** @return the extension attachments associated with this area */ - public List getExtensionAttachments() { + public List getExtensionAttachments() { if (this.extensionAttachments != null) { return Collections.unmodifiableList(this.extensionAttachments); } else { - return Collections.EMPTY_LIST; + return Collections.emptyList(); } } diff --git a/src/java/org/apache/fop/area/AreaTreeParser.java b/src/java/org/apache/fop/area/AreaTreeParser.java index ae7c0a7c3..6c82257f3 100644 --- a/src/java/org/apache/fop/area/AreaTreeParser.java +++ b/src/java/org/apache/fop/area/AreaTreeParser.java @@ -75,7 +75,6 @@ import org.apache.fop.area.inline.SpaceArea; import org.apache.fop.area.inline.TextArea; import org.apache.fop.area.inline.Viewport; import org.apache.fop.area.inline.WordArea; -import org.apache.fop.fo.Constants; import org.apache.fop.fo.ElementMappingRegistry; import org.apache.fop.fo.expr.PropertyException; import org.apache.fop.fo.extensions.ExtensionAttachment; @@ -91,6 +90,12 @@ import org.apache.fop.util.DelegatingContentHandler; import org.apache.fop.util.XMLConstants; import org.apache.fop.util.XMLUtil; +import static org.apache.fop.fo.Constants.FO_REGION_AFTER; +import static org.apache.fop.fo.Constants.FO_REGION_BEFORE; +import static org.apache.fop.fo.Constants.FO_REGION_BODY; +import static org.apache.fop.fo.Constants.FO_REGION_END; +import static org.apache.fop.fo.Constants.FO_REGION_START; + /** * This is a parser for the area tree XML (intermediate format) which is used to reread an area * tree (or part of it) into memory again for rendering to the final output format. @@ -136,7 +141,7 @@ public class AreaTreeParser { private static class Handler extends DefaultHandler { - private Map makers = new java.util.HashMap(); + private Map makers = new java.util.HashMap(); private AreaTreeModel treeModel; private FOUserAgent userAgent; @@ -148,14 +153,15 @@ public class AreaTreeParser { private boolean ignoreCharacters = true; private PageViewport currentPageViewport; - private Map pageViewportsByKey = new java.util.HashMap(); + private Map pageViewportsByKey + = new java.util.HashMap(); // set of "ID firsts" that have already been assigned to a PV: - private Set idFirstsAssigned = new java.util.HashSet(); + private Set idFirstsAssigned = new java.util.HashSet(); - private Stack areaStack = new Stack(); + private Stack areaStack = new Stack(); private boolean firstFlow; - private Stack delegateStack = new Stack(); + private Stack delegateStack = new Stack(); private ContentHandler delegate; private DOMImplementation domImplementation; private Locator locator; @@ -228,9 +234,9 @@ public class AreaTreeParser { if (areaStack.size() > 0) { int pos = areaStack.size() - 1; Object obj = null; - while ( pos >= 0 ) { + while (pos >= 0) { obj = areaStack.get(pos); - if ( clazz.isInstance ( obj ) ) { + if (clazz.isInstance(obj)) { break; } else { pos--; @@ -358,7 +364,7 @@ public class AreaTreeParser { private boolean startAreaTreeElement(String localName, Attributes attributes) throws SAXException { lastAttributes = new AttributesImpl(attributes); - Maker maker = (Maker)makers.get(localName); + Maker maker = makers.get(localName); content.clear(); ignoreCharacters = true; if (maker != null) { @@ -387,7 +393,7 @@ public class AreaTreeParser { } } else { if ("".equals(uri)) { - Maker maker = (Maker)makers.get(localName); + Maker maker = makers.get(localName); if (maker != null) { maker.endElement(); content.clear(); @@ -525,7 +531,7 @@ public class AreaTreeParser { private class RegionBeforeMaker extends AbstractMaker { public void startElement(Attributes attributes) { - pushNewRegionReference(attributes, Constants.FO_REGION_BEFORE); + pushNewRegionReference(attributes, FO_REGION_BEFORE); } public void endElement() { @@ -536,7 +542,7 @@ public class AreaTreeParser { private class RegionAfterMaker extends AbstractMaker { public void startElement(Attributes attributes) { - pushNewRegionReference(attributes, Constants.FO_REGION_AFTER); + pushNewRegionReference(attributes, FO_REGION_AFTER); } public void endElement() { @@ -547,7 +553,7 @@ public class AreaTreeParser { private class RegionStartMaker extends AbstractMaker { public void startElement(Attributes attributes) { - pushNewRegionReference(attributes, Constants.FO_REGION_START); + pushNewRegionReference(attributes, FO_REGION_START); } public void endElement() { @@ -558,7 +564,7 @@ public class AreaTreeParser { private class RegionEndMaker extends AbstractMaker { public void startElement(Attributes attributes) { - pushNewRegionReference(attributes, Constants.FO_REGION_END); + pushNewRegionReference(attributes, FO_REGION_END); } public void endElement() { @@ -577,15 +583,13 @@ public class AreaTreeParser { int columnCount = XMLUtil.getAttributeAsInt(attributes, "columnCount", 1); int columnGap = XMLUtil.getAttributeAsInt(attributes, "columnGap", 0); RegionViewport rv = getCurrentRegionViewport(); - body = new BodyRegion(Constants.FO_REGION_BODY, - regionName, rv, columnCount, columnGap); + body = new BodyRegion(FO_REGION_BODY, regionName, rv, columnCount, columnGap); transferForeignObjects(attributes, body); body.setCTM(getAttributeAsCTM(attributes, "ctm")); setAreaAttributes(attributes, body); setTraits(attributes, body, SUBSET_BORDER_PADDING); rv.setRegionReference(body); - currentPageViewport.getPage().setRegionViewport( - Constants.FO_REGION_BODY, rv); + currentPageViewport.getPage().setRegionViewport(FO_REGION_BODY, rv); areaStack.push(body); } @@ -982,7 +986,7 @@ public class AreaTreeParser { attributes, "show-children", false); String[] linkdata = InternalLink.parseXMLAttribute(attributes.getValue("internal-link")); - PageViewport pv = (PageViewport) pageViewportsByKey.get(linkdata[0]); + PageViewport pv = pageViewportsByKey.get(linkdata[0]); BookmarkData bm = new BookmarkData(title, showChildren, pv, linkdata[1]); Object tos = areaStack.peek(); if (tos instanceof BookmarkData) { @@ -1002,9 +1006,9 @@ public class AreaTreeParser { public void startElement(Attributes attributes) { String[] linkdata = InternalLink.parseXMLAttribute(lastAttributes.getValue("internal-link")); - PageViewport pv = (PageViewport) pageViewportsByKey.get(linkdata[0]); + PageViewport pv = pageViewportsByKey.get(linkdata[0]); DestinationData dest = new DestinationData(linkdata[1]); - List pages = new java.util.ArrayList(); + List pages = new java.util.ArrayList(); pages.add(pv); dest.resolveIDRef(linkdata[1], pages); areaStack.push(dest); @@ -1096,7 +1100,7 @@ public class AreaTreeParser { private void setTraits(Attributes attributes, Area area, Object[] traitSubset) { for (int i = traitSubset.length; --i >= 0;) { - Object trait = traitSubset[i]; + Integer trait = (Integer) traitSubset[i]; String traitName = Trait.getTraitName(trait); String value = attributes.getValue(traitName); if (value != null) { @@ -1107,7 +1111,7 @@ public class AreaTreeParser { area.addTrait(trait, Boolean.valueOf(value)); } else if (cl == String.class) { area.addTrait(trait, value); - if (trait == Trait.PROD_ID + if (Trait.PROD_ID.equals(trait) && !idFirstsAssigned.contains(value) && currentPageViewport != null) { currentPageViewport.setFirstWithID(value); @@ -1173,7 +1177,7 @@ public class AreaTreeParser { area.addTrait(trait, BorderProps.valueOf(this.userAgent, value)); } } else { - if (trait == Trait.FONT) { + if (Trait.FONT.equals(trait)) { String fontName = attributes.getValue("font-name"); if (fontName != null) { String fontStyle = attributes.getValue("font-style"); diff --git a/src/java/org/apache/fop/area/BeforeFloat.java b/src/java/org/apache/fop/area/BeforeFloat.java index b64eff556..c4d7e21d6 100644 --- a/src/java/org/apache/fop/area/BeforeFloat.java +++ b/src/java/org/apache/fop/area/BeforeFloat.java @@ -57,6 +57,7 @@ public class BeforeFloat extends BlockParent { * * @return the height of the before float including separator */ + @Override public int getBPD() { int h = super.getBPD(); if (separator != null) { @@ -66,6 +67,7 @@ public class BeforeFloat extends BlockParent { } /** {@inheritDoc} */ + @Override public boolean isEmpty() { return true; // before floats are not yet implemented } diff --git a/src/java/org/apache/fop/area/BlockParent.java b/src/java/org/apache/fop/area/BlockParent.java index 18f9056da..5a64d52cf 100644 --- a/src/java/org/apache/fop/area/BlockParent.java +++ b/src/java/org/apache/fop/area/BlockParent.java @@ -50,15 +50,13 @@ public class BlockParent extends Area { /** * The children of this block parent area. */ - protected List children = null; - - // orientation if reference area -// private int orientation = ORIENT_0; + protected List children = null; /** {@inheritDoc} */ + @Override public void addChildArea(Area childArea) { if (children == null) { - children = new ArrayList(); + children = new ArrayList(); } children.add(childArea); } diff --git a/src/java/org/apache/fop/area/BookmarkData.java b/src/java/org/apache/fop/area/BookmarkData.java index 28ee2c23e..727040a3c 100644 --- a/src/java/org/apache/fop/area/BookmarkData.java +++ b/src/java/org/apache/fop/area/BookmarkData.java @@ -19,8 +19,6 @@ package org.apache.fop.area; -import java.util.Collection; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -34,13 +32,13 @@ import org.apache.fop.fo.pagination.bookmarks.BookmarkTree; */ public class BookmarkData extends AbstractOffDocumentItem implements Resolvable { - private List subData = new java.util.ArrayList(); + private List subData = new java.util.ArrayList(); // bookmark-title for this fo:bookmark private String bookmarkTitle = null; // indicator of whether to initially display/hide child bookmarks of this object - private boolean bShow = true; + private boolean showChildren = true; // ID Reference for this bookmark private String idRef; @@ -49,7 +47,8 @@ public class BookmarkData extends AbstractOffDocumentItem implements Resolvable private PageViewport pageRef = null; // unresolved idrefs by this bookmark and child bookmarks below it - private Map unresolvedIDRefs = new java.util.HashMap(); + private Map> unresolvedIDRefs + = new java.util.HashMap>(); /** * Create a new bookmark data object. @@ -59,10 +58,10 @@ public class BookmarkData extends AbstractOffDocumentItem implements Resolvable * @param bookmarkTree fo:bookmark-tree for this document */ public BookmarkData(BookmarkTree bookmarkTree) { - idRef = null; - whenToProcess = END_OF_DOC; + this.idRef = null; + this.whenToProcess = END_OF_DOC; // top level defined in Rec to show all child bookmarks - bShow = true; + this.showChildren = true; for (int count = 0; count < bookmarkTree.getBookmarks().size(); count++) { Bookmark bkmk = (Bookmark)(bookmarkTree.getBookmarks()).get(count); @@ -79,15 +78,15 @@ public class BookmarkData extends AbstractOffDocumentItem implements Resolvable * @param bookmark the fo:bookmark object */ public BookmarkData(Bookmark bookmark) { - bookmarkTitle = bookmark.getBookmarkTitle(); - bShow = bookmark.showChildItems(); + this.bookmarkTitle = bookmark.getBookmarkTitle(); + this.showChildren = bookmark.showChildItems(); this.idRef = bookmark.getInternalDestination(); } private void putUnresolved(String id, BookmarkData bd) { - List refs = (List)unresolvedIDRefs.get(id); + List refs = unresolvedIDRefs.get(id); if (refs == null) { - refs = new java.util.ArrayList(); + refs = new java.util.ArrayList(); unresolvedIDRefs.put(id, refs); } refs.add(bd); @@ -101,7 +100,7 @@ public class BookmarkData extends AbstractOffDocumentItem implements Resolvable public BookmarkData() { idRef = null; whenToProcess = END_OF_DOC; - bShow = true; + showChildren = true; } /** @@ -116,7 +115,7 @@ public class BookmarkData extends AbstractOffDocumentItem implements Resolvable */ public BookmarkData(String title, boolean showChildren, PageViewport pv, String idRef) { bookmarkTitle = title; - bShow = showChildren; + this.showChildren = showChildren; pageRef = pv; this.idRef = idRef; } @@ -138,11 +137,11 @@ public class BookmarkData extends AbstractOffDocumentItem implements Resolvable */ public void addSubData(BookmarkData sub) { subData.add(sub); - if (sub.pageRef == null || sub.pageRef.equals("")) { + if (sub.pageRef == null) { putUnresolved(sub.getIDRef(), sub); String[] ids = sub.getIDRefs(); - for (int count = 0; count < ids.length; count++) { - putUnresolved(ids[count], sub); + for (String id : ids) { + putUnresolved(id, sub); } } } @@ -162,7 +161,7 @@ public class BookmarkData extends AbstractOffDocumentItem implements Resolvable * @return true to initially display child bookmarks, false otherwise */ public boolean showChildItems() { - return bShow; + return showChildren; } /** @@ -181,7 +180,7 @@ public class BookmarkData extends AbstractOffDocumentItem implements Resolvable * @return the child bookmark data */ public BookmarkData getSubData(int count) { - return (BookmarkData) subData.get(count); + return subData.get(count); } /** @@ -208,7 +207,8 @@ public class BookmarkData extends AbstractOffDocumentItem implements Resolvable * {@inheritDoc} */ public String[] getIDRefs() { - return (String[])unresolvedIDRefs.keySet().toArray(new String[] {}); + return unresolvedIDRefs.keySet().toArray( + new String[unresolvedIDRefs.keySet().size()]); } /** @@ -217,22 +217,20 @@ public class BookmarkData extends AbstractOffDocumentItem implements Resolvable * resolves id references of child elements that have the same * id reference. * - * {@inheritDoc} List) + * {@inheritDoc} */ - public void resolveIDRef(String id, List pages) { + public void resolveIDRef(String id, List pages) { if (id.equals(idRef)) { //Own ID has been resolved, so note the page - pageRef = (PageViewport) pages.get(0); + pageRef = pages.get(0); //Note: Determining the placement inside the page is the renderer's job. } //Notify all child bookmarks - Collection refs = (Collection)unresolvedIDRefs.get(id); + List refs = unresolvedIDRefs.get(id); if (refs != null) { - Iterator iter = refs.iterator(); - while (iter.hasNext()) { - BookmarkData bd = (BookmarkData)iter.next(); - bd.resolveIDRef(id, pages); + for (Resolvable res : refs) { + res.resolveIDRef(id, pages); } } unresolvedIDRefs.remove(id); diff --git a/src/java/org/apache/fop/area/CTM.java b/src/java/org/apache/fop/area/CTM.java index eb6207c42..07c3bbc02 100644 --- a/src/java/org/apache/fop/area/CTM.java +++ b/src/java/org/apache/fop/area/CTM.java @@ -25,7 +25,10 @@ import java.awt.geom.Rectangle2D; import java.io.Serializable; import org.apache.fop.datatypes.FODimension; -import org.apache.fop.fo.Constants; + +import static org.apache.fop.fo.Constants.EN_LR_TB; +import static org.apache.fop.fo.Constants.EN_RL_TB; +import static org.apache.fop.fo.Constants.EN_TB_RL; /** * Describe a PDF or PostScript style coordinate transformation matrix (CTM). @@ -133,14 +136,14 @@ public class CTM implements Serializable { public static CTM getWMctm(int wm, int ipd, int bpd) { CTM wmctm; switch (wm) { - case Constants.EN_LR_TB: + case EN_LR_TB: return new CTM(CTM_LRTB); - case Constants.EN_RL_TB: + case EN_RL_TB: wmctm = new CTM(CTM_RLTB); wmctm.e = ipd; return wmctm; //return CTM_RLTB.translate(ipd, 0); - case Constants.EN_TB_RL: // CJK + case EN_TB_RL: // CJK wmctm = new CTM(CTM_TBRL); wmctm.e = bpd; return wmctm; @@ -157,13 +160,12 @@ public class CTM implements Serializable { * @return CTM The result of multiplying premult * this. */ public CTM multiply(CTM premult) { - CTM result = new CTM ((premult.a * a) + (premult.b * c), + return new CTM ((premult.a * a) + (premult.b * c), (premult.a * b) + (premult.b * d), (premult.c * a) + (premult.d * c), (premult.c * b) + (premult.d * d), (premult.e * a) + (premult.f * c) + e, (premult.e * b) + (premult.f * d) + f); - return result; } /** @@ -249,6 +251,7 @@ public class CTM implements Serializable { * * @return a string with the transform values */ + @Override public String toString() { return "[" + a + " " + b + " " + c + " " + d + " " + e + " " + f + "]"; @@ -332,7 +335,7 @@ public class CTM implements Serializable { * can set ipd and bpd appropriately based on the writing mode. */ - if (writingMode == Constants.EN_LR_TB || writingMode == Constants.EN_RL_TB) { + if (writingMode == EN_LR_TB || writingMode == EN_RL_TB) { reldims.ipd = width; reldims.bpd = height; } else { diff --git a/src/java/org/apache/fop/area/CachedRenderPagesModel.java b/src/java/org/apache/fop/area/CachedRenderPagesModel.java index 729ca0c65..288884a55 100644 --- a/src/java/org/apache/fop/area/CachedRenderPagesModel.java +++ b/src/java/org/apache/fop/area/CachedRenderPagesModel.java @@ -48,7 +48,8 @@ import org.apache.fop.fonts.FontInfo; * the contents are reloaded. */ public class CachedRenderPagesModel extends RenderPagesModel { - private Map pageMap = new HashMap(); + + private Map pageMap = new HashMap(); /** Base directory to save temporary file in, typically points to the user's temp dir. */ protected File baseDir; @@ -64,12 +65,12 @@ public class CachedRenderPagesModel extends RenderPagesModel { public CachedRenderPagesModel (FOUserAgent userAgent, String outputFormat, FontInfo fontInfo, OutputStream stream) throws FOPException { super(userAgent, outputFormat, fontInfo, stream); + //TODO: Avoid System.getProperty()? this.baseDir = new File(System.getProperty("java.io.tmpdir")); } - /** - * {@inheritDoc} - */ + /** {@inheritDoc} */ + @Override protected boolean checkPreparedPages(PageViewport newpage, boolean renderUnresolved) { for (Iterator iter = prepared.iterator(); iter.hasNext();) { PageViewport pageViewport = (PageViewport)iter.next(); @@ -77,7 +78,7 @@ public class CachedRenderPagesModel extends RenderPagesModel { if (pageViewport != newpage) { try { // load page from cache - String name = (String)pageMap.get(pageViewport); + String name = pageMap.get(pageViewport); File tempFile = new File(baseDir, name); log.debug("Loading page from: " + tempFile); ObjectInputStream in = new ObjectInputStream( @@ -152,6 +153,7 @@ public class CachedRenderPagesModel extends RenderPagesModel { } /** {@inheritDoc} */ + @Override public void endDocument() throws SAXException { super.endDocument(); } diff --git a/src/java/org/apache/fop/area/DestinationData.java b/src/java/org/apache/fop/area/DestinationData.java index f8d906b91..5797e41df 100644 --- a/src/java/org/apache/fop/area/DestinationData.java +++ b/src/java/org/apache/fop/area/DestinationData.java @@ -66,9 +66,7 @@ public class DestinationData extends AbstractOffDocumentItem implements Resolvab return idRef; } - /** - * {@inheritDoc} - */ + /** {@inheritDoc} */ public String[] getIDRefs() { return idRefs; } @@ -97,12 +95,12 @@ public class DestinationData extends AbstractOffDocumentItem implements Resolvab * Resolves the idref of this object by getting the PageViewport * object that corresponds to the IDRef * - * {@inheritDoc} List) + * {@inheritDoc} * TODO check to make sure it works if multiple bookmark-items * have the same idref */ - public void resolveIDRef(String id, List pages) { - pageRef = (PageViewport) pages.get(0); + public void resolveIDRef(String id, List pages) { + pageRef = pages.get(0); // TODO get rect area of id on page } diff --git a/src/java/org/apache/fop/area/Footnote.java b/src/java/org/apache/fop/area/Footnote.java index 72b9f2ed0..bc9f27b24 100644 --- a/src/java/org/apache/fop/area/Footnote.java +++ b/src/java/org/apache/fop/area/Footnote.java @@ -80,6 +80,7 @@ public class Footnote extends BlockParent { * * @param child the block area. */ + @Override public void addBlock(Block child) { addChildArea(child); this.setBPD(this.getBPD() + child.getBPD()); diff --git a/src/java/org/apache/fop/area/IDTracker.java b/src/java/org/apache/fop/area/IDTracker.java index 829c8c58d..0986891f8 100644 --- a/src/java/org/apache/fop/area/IDTracker.java +++ b/src/java/org/apache/fop/area/IDTracker.java @@ -19,8 +19,7 @@ package org.apache.fop.area; -import java.util.ArrayList; -import java.util.Iterator; +import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Set; @@ -36,18 +35,20 @@ public class IDTracker { private static final Log LOG = LogFactory.getLog(IDTracker.class); - // HashMap of ID's whose area is located on one or more consecutive - // PageViewports. Each ID has an arraylist of PageViewports that + // Map of ID's whose area is located on one or more consecutive + // PageViewports. Each ID has a list of PageViewports that // form the defined area of this ID - private Map idLocations = new java.util.HashMap(); + private Map> idLocations + = new java.util.HashMap>(); // idref's whose target PageViewports have yet to be identified // Each idref has a HashSet of Resolvable objects containing that idref - private Map unresolvedIDRefs = new java.util.HashMap(); + private Map> unresolvedIDRefs + = new java.util.HashMap>(); - private Set unfinishedIDs = new java.util.HashSet(); + private Set unfinishedIDs = new java.util.HashSet(); - private Set alreadyResolvedIDs = new java.util.HashSet(); + private Set alreadyResolvedIDs = new java.util.HashSet(); /** * Tie a PageViewport with an ID found on a child area of the PV. Note that @@ -61,9 +62,9 @@ public class IDTracker { if (LOG.isDebugEnabled()) { LOG.debug("associateIDWithPageViewport(" + id + ", " + pv + ")"); } - List pvList = (List) idLocations.get(id); + List pvList = idLocations.get(id); if (pvList == null) { // first time ID located - pvList = new ArrayList(); + pvList = new java.util.ArrayList(); idLocations.put(id, pvList); pvList.add(pv); // signal the PageViewport that it is the first PV to contain this id: @@ -73,7 +74,7 @@ public class IDTracker { * Resolvable objects tied to it. */ if (!unfinishedIDs.contains(id)) { - tryIDResolution(id, pv, pvList); + tryIDResolution(id, pvList); } } else { /* TODO: The check is a quick-fix to avoid a waste @@ -116,12 +117,11 @@ public class IDTracker { } unfinishedIDs.remove(id); - List pvList = (List) idLocations.get(id); - Set todo = (Set) unresolvedIDRefs.get(id); + List idLocs = idLocations.get(id); + Set todo = unresolvedIDRefs.get(id); if (todo != null) { - for (Iterator iter = todo.iterator(); iter.hasNext();) { - Resolvable res = (Resolvable) iter.next(); - res.resolveIDRef(id, pvList); + for (Resolvable res : todo) { + res.resolveIDRef(id, idLocs); } unresolvedIDRefs.remove(id); } @@ -138,17 +138,15 @@ public class IDTracker { } /** - * Tries to resolve all unresolved ID references on the given page. + * Tries to resolve all unresolved ID references on the given set of pages. * * @param id ID to resolve - * @param pv page viewport whose ID refs to resolve - * @param pvList of PageViewports + * @param pvList list of PageViewports */ - private void tryIDResolution(String id, PageViewport pv, List pvList) { - Set todo = (Set) unresolvedIDRefs.get(id); + private void tryIDResolution(String id, List pvList) { + Set todo = unresolvedIDRefs.get(id); if (todo != null) { - for (Iterator iter = todo.iterator(); iter.hasNext();) { - Resolvable res = (Resolvable) iter.next(); + for (Resolvable res : todo) { if (!unfinishedIDs.contains(id)) { res.resolveIDRef(id, pvList); } else { @@ -168,10 +166,10 @@ public class IDTracker { public void tryIDResolution(PageViewport pv) { String[] ids = pv.getIDRefs(); if (ids != null) { - for (int i = 0; i < ids.length; i++) { - List pvList = (List) idLocations.get(ids[i]); - if (pvList != null) { - tryIDResolution(ids[i], pv, pvList); + for (String id : ids) { + List pvList = idLocations.get(id); + if (!(pvList == null || pvList.isEmpty())) { + tryIDResolution(id, pvList); } } } @@ -183,8 +181,46 @@ public class IDTracker { * @param id the id to lookup * @return the list of PageViewports */ - public List getPageViewportsContainingID(String id) { - return (List) idLocations.get(id); + public List getPageViewportsContainingID(String id) { + if (!(idLocations == null || idLocations.isEmpty())) { + List idLocs = idLocations.get(id); + if (idLocs != null) { + return idLocs; + } + } + return Collections.emptyList(); + } + + /** + * Get the first {@link PageViewport} containing content generated + * by the FO with the given {@code id}. + * + * @param id the id + * @return the first {@link PageViewport} for the id; {@code null} if + * no matching {@link PageViewport} was found + */ + public PageViewport getFirstPageViewportContaining(String id) { + List list = getPageViewportsContainingID(id); + if (!(list == null || list.isEmpty())) { + return list.get(0); + } + return null; + } + + /** + * Get the last {@link PageViewport} containing content generated + * by the FO with the given {@code id}. + * + * @param id the id + * @return the last {@link PageViewport} for the id; {@code null} if + * no matching {@link PageViewport} was found + */ + public PageViewport getLastPageViewportContaining(String id) { + List list = getPageViewportsContainingID(id); + if (!(list == null || list.isEmpty())) { + return list.get(list.size() - 1); + } + return null; } /** @@ -194,9 +230,9 @@ public class IDTracker { * @param res the Resolvable object needing the idref to be resolved */ public void addUnresolvedIDRef(String idref, Resolvable res) { - Set todo = (Set) unresolvedIDRefs.get(idref); + Set todo = unresolvedIDRefs.get(idref); if (todo == null) { - todo = new java.util.HashSet(); + todo = new java.util.HashSet(); unresolvedIDRefs.put(idref, todo); } // add Resolvable object to this HashSet diff --git a/src/java/org/apache/fop/area/LineArea.java b/src/java/org/apache/fop/area/LineArea.java index b33b5da14..edf60578a 100644 --- a/src/java/org/apache/fop/area/LineArea.java +++ b/src/java/org/apache/fop/area/LineArea.java @@ -24,7 +24,11 @@ import java.util.ArrayList; import java.util.List; import org.apache.fop.area.inline.InlineArea; -import org.apache.fop.fo.Constants; + +import static org.apache.fop.fo.Constants.EN_START; +import static org.apache.fop.fo.Constants.EN_CENTER; +import static org.apache.fop.fo.Constants.EN_END; +import static org.apache.fop.fo.Constants.EN_JUSTIFY; /** * The line area. @@ -75,7 +79,7 @@ public class LineArea extends Area { // this class can contain the dominant char styling info // this means that many renderers can optimise a bit - private List inlineAreas = new ArrayList(); + private List inlineAreas = new ArrayList(); /** * default constructor: @@ -102,11 +106,12 @@ public class LineArea extends Area { * * @param childArea the inline child area to add */ + @Override public void addChildArea(Area childArea) { if (childArea instanceof InlineArea) { addInlineArea((InlineArea)childArea); // set the parent area for the child area - ((InlineArea) childArea).setParentArea(this); + ((InlineArea)childArea).setParentArea(this); } } @@ -150,8 +155,8 @@ public class LineArea extends Area { int ipd = 0; int bpd = 0; for (int i = 0, len = inlineAreas.size(); i < len; i++) { - ipd = Math.max(ipd, ((InlineArea)inlineAreas.get(i)).getAllocIPD()); - bpd += ((InlineArea)inlineAreas.get(i)).getAllocBPD(); + ipd = Math.max(ipd, inlineAreas.get(i).getAllocIPD()); + bpd += inlineAreas.get(i).getAllocBPD(); } setIPD(ipd); setBPD(bpd); @@ -174,18 +179,18 @@ public class LineArea extends Area { */ public void handleIPDVariation(int ipdVariation) { switch (adjustingInfo.lineAlignment) { - case Constants.EN_START: + case EN_START: // nothing to do in this case break; - case Constants.EN_CENTER: + case EN_CENTER: // re-compute indent - addTrait(Trait.START_INDENT, new Integer(getStartIndent() - ipdVariation / 2)); + addTrait(Trait.START_INDENT, getStartIndent() - ipdVariation / 2); break; - case Constants.EN_END: + case EN_END: // re-compute indent - addTrait(Trait.START_INDENT, new Integer(getStartIndent() - ipdVariation)); + addTrait(Trait.START_INDENT, getStartIndent() - ipdVariation); break; - case Constants.EN_JUSTIFY: + case EN_JUSTIFY: // compute variation factor adjustingInfo.variationFactor *= (float) (adjustingInfo.difference - ipdVariation) / adjustingInfo.difference; @@ -207,7 +212,7 @@ public class LineArea extends Area { * no UnresolvedAreas left */ public void finalise() { - if (adjustingInfo.lineAlignment == Constants.EN_JUSTIFY) { + if (adjustingInfo.lineAlignment == EN_JUSTIFY) { if (log.isTraceEnabled()) { log.trace("Applying variation factor to justified line: " + adjustingInfo); } diff --git a/src/java/org/apache/fop/area/LinkResolver.java b/src/java/org/apache/fop/area/LinkResolver.java index 70bdfdf91..1e135701f 100644 --- a/src/java/org/apache/fop/area/LinkResolver.java +++ b/src/java/org/apache/fop/area/LinkResolver.java @@ -23,12 +23,6 @@ package org.apache.fop.area; import java.util.List; import java.io.Serializable; -// FOP -import org.apache.fop.area.Trait; -import org.apache.fop.area.Resolvable; -import org.apache.fop.area.PageViewport; -import org.apache.fop.area.Area; - /** * Link resolving for resolving internal links. */ @@ -72,8 +66,8 @@ public class LinkResolver implements Resolvable, Serializable { * * {@inheritDoc} */ - public void resolveIDRef(String id, List pages) { - resolveIDRef(id, (PageViewport)pages.get(0)); + public void resolveIDRef(String id, List pages) { + resolveIDRef(id, pages.get(0)); } /** diff --git a/src/java/org/apache/fop/area/MainReference.java b/src/java/org/apache/fop/area/MainReference.java index 87e594169..a6112011d 100644 --- a/src/java/org/apache/fop/area/MainReference.java +++ b/src/java/org/apache/fop/area/MainReference.java @@ -34,7 +34,7 @@ public class MainReference extends Area { private static final long serialVersionUID = 7635126485620012448L; private BodyRegion parent; - private List spanAreas = new java.util.ArrayList(); + private List spanAreas = new java.util.ArrayList(); private boolean isEmpty = true; /** @@ -59,7 +59,7 @@ public class MainReference extends Area { spanAreas.remove(spanAreas.size() - 1); } RegionViewport rv = parent.getRegionViewport(); - int ipdWidth = (int) parent.getIPD() + int ipdWidth = parent.getIPD() - rv.getBorderAndPaddingWidthStart() - rv.getBorderAndPaddingWidthEnd(); Span newSpan = new Span(((spanAll) ? 1 : getColumnCount()), @@ -84,8 +84,8 @@ public class MainReference extends Area { * * @param spans content already laid out */ - public void setSpans(List spans) { - spanAreas = new ArrayList(spans); + public void setSpans(List spans) { + spanAreas = new ArrayList(spans); } /** @@ -93,7 +93,7 @@ public class MainReference extends Area { * @return the active span. */ public Span getCurrentSpan() { - return (Span) spanAreas.get(spanAreas.size() - 1); + return spanAreas.get(spanAreas.size() - 1); } /** @@ -103,16 +103,13 @@ public class MainReference extends Area { * @return true if no child areas have been added yet. */ public boolean isEmpty() { - if (isEmpty) { - boolean nonEmptyFound = false; - if (spanAreas != null) { - for (Iterator spaniter = spanAreas.iterator(); spaniter.hasNext();) { - Span spanArea = (Span) spaniter.next(); - nonEmptyFound |= !spanArea.isEmpty(); + if (isEmpty && spanAreas != null) { + for (Span spanArea : spanAreas) { + if (!spanArea.isEmpty()) { + isEmpty = false; + break; } } - - isEmpty = !nonEmptyFound; } return isEmpty; } diff --git a/src/java/org/apache/fop/area/Page.java b/src/java/org/apache/fop/area/Page.java index 715bcfe85..a1d9e389f 100644 --- a/src/java/org/apache/fop/area/Page.java +++ b/src/java/org/apache/fop/area/Page.java @@ -22,19 +22,26 @@ package org.apache.fop.area; import java.awt.Rectangle; import java.awt.geom.Rectangle2D; import java.io.Serializable; -import java.util.Iterator; +import java.util.List; import java.util.Map; import org.apache.fop.datatypes.FODimension; import org.apache.fop.datatypes.LengthBase; import org.apache.fop.datatypes.SimplePercentBaseContext; -import org.apache.fop.fo.Constants; import org.apache.fop.fo.pagination.Region; import org.apache.fop.fo.pagination.RegionBody; import org.apache.fop.fo.pagination.SimplePageMaster; import org.apache.fop.fo.properties.CommonMarginBlock; import org.apache.fop.layoutmgr.TraitSetter; +import static org.apache.fop.fo.Constants.FO_REGION_AFTER; +import static org.apache.fop.fo.Constants.FO_REGION_BEFORE; +import static org.apache.fop.fo.Constants.FO_REGION_BODY; +import static org.apache.fop.fo.Constants.FO_REGION_END; +import static org.apache.fop.fo.Constants.FO_REGION_START; +import static org.apache.fop.fo.Constants.EN_ERROR_IF_OVERFLOW; +import static org.apache.fop.fo.Constants.EN_HIDDEN; + /** * The page. * This holds the contents of the page. Each region is added. @@ -58,7 +65,7 @@ public class Page extends AreaTreeObject implements Serializable, Cloneable { private RegionViewport regionAfter = null; // temporary map of unresolved objects used when serializing the page - private Map unresolved = null; + private Map> unresolved = null; /** Set to true to make this page behave as if it were not empty. */ private boolean fakeNonEmpty = false; @@ -119,12 +126,10 @@ public class Page extends AreaTreeObject implements Serializable, Cloneable { spm.getWritingMode(), pageRefRect, reldims); // Create a RegionViewport/ reference area pair for each page region - RegionReference rr = null; - for (Iterator regenum = spm.getRegions().values().iterator(); - regenum.hasNext();) { - Region r = (Region)regenum.next(); + RegionReference rr; + for (Region r : spm.getRegions().values()) { RegionViewport rvp = makeRegionViewport(r, reldims, pageCTM); - if (r.getNameId() == Constants.FO_REGION_BODY) { + if (r.getNameId() == FO_REGION_BODY) { rr = new BodyRegion((RegionBody) r, rvp); } else { rr = new RegionReference(r, rvp); @@ -155,7 +160,7 @@ public class Page extends AreaTreeObject implements Serializable, Cloneable { * @param pageCTM page coordinate transformation matrix * @return the new region viewport */ - private RegionViewport makeRegionViewport(Region r, FODimension reldims, CTM pageCTM) { + private static RegionViewport makeRegionViewport(Region r, FODimension reldims, CTM pageCTM) { Rectangle2D relRegionRect = r.getViewportRectangle(reldims); Rectangle2D absRegionRect = pageCTM.transform(relRegionRect); // Get the region viewport rectangle in absolute coords by @@ -164,8 +169,8 @@ public class Page extends AreaTreeObject implements Serializable, Cloneable { rv.setBPD((int)relRegionRect.getHeight()); rv.setIPD((int)relRegionRect.getWidth()); TraitSetter.addBackground(rv, r.getCommonBorderPaddingBackground(), null); - rv.setClip(r.getOverflow() == Constants.EN_HIDDEN - || r.getOverflow() == Constants.EN_ERROR_IF_OVERFLOW); + rv.setClip(r.getOverflow() == EN_HIDDEN + || r.getOverflow() == EN_ERROR_IF_OVERFLOW); return rv; } @@ -180,7 +185,7 @@ public class Page extends AreaTreeObject implements Serializable, Cloneable { * where x=distance from left, y=distance from bottom, width=right-left * height=top-bottom */ - private void setRegionReferencePosition(RegionReference rr, Region r, + private static void setRegionReferencePosition(RegionReference rr, Region r, Rectangle2D absRegVPRect) { FODimension reldims = new FODimension(0, 0); rr.setCTM(CTM.getCTMandRelDims(r.getReferenceOrientation(), @@ -200,15 +205,15 @@ public class Page extends AreaTreeObject implements Serializable, Cloneable { * @param port the region viewport to set */ public void setRegionViewport(int areaclass, RegionViewport port) { - if (areaclass == Constants.FO_REGION_BEFORE) { + if (areaclass == FO_REGION_BEFORE) { regionBefore = port; - } else if (areaclass == Constants.FO_REGION_START) { + } else if (areaclass == FO_REGION_START) { regionStart = port; - } else if (areaclass == Constants.FO_REGION_BODY) { + } else if (areaclass == FO_REGION_BODY) { regionBody = port; - } else if (areaclass == Constants.FO_REGION_END) { + } else if (areaclass == FO_REGION_END) { regionEnd = port; - } else if (areaclass == Constants.FO_REGION_AFTER) { + } else if (areaclass == FO_REGION_AFTER) { regionAfter = port; } } @@ -221,15 +226,15 @@ public class Page extends AreaTreeObject implements Serializable, Cloneable { */ public RegionViewport getRegionViewport(int areaClass) { switch (areaClass) { - case Constants.FO_REGION_BEFORE: + case FO_REGION_BEFORE: return regionBefore; - case Constants.FO_REGION_START: + case FO_REGION_START: return regionStart; - case Constants.FO_REGION_BODY: + case FO_REGION_BODY: return regionBody; - case Constants.FO_REGION_END: + case FO_REGION_END: return regionEnd; - case Constants.FO_REGION_AFTER: + case FO_REGION_AFTER: return regionAfter; default: throw new IllegalArgumentException("No such area class with ID = " + areaClass); @@ -284,7 +289,7 @@ public class Page extends AreaTreeObject implements Serializable, Cloneable { * * @param unres the Map of unresolved objects */ - public void setUnresolvedReferences(Map unres) { + public void setUnresolvedReferences(Map> unres) { unresolved = unres; } @@ -295,7 +300,7 @@ public class Page extends AreaTreeObject implements Serializable, Cloneable { * * @return the de-serialized HashMap of unresolved objects */ - public Map getUnresolvedReferences() { + public Map> getUnresolvedReferences() { return unresolved; } diff --git a/src/java/org/apache/fop/area/PageSequence.java b/src/java/org/apache/fop/area/PageSequence.java index 8fd3cd571..1f0411b00 100644 --- a/src/java/org/apache/fop/area/PageSequence.java +++ b/src/java/org/apache/fop/area/PageSequence.java @@ -26,7 +26,7 @@ import java.util.List; */ public class PageSequence extends AreaTreeObject { - private List pages = new java.util.ArrayList(); + private List pages = new java.util.ArrayList(); private LineArea title; private String language; private String country; @@ -75,7 +75,7 @@ public class PageSequence extends AreaTreeObject { * @return the requested page or null if it was not found */ public PageViewport getPage(int idx) { - return (PageViewport)this.pages.get(idx); + return this.pages.get(idx); } /** diff --git a/src/java/org/apache/fop/area/PageViewport.java b/src/java/org/apache/fop/area/PageViewport.java index a4fcb61a8..ff4b2fdaa 100644 --- a/src/java/org/apache/fop/area/PageViewport.java +++ b/src/java/org/apache/fop/area/PageViewport.java @@ -25,7 +25,6 @@ import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.ArrayList; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; @@ -33,9 +32,15 @@ import java.util.Set; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.fop.fo.Constants; +import org.apache.fop.fo.flow.Marker; import org.apache.fop.fo.pagination.SimplePageMaster; +import static org.apache.fop.fo.Constants.FO_REGION_BODY; +import static org.apache.fop.fo.Constants.EN_FSWP; +import static org.apache.fop.fo.Constants.EN_FIC; +import static org.apache.fop.fo.Constants.EN_LSWP; +import static org.apache.fop.fo.Constants.EN_LEWP; + /** * Page viewport that specifies the viewport area and holds the page contents. * This is the top level object for a page and remains valid for the life @@ -63,26 +68,24 @@ public class PageViewport extends AreaTreeObject implements Resolvable, Cloneabl private transient PageSequence pageSequence; - // list of id references and the rectangle on the page - //private Map idReferences = null; - // set of IDs that appear first (or exclusively) on this page: - private Set idFirsts = new java.util.HashSet(); + private Set idFirsts = new java.util.HashSet(); // this keeps a list of currently unresolved areas or extensions // once an idref is resolved it is removed // when this is empty the page can be rendered - private Map unresolvedIDRefs = new java.util.HashMap(); + private Map> unresolvedIDRefs + = new java.util.HashMap>(); - private Map pendingResolved = null; + private Map> pendingResolved = null; // hashmap of markers for this page // start and end are added by the fo that contains the markers - private Map markerFirstStart = null; - private Map markerLastStart = null; - private Map markerFirstAny = null; - private Map markerLastEnd = null; - private Map markerLastAny = null; + private Map markerFirstStart = null; + private Map markerLastStart = null; + private Map markerFirstAny = null; + private Map markerLastEnd = null; + private Map markerLastAny = null; /** * logging instance @@ -254,8 +257,8 @@ public class PageViewport extends AreaTreeObject implements Resolvable, Cloneabl /** * Add an "ID-first" to this page. - * This is typically called by the AreaTreeHandler when associating - * an ID with a PageViewport. + * This is typically called by the {@link AreaTreeHandler} when associating + * an ID with a {@link PageViewport}. * * @param id the id to be registered as first appearing on this page */ @@ -277,9 +280,9 @@ public class PageViewport extends AreaTreeObject implements Resolvable, Cloneabl /** * Add an idref to this page. - * All idrefs found for child areas of this PageViewport are added - * to unresolvedIDRefs, for subsequent resolution by AreaTreeHandler - * calls to this object's resolveIDRef(). + * All idrefs found for child areas of this {@link PageViewport} are added + * to unresolvedIDRefs, for subsequent resolution by {@link AreaTreeHandler} + * calls to this object's {@code resolveIDRef()}. * * @param idref the idref * @param res the child element of this page that needs this @@ -287,14 +290,14 @@ public class PageViewport extends AreaTreeObject implements Resolvable, Cloneabl */ public void addUnresolvedIDRef(String idref, Resolvable res) { if (unresolvedIDRefs == null) { - unresolvedIDRefs = new HashMap(); + unresolvedIDRefs = new HashMap>(); } - List list = (List)unresolvedIDRefs.get(idref); - if (list == null) { - list = new ArrayList(); - unresolvedIDRefs.put(idref, list); + List pageViewports = unresolvedIDRefs.get(idref); + if (pageViewports == null) { + pageViewports = new ArrayList(); + unresolvedIDRefs.put(idref, pageViewports); } - list.add(res); + pageViewports.add(res); } /** @@ -312,24 +315,22 @@ public class PageViewport extends AreaTreeObject implements Resolvable, Cloneabl */ public String[] getIDRefs() { return (unresolvedIDRefs == null) ? null - : (String[]) unresolvedIDRefs.keySet().toArray(new String[] {}); + : unresolvedIDRefs.keySet().toArray( + new String[unresolvedIDRefs.keySet().size()]); } - /** - * {@inheritDoc} - */ - public void resolveIDRef(String id, List pages) { + /** {@inheritDoc} */ + public void resolveIDRef(String id, List pages) { if (page == null) { if (pendingResolved == null) { - pendingResolved = new HashMap(); + pendingResolved = new HashMap>(); } pendingResolved.put(id, pages); } else { if (unresolvedIDRefs != null) { - List todo = (List)unresolvedIDRefs.get(id); + List todo = unresolvedIDRefs.get(id); if (todo != null) { - for (int count = 0; count < todo.size(); count++) { - Resolvable res = (Resolvable)todo.get(count); + for (Resolvable res : todo) { res.resolveIDRef(id, pages); } } @@ -363,7 +364,7 @@ public class PageViewport extends AreaTreeObject implements Resolvable, Cloneabl * @param isfirst if the area being added has is-first trait * @param islast if the area being added has is-last trait */ - public void addMarkers(Map marks, boolean starting, + public void addMarkers(Map marks, boolean starting, boolean isfirst, boolean islast) { if (marks == null) { @@ -380,14 +381,13 @@ public class PageViewport extends AreaTreeObject implements Resolvable, Cloneabl if (starting) { if (isfirst) { if (markerFirstStart == null) { - markerFirstStart = new HashMap(); + markerFirstStart = new HashMap(); } if (markerFirstAny == null) { - markerFirstAny = new HashMap(); + markerFirstAny = new HashMap(); } // first on page: only put in new values, leave current - for (Iterator iter = marks.keySet().iterator(); iter.hasNext();) { - Object key = iter.next(); + for (String key : marks.keySet()) { if (!markerFirstStart.containsKey(key)) { markerFirstStart.put(key, marks.get(key)); if (log.isTraceEnabled()) { @@ -404,7 +404,7 @@ public class PageViewport extends AreaTreeObject implements Resolvable, Cloneabl } } if (markerLastStart == null) { - markerLastStart = new HashMap(); + markerLastStart = new HashMap(); } // last on page: replace all markerLastStart.putAll(marks); @@ -414,11 +414,10 @@ public class PageViewport extends AreaTreeObject implements Resolvable, Cloneabl } } else { if (markerFirstAny == null) { - markerFirstAny = new HashMap(); + markerFirstAny = new HashMap(); } // first on page: only put in new values, leave current - for (Iterator iter = marks.keySet().iterator(); iter.hasNext();) { - Object key = iter.next(); + for (String key : marks.keySet()) { if (!markerFirstAny.containsKey(key)) { markerFirstAny.put(key, marks.get(key)); if (log.isTraceEnabled()) { @@ -432,7 +431,7 @@ public class PageViewport extends AreaTreeObject implements Resolvable, Cloneabl // at the end of the area, register is-last and any areas if (islast) { if (markerLastEnd == null) { - markerLastEnd = new HashMap(); + markerLastEnd = new HashMap(); } // last on page: replace all markerLastEnd.putAll(marks); @@ -442,7 +441,7 @@ public class PageViewport extends AreaTreeObject implements Resolvable, Cloneabl } } if (markerLastAny == null) { - markerLastAny = new HashMap(); + markerLastAny = new HashMap(); } // last on page: replace all markerLastAny.putAll(marks); @@ -462,11 +461,11 @@ public class PageViewport extends AreaTreeObject implements Resolvable, Cloneabl * @param pos the position to retrieve * @return Object the marker found or null */ - public Object getMarker(String name, int pos) { - Object mark = null; + public Marker getMarker(String name, int pos) { + Marker mark = null; String posName = null; switch (pos) { - case Constants.EN_FSWP: + case EN_FSWP: if (markerFirstStart != null) { mark = markerFirstStart.get(name); posName = "FSWP"; @@ -476,13 +475,13 @@ public class PageViewport extends AreaTreeObject implements Resolvable, Cloneabl posName = "FirstAny after " + posName; } break; - case Constants.EN_FIC: + case EN_FIC: if (markerFirstAny != null) { mark = markerFirstAny.get(name); posName = "FIC"; } break; - case Constants.EN_LSWP: + case EN_LSWP: if (markerLastStart != null) { mark = markerLastStart.get(name); posName = "LSWP"; @@ -492,7 +491,7 @@ public class PageViewport extends AreaTreeObject implements Resolvable, Cloneabl posName = "LastAny after " + posName; } break; - case Constants.EN_LEWP: + case EN_LEWP: if (markerLastEnd != null) { mark = markerLastEnd.get(name); posName = "LEWP"; @@ -503,7 +502,7 @@ public class PageViewport extends AreaTreeObject implements Resolvable, Cloneabl } break; default: - throw new RuntimeException(); + assert false; } if (log.isTraceEnabled()) { log.trace("page " + pageNumberString + ": " + "Retrieving marker " + name @@ -550,10 +549,8 @@ public class PageViewport extends AreaTreeObject implements Resolvable, Cloneabl page = (Page) in.readObject(); unresolvedIDRefs = page.getUnresolvedReferences(); if (unresolvedIDRefs != null && pendingResolved != null) { - for (Iterator iter = pendingResolved.keySet().iterator(); - iter.hasNext();) { - String id = (String) iter.next(); - resolveIDRef(id, (List)pendingResolved.get(id)); + for (String id : pendingResolved.keySet()) { + resolveIDRef(id, pendingResolved.get(id)); } pendingResolved = null; } @@ -577,9 +574,8 @@ public class PageViewport extends AreaTreeObject implements Resolvable, Cloneabl page = null; } - /** - * {@inheritDoc} - */ + /** {@inheritDoc} */ + @Override public String toString() { StringBuffer sb = new StringBuffer(64); sb.append("PageViewport: page="); @@ -602,8 +598,7 @@ public class PageViewport extends AreaTreeObject implements Resolvable, Cloneabl * @return BodyRegion object */ public BodyRegion getBodyRegion() { - return (BodyRegion) getPage().getRegionViewport( - Constants.FO_REGION_BODY).getRegionReference(); + return (BodyRegion) getPage().getRegionViewport(FO_REGION_BODY).getRegionReference(); } /** @@ -659,5 +654,4 @@ public class PageViewport extends AreaTreeObject implements Resolvable, Cloneabl public RegionReference getRegionReference(int id) { return getPage().getRegionViewport(id).getRegionReference(); } - } diff --git a/src/java/org/apache/fop/area/RegionReference.java b/src/java/org/apache/fop/area/RegionReference.java index a727f9029..4158f924a 100644 --- a/src/java/org/apache/fop/area/RegionReference.java +++ b/src/java/org/apache/fop/area/RegionReference.java @@ -38,7 +38,7 @@ public class RegionReference extends Area implements Cloneable { private CTM ctm; // the list of block areas from the static flow - private ArrayList blocks = new ArrayList(); + private ArrayList blocks = new ArrayList(); /** the parent {@link RegionViewport} for this object */ protected RegionViewport regionViewport; @@ -68,6 +68,7 @@ public class RegionReference extends Area implements Cloneable { } /** {@inheritDoc} */ + @Override public void addChildArea(Area child) { blocks.add(child); } @@ -106,7 +107,7 @@ public class RegionReference extends Area implements Cloneable { * * @return the list of blocks in this region */ - public List getBlocks() { + public List getBlocks() { return blocks; } @@ -143,11 +144,12 @@ public class RegionReference extends Area implements Cloneable { RegionReference rr = new RegionReference(regionClass, regionName, regionViewport); rr.ctm = ctm; rr.setIPD(getIPD()); - rr.blocks = (ArrayList)blocks.clone(); + rr.blocks = (ArrayList)blocks.clone(); return rr; } /** {@inheritDoc} */ + @Override public String toString() { StringBuffer sb = new StringBuffer(super.toString()); sb.append(" {regionName=").append(regionName); diff --git a/src/java/org/apache/fop/area/RenderPagesModel.java b/src/java/org/apache/fop/area/RenderPagesModel.java index 13995b099..592e49f1e 100644 --- a/src/java/org/apache/fop/area/RenderPagesModel.java +++ b/src/java/org/apache/fop/area/RenderPagesModel.java @@ -50,9 +50,10 @@ public class RenderPagesModel extends AreaTreeModel { /** * Pages that have been prepared but not rendered yet. */ - protected List/**/ prepared = new java.util.ArrayList/**/(); - private List/**/ pendingODI = new java.util.ArrayList/**/(); - private List/**/ endDocODI = new java.util.ArrayList/**/(); + protected List prepared = new java.util.ArrayList(); + + private List pendingODI = new java.util.ArrayList(); + private List endDocODI = new java.util.ArrayList(); /** * Create a new render pages model with the given renderer. @@ -83,6 +84,7 @@ public class RenderPagesModel extends AreaTreeModel { } /** {@inheritDoc} */ + @Override public void startPageSequence(PageSequence pageSequence) { super.startPageSequence(pageSequence); if (renderer.supportsOutOfOrder()) { @@ -98,6 +100,7 @@ public class RenderPagesModel extends AreaTreeModel { * the page is added to a queue. * @param page the page to add to the model */ + @Override public void addPage(PageViewport page) { super.addPage(page); @@ -183,11 +186,11 @@ public class RenderPagesModel extends AreaTreeModel { renderer.renderPage(pageViewport); if (!pageViewport.isResolved()) { String[] idrefs = pageViewport.getIDRefs(); - for (int count = 0; count < idrefs.length; count++) { + for (String idref : idrefs) { AreaEventProducer eventProducer = AreaEventProducer.Provider.get( renderer.getUserAgent().getEventBroadcaster()); eventProducer.unresolvedIDReferenceOnPage(this, - pageViewport.getPageNumberString(), idrefs[count]); + pageViewport.getPageNumberString(), idref); } } } catch (Exception e) { @@ -214,9 +217,8 @@ public class RenderPagesModel extends AreaTreeModel { prepared.add(page); } - /** - * {@inheritDoc} - */ + /** {@inheritDoc} */ + @Override public void handleOffDocumentItem(OffDocumentItem oDI) { switch(oDI.getWhenToProcess()) { case OffDocumentItem.IMMEDIATELY: @@ -233,9 +235,8 @@ public class RenderPagesModel extends AreaTreeModel { } } - private void processOffDocumentItems(List list) { - for (int count = 0; count < list.size(); count++) { - OffDocumentItem oDI = (OffDocumentItem)list.get(count); + private void processOffDocumentItems(List list) { + for (OffDocumentItem oDI : list) { renderer.processOffDocumentItem(oDI); } } @@ -244,6 +245,7 @@ public class RenderPagesModel extends AreaTreeModel { * End the document. Render any end document OffDocumentItems * {@inheritDoc} */ + @Override public void endDocument() throws SAXException { // render any pages that had unresolved ids checkPreparedPages(null, true); diff --git a/src/java/org/apache/fop/area/Resolvable.java b/src/java/org/apache/fop/area/Resolvable.java index cc2569e8a..3ab3ef309 100644 --- a/src/java/org/apache/fop/area/Resolvable.java +++ b/src/java/org/apache/fop/area/Resolvable.java @@ -59,5 +59,5 @@ public interface Resolvable { * @param pages the list of PageViewports with the given ID * */ - void resolveIDRef(String id, List pages); + void resolveIDRef(String id, List pages); } diff --git a/src/java/org/apache/fop/area/Span.java b/src/java/org/apache/fop/area/Span.java index e2ef90432..c2fd4679c 100644 --- a/src/java/org/apache/fop/area/Span.java +++ b/src/java/org/apache/fop/area/Span.java @@ -34,7 +34,7 @@ public class Span extends Area { private static final long serialVersionUID = -5551430053660081549L; // the list of flow reference areas in this span area - private List flowAreas; + private List flowAreas; private int colCount; private int colGap; private int colWidth; // width for each normal flow, calculated value @@ -60,7 +60,7 @@ public class Span extends Area { * Create the normal flows for this Span */ private void createNormalFlows() { - flowAreas = new java.util.ArrayList(colCount); + flowAreas = new java.util.ArrayList(colCount); colWidth = (ipd - ((colCount - 1) * colGap)) / colCount; for (int i = 0; i < colCount; i++) { @@ -105,7 +105,7 @@ public class Span extends Area { */ public NormalFlow getNormalFlow(int colRequested) { if (colRequested >= 0 && colRequested < colCount) { - return (NormalFlow) flowAreas.get(colRequested); + return flowAreas.get(colRequested); } else { // internal error throw new IllegalArgumentException("Invalid column number " + colRequested + " requested; only 0-" + (colCount - 1) @@ -184,6 +184,7 @@ public class Span extends Area { } /** {@inheritDoc} */ + @Override public String toString() { StringBuffer sb = new StringBuffer(super.toString()); if (colCount > 1) { diff --git a/src/java/org/apache/fop/area/Trait.java b/src/java/org/apache/fop/area/Trait.java index a8e1db186..042b65337 100644 --- a/src/java/org/apache/fop/area/Trait.java +++ b/src/java/org/apache/fop/area/Trait.java @@ -24,11 +24,15 @@ import java.io.Serializable; import org.apache.xmlgraphics.image.loader.ImageInfo; -import org.apache.fop.fo.Constants; import org.apache.fop.fonts.FontTriplet; import org.apache.fop.traits.BorderProps; import org.apache.fop.util.ColorUtil; +import static org.apache.fop.fo.Constants.EN_REPEAT; +import static org.apache.fop.fo.Constants.EN_REPEATX; +import static org.apache.fop.fo.Constants.EN_REPEATY; +import static org.apache.fop.fo.Constants.EN_NOREPEAT; + // properties should be serialized by the holder /** * Area traits used for rendering. @@ -142,8 +146,10 @@ public final class Trait implements Serializable { /** Trait for color of underline decorations when rendering inline parent. */ public static final Integer UNDERLINE_COLOR = 34; + /** Trait for color of overline decorations when rendering inline parent. */ public static final Integer OVERLINE_COLOR = 35; + /** Trait for color of linethrough decorations when rendering inline parent. */ public static final Integer LINETHROUGH_COLOR = 36; @@ -367,6 +373,7 @@ public final class Trait implements Serializable { * Return the human-friendly string for debugging. * {@inheritDoc} */ + @Override public String toString() { StringBuffer sb = new StringBuffer(); sb.append("pvKey=").append(pvKey); @@ -441,6 +448,7 @@ public final class Trait implements Serializable { * @return a String of the form * "org.apache.fop.area.Trait.ExternalLink[dest=someURL,newWindow=false]" */ + @Override public String toString() { StringBuffer sb = new StringBuffer(64); sb.append("newWindow=").append(newWindow); @@ -581,23 +589,23 @@ public final class Trait implements Serializable { private String getRepeatString() { switch (getRepeat()) { - case Constants.EN_REPEAT: return "repeat"; - case Constants.EN_REPEATX: return "repeat-x"; - case Constants.EN_REPEATY: return "repeat-y"; - case Constants.EN_NOREPEAT: return "no-repeat"; + case EN_REPEAT: return "repeat"; + case EN_REPEATX: return "repeat-x"; + case EN_REPEATY: return "repeat-y"; + case EN_NOREPEAT: return "no-repeat"; default: throw new IllegalStateException("Illegal repeat style: " + getRepeat()); } } private static int getConstantForRepeat(String repeat) { if ("repeat".equalsIgnoreCase(repeat)) { - return Constants.EN_REPEAT; + return EN_REPEAT; } else if ("repeat-x".equalsIgnoreCase(repeat)) { - return Constants.EN_REPEATX; + return EN_REPEATX; } else if ("repeat-y".equalsIgnoreCase(repeat)) { - return Constants.EN_REPEATY; + return EN_REPEATY; } else if ("no-repeat".equalsIgnoreCase(repeat)) { - return Constants.EN_NOREPEAT; + return EN_NOREPEAT; } else { throw new IllegalStateException("Illegal repeat style: " + repeat); } @@ -607,6 +615,7 @@ public final class Trait implements Serializable { * Return the string for debugging. * {@inheritDoc} */ + @Override public String toString() { StringBuffer sb = new StringBuffer(); if (color != null) { diff --git a/src/java/org/apache/fop/area/inline/Container.java b/src/java/org/apache/fop/area/inline/Container.java index f6dbf3a15..9267b92d0 100644 --- a/src/java/org/apache/fop/area/inline/Container.java +++ b/src/java/org/apache/fop/area/inline/Container.java @@ -38,7 +38,7 @@ public class Container extends Area { /** * The list of block areas stacked inside this container */ - protected List blocks = new ArrayList(); + protected List blocks = new ArrayList(); /** * The width of this container diff --git a/src/java/org/apache/fop/area/inline/FilledArea.java b/src/java/org/apache/fop/area/inline/FilledArea.java index 06d0d3aa3..858951f75 100644 --- a/src/java/org/apache/fop/area/inline/FilledArea.java +++ b/src/java/org/apache/fop/area/inline/FilledArea.java @@ -39,9 +39,7 @@ public class FilledArea extends InlineParent { private int unitWidth; - /** - * Create a new filled area. - */ + /** Create a new filled area. */ public FilledArea() { } @@ -88,13 +86,11 @@ public class FilledArea extends InlineParent { return this.unitWidth; } - /** - * {@inheritDoc} - */ + /** {@inheritDoc} */ + @Override public int getBPD() { int bpd = 0; - for (Iterator childAreaIt = getChildAreas().iterator(); childAreaIt.hasNext();) { - InlineArea area = (InlineArea)childAreaIt.next(); + for (InlineArea area : getChildAreas()) { if (bpd < area.getBPD()) { bpd = area.getBPD(); } @@ -110,9 +106,10 @@ public class FilledArea extends InlineParent { * * @return the list of child areas copied to fill the width */ - public List getChildAreas() { - int units = (int)(getIPD() / unitWidth); - List newList = new ArrayList(); + @Override + public List getChildAreas() { + int units = getIPD() / unitWidth; + List newList = new ArrayList(); for (int count = 0; count < units; count++) { newList.addAll(inlines); } @@ -126,6 +123,7 @@ public class FilledArea extends InlineParent { * @param lineShrink the total shrink of the line * @return true if there is an UnresolvedArea descendant */ + @Override public boolean applyVariationFactor(double variationFactor, int lineStretch, int lineShrink) { setIPD(getIPD() + adjustingInfo.applyVariationFactor(variationFactor)); diff --git a/src/java/org/apache/fop/area/inline/InlineArea.java b/src/java/org/apache/fop/area/inline/InlineArea.java index 3450b99be..515f45b68 100644 --- a/src/java/org/apache/fop/area/inline/InlineArea.java +++ b/src/java/org/apache/fop/area/inline/InlineArea.java @@ -178,6 +178,7 @@ public class InlineArea extends Area { * * {@inheritDoc} */ + @Override public void addChildArea(Area childArea) { super.addChildArea(childArea); if (childArea instanceof InlineArea) { @@ -185,9 +186,7 @@ public class InlineArea extends Area { } } - /** - *@return true if the inline area is underlined. - */ + /** @return true if the inline area is underlined. */ public boolean hasUnderline() { return getTraitAsBoolean(Trait.UNDERLINE); } diff --git a/src/java/org/apache/fop/area/inline/InlineBlockParent.java b/src/java/org/apache/fop/area/inline/InlineBlockParent.java index fe024ac0f..982e8848f 100644 --- a/src/java/org/apache/fop/area/inline/InlineBlockParent.java +++ b/src/java/org/apache/fop/area/inline/InlineBlockParent.java @@ -48,6 +48,7 @@ public class InlineBlockParent extends InlineArea { * * @param childArea the child area to add */ + @Override public void addChildArea(Area childArea) { if (child != null) { throw new IllegalStateException("InlineBlockParent may have only one child area."); diff --git a/src/java/org/apache/fop/area/inline/SpaceArea.java b/src/java/org/apache/fop/area/inline/SpaceArea.java index 9c698b305..ebfcc5ec8 100644 --- a/src/java/org/apache/fop/area/inline/SpaceArea.java +++ b/src/java/org/apache/fop/area/inline/SpaceArea.java @@ -48,9 +48,7 @@ public class SpaceArea extends InlineArea { isAdjustable = a; } - /** - * @return Returns the space. - */ + /** @return Returns the space. */ public String getSpace() { return String.valueOf(space); } diff --git a/src/java/org/apache/fop/area/inline/TextArea.java b/src/java/org/apache/fop/area/inline/TextArea.java index 8fb9455ad..15d005025 100644 --- a/src/java/org/apache/fop/area/inline/TextArea.java +++ b/src/java/org/apache/fop/area/inline/TextArea.java @@ -99,20 +99,19 @@ public class TextArea extends AbstractTextArea { */ public String getText() { StringBuffer text = new StringBuffer(); - InlineArea child; // assemble the text - for (int i = 0; i < inlines.size(); i++) { - child = (InlineArea) inlines.get(i); - if (child instanceof WordArea) { - text.append(((WordArea) child).getWord()); + for (InlineArea inline : inlines) { + if (inline instanceof WordArea) { + text.append(((WordArea) inline).getWord()); } else { - text.append(((SpaceArea) child).getSpace()); + text.append(((SpaceArea) inline).getSpace()); } } return text.toString(); } /** {@inheritDoc} */ + @Override public String toString() { return "TextArea{text=" + getText() + "}"; } diff --git a/src/java/org/apache/fop/area/inline/UnresolvedPageNumber.java b/src/java/org/apache/fop/area/inline/UnresolvedPageNumber.java index 3457ad698..d3bb91045 100644 --- a/src/java/org/apache/fop/area/inline/UnresolvedPageNumber.java +++ b/src/java/org/apache/fop/area/inline/UnresolvedPageNumber.java @@ -92,18 +92,14 @@ public class UnresolvedPageNumber extends TextArea implements Resolvable { * @param id an id whose PageViewports have been determined * @param pages the list of PageViewports associated with this ID */ - public void resolveIDRef(String id, List pages) { + public void resolveIDRef(String id, List pages) { if (!resolved && pageIDRef.equals(id) && pages != null) { if (log.isDebugEnabled()) { log.debug("Resolving pageNumber: " + id); } resolved = true; - PageViewport page; - if (pageType == FIRST) { - page = (PageViewport)pages.get(0); - } else { - page = (PageViewport)pages.get(pages.size() - 1); - } + int pageIndex = pageType ? 0 : pages.size() - 1; + PageViewport page = pages.get(pageIndex); // replace the text removeText(); text = page.getPageNumberString(); @@ -136,6 +132,7 @@ public class UnresolvedPageNumber extends TextArea implements Resolvable { * @param lineShrink the total shrink of the line * @return true if there is an UnresolvedArea descendant */ + @Override public boolean applyVariationFactor(double variationFactor, int lineStretch, int lineShrink) { return true; diff --git a/src/java/org/apache/fop/area/inline/WordArea.java b/src/java/org/apache/fop/area/inline/WordArea.java index 8bb6888ce..7f62fe8d7 100644 --- a/src/java/org/apache/fop/area/inline/WordArea.java +++ b/src/java/org/apache/fop/area/inline/WordArea.java @@ -47,22 +47,18 @@ public class WordArea extends InlineArea { this.letterAdjust = la; } - /** - * @return Returns the word. - */ + /** @return Returns the word. */ public String getWord() { return word; } - /** - * @return Returns the offset. - */ + /** @return Returns the offset. */ + @Override public int getOffset() { return offset; } - /** - * @param o The offset to set. - */ + /** @param o The offset to set. */ + @Override public void setOffset(int o) { offset = o; } -- 2.39.5