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 pb...@apache.org on 2003/01/20 15:46:52 UTC
cvs commit: xml-fop/src/documentation/content/design/alt.design/properties FOAttributes.html
pbwest 2003/01/20 06:46:51
Added: src/documentation/content/design/alt.design/properties
FOAttributes.html
Log:
Code documentation
Revision Changes Path
1.1 xml-fop/src/documentation/content/design/alt.design/properties/FOAttributes.html
Index: FOAttributes.html
===================================================================
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<!-- Created by htmlize-0.67 in css mode. -->
<html>
<head>
<title>FOAttributes.java</title>
<style type="text/css">
<!--
body {
color: #000000;
background-color: #faf0e6;
} /* default */
.jde-java-font-lock-number {
color: #bc8f8f;
background-color: #faf0e6;
} /* jde-java-font-lock-number-face */
.function-name {
color: #8b2323;
background-color: #faf0e6;
} /* font-lock-function-name-face */
.jde-java-font-lock-italic {
background-color: #faf0e6;
font-style: italic;
} /* jde-java-font-lock-italic-face */
.jde-java-font-lock-modifier {
color: #da70d6;
background-color: #faf0e6;
} /* jde-java-font-lock-modifier-face */
.keyword {
color: #8b0000;
background-color: #faf0e6;
} /* font-lock-keyword-face */
.variable-name {
color: #8b008b;
background-color: #faf0e6;
} /* font-lock-variable-name-face */
.string {
color: #008b00;
background-color: #faf0e6;
} /* font-lock-string-face */
.jde-java-font-lock-package {
color: #0000cd;
background-color: #faf0e6;
} /* jde-java-font-lock-package-face */
.jde-java-font-lock-constant {
color: #5f9ea0;
background-color: #faf0e6;
} /* jde-java-font-lock-constant-face */
.type {
color: #4682b4;
background-color: #faf0e6;
} /* font-lock-type-face */
.jde-java-font-lock-doc-tag {
color: #008b00;
background-color: #faf0e6;
} /* jde-java-font-lock-doc-tag-face */
.comment {
color: #00008b;
background-color: #faf0e6;
} /* font-lock-comment-face */
.reference {
color: #cd0000;
background-color: #faf0e6;
} /* font-lock-reference-face */
a {
color: inherit;
background-color: inherit;
font: inherit;
text-decoration: inherit;
}
a:hover {
text-decoration: underline;
}
-->
</style>
</head>
<body>
<pre>
<span class="keyword">package</span> <span class="jde-java-font-lock-package">org</span>.<span class="jde-java-font-lock-package">apache</span>.<span class="jde-java-font-lock-package">fop</span>.<span class="jde-java-font-lock-package">fo</span>;
<span class="keyword">import</span> <span class="jde-java-font-lock-package">org</span>.<span class="jde-java-font-lock-package">apache</span>.<span class="jde-java-font-lock-package">fop</span>.<span class="jde-java-font-lock-package">apps</span>.<span class="type">FOPException</span>;
<span class="keyword">import</span> <span class="jde-java-font-lock-package">org</span>.<span class="jde-java-font-lock-package">apache</span>.<span class="jde-java-font-lock-package">fop</span>.<span class="jde-java-font-lock-package">fo</span>.<span class="jde-java-font-lock-package">expr</span>.<span class="type">PropertyException</span>;
<span class="keyword">import</span> <span class="jde-java-font-lock-package">org</span>.<span class="jde-java-font-lock-package">apache</span>.<span class="jde-java-font-lock-package">fop</span>.<span class="jde-java-font-lock-package">fo</span>.<span class="type">PropertyConsts</span>;
<span class="keyword">import</span> <span class="jde-java-font-lock-package">org</span>.<span class="jde-java-font-lock-package">apache</span>.<span class="jde-java-font-lock-package">fop</span>.<span class="jde-java-font-lock-package">fo</span>.<span class="type">FObjectNames</span>;
<span class="keyword">import</span> <span class="jde-java-font-lock-package">org</span>.<span class="jde-java-font-lock-package">apache</span>.<span class="jde-java-font-lock-package">fop</span>.<span class="jde-java-font-lock-package">datatypes</span>.<span class="type">Ints</span>;
<span class="keyword">import</span> <span class="jde-java-font-lock-package">org</span>.<span class="jde-java-font-lock-package">apache</span>.<span class="jde-java-font-lock-package">fop</span>.<span class="jde-java-font-lock-package">messaging</span>.<span class="type">MessageHandler</span>;
<span class="keyword">import</span> <span class="jde-java-font-lock-package">org</span>.<span class="jde-java-font-lock-package">apache</span>.<span class="jde-java-font-lock-package">fop</span>.<span class="jde-java-font-lock-package">xml</span>.<span class="type">FoXMLEvent</span>;
<span class="keyword">import</span> <span class="jde-java-font-lock-package">org</span>.<span class="jde-java-font-lock-package">apache</span>.<span class="jde-java-font-lock-package">fop</span>.<span class="jde-java-font-lock-package">xml</span>.<span class="type">XMLNamespaces</span>;
<span class="keyword">import</span> <span class="jde-java-font-lock-package">org</span>.<span class="jde-java-font-lock-package">xml</span>.<span class="jde-java-font-lock-package">sax</span>.<span class="type">Attributes</span>;
<span class="keyword">import</span> <span class="jde-java-font-lock-package">java</span>.<span class="jde-java-font-lock-package">util</span>.<span class="type">Iterator</span>;
<span class="keyword">import</span> <span class="jde-java-font-lock-package">java</span>.<span class="jde-java-font-lock-package">util</span>.<span class="type">ArrayList</span>;
<span class="keyword">import</span> <span class="jde-java-font-lock-package">java</span>.<span class="jde-java-font-lock-package">util</span>.<span class="type">HashMap</span>;
<span class="keyword">import</span> <span class="jde-java-font-lock-package">java</span>.<span class="jde-java-font-lock-package">util</span>.<span class="type">List</span>;
<span class="keyword">import</span> <span class="jde-java-font-lock-package">java</span>.<span class="jde-java-font-lock-package">util</span>.<span class="type">Map</span>;
<span class="keyword">import</span> <span class="jde-java-font-lock-package">java</span>.<span class="jde-java-font-lock-package">util</span>.<span class="type">Collections</span>;
<span class="keyword">import</span> <span class="jde-java-font-lock-package">java</span>.<span class="jde-java-font-lock-package">util</span>.<span class="type">Arrays</span>;
<span class="comment">/*
* FOAttributes.java
* $Id: FOAttributes.html,v 1.1 2003/01/20 14:46:51 pbwest Exp $
*
* Created: Wed Nov 14 15:19:51 2001
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
*
* @author <a href="mailto:pbwest@powerup.com.au">Peter B. West</a>
* @version $Revision: 1.1 $ $Name: $
*/</span>
<span class="comment">/**
* The FO Attributes data structures and methods needed to manage the
* Attributes associated with FO nodes.
*/</span>
<span class="jde-java-font-lock-modifier">public</span> <span class="keyword">class</span> <span class="function-name" id="FOAttributesClass">FOAttributes</span> {
<span class="jde-java-font-lock-modifier">private</span> <span class="jde-java-font-lock-modifier">static</span> <span class="jde-java-font-lock-modifier">final</span> <span class="type">String</span> <span class="variable-name" id="tag">tag</span> = "<span class="string">$Name: $</span>";
<span class="jde-java-font-lock-modifier">private</span> <span class="jde-java-font-lock-modifier">static</span> <span class="jde-java-font-lock-modifier">final</span> <span class="type">String</span> <span class="variable-name" id="revision">revision</span> = "<span class="string">$Revision: 1.1 $</span>";
<span class="comment">/**
* <i></span><span class="jde-java-font-lock-italic">nSpaceAttrMaps</span><span class="comment"></i> is an <tt>ArrayList</tt> to hold the array of
* <tt>HashMap</tt>s which contain the attribute lists for each
* namespace which may be active for a particular FO element. The
* <tt>ArrayList</tt> is indexed by the URIIndex for this namespace
* which is maintained in an <tt>XMLNamespaces</tt> object by the
* <tt>FOTree</tt> object which is processing the FO input. The
* values in the <tt>HashMap</tt>s are indexed by the local name of the
* attribute.
* The <tt>ArrayList</tt> will not be created for a particular instance
* of <tt>FOAttributes</tt> unless a namespace other than the standard
* XSL namespace is activated for this instance.
* See <i></span><span class="jde-java-font-lock-italic">foAttrMap</span><span class="comment"></i>.
*/</span>
<span class="jde-java-font-lock-modifier">private</span> <span class="type">ArrayList</span> <span class="variable-name" id="nSpaceAttrMaps">nSpaceAttrMaps</span>;
<span class="comment">/**
* <i></span><span class="jde-java-font-lock-italic">foAttrMap</span><span class="comment"></i> is a <tt>HashMap</tt> to hold the FO namespace
* attribute list specified in the FO element with which this list is
* associated. The <tt>String</tt> attribute value is stored
* indexed by the integer constant property identifier from
* <tt>PropertyConsts</tt>.
*/</span>
<span class="jde-java-font-lock-modifier">private</span> <span class="type">HashMap</span> <span class="variable-name" id="foAttrMap">foAttrMap</span> = <span class="keyword">new</span> <span class="type">HashMap</span>(<span class="jde-java-font-lock-number">0</span>);
<span class="comment">/**
* A sorted array of the keys (property indices) of the values in
* <i></span><span class="jde-java-font-lock-italic">foAttrMap</span><span class="comment"></i>.
*/</span>
<span class="jde-java-font-lock-modifier">private</span> <span class="type">Integer</span>[] <span class="variable-name" id="foAttrKeys">foAttrKeys</span> = <span class="jde-java-font-lock-constant" id="null">null</span>;
<span class="comment">/**
* A static array of <tt>Integer</tt> as a template for the generation
* of the <i></span><span class="jde-java-font-lock-italic">foAttrKeys</span><span class="comment"></i> array.
*/</span>
<span class="jde-java-font-lock-modifier">private</span> <span class="jde-java-font-lock-modifier">static</span> <span class="type">Integer</span>[] <span class="variable-name" id="integerArray">integerArray</span>
= <span class="keyword">new</span> <span class="type">Integer</span>[] { Ints.consts.get(<span class="jde-java-font-lock-number">0</span>) };
<span class="comment">/**
* Construct an <i></span><span class="jde-java-font-lock-italic">FOAttributes</span><span class="comment"></i> object.
* <p>The <tt>Attributes</tt> object on the event is scanned, and each
* attribute is examined. If the attribute is in the default namespace
* for fo: attributes, it is an fo: property, and its value is entered
* into the <i></span><span class="jde-java-font-lock-italic">foAttrMap</span><span class="comment"></i> <tt>Hashmap</tt> indexed by the property
* index.
* <p>If the attribute does not belong to the default namespace, its
* value is entered into the appropriate <tt>HashMap</tt> in the
* <tt>ArrayList</tt> <i></span><span class="jde-java-font-lock-italic">nSpaceAttrMaps</span><span class="comment"></i>, indexed by the attribute's
* local name.
* </span><span class="jde-java-font-lock-doc-tag">@param</span><span class="comment"> </span><span class="variable-name" id="event">event</span><span class="comment"> - the FO XML event which triggered construction of the
* parent <tt>FONode</tt>.
* </span><span class="jde-java-font-lock-doc-tag">@param</span><span class="comment"> </span><span class="variable-name" id="foNode">foNode</span><span class="comment"> - the <tt>FONode</tt> with which these attributes are
* associated.
*/</span>
<span class="jde-java-font-lock-modifier">public</span> <span class="function-name" id="FOAttributes">FOAttributes</span>(<span class="type">FoXMLEvent</span> <span class="variable-name">event</span>, <span class="type">FONode</span> <span class="variable-name">foNode</span>) <span class="keyword">throws</span> <span class="type">FOPException</span> {
<span class="comment">// If the event is null, there is no event associated with this
</span> <span class="comment">// node, probably because this is a manufactured node; e.g.,
</span> <span class="comment">// an "invented" FopageSequenceMaster. The default initialisation
</span> <span class="comment">// includes an empty foAttrMap HashMap.
</span> <span class="keyword">if</span> (event == <span class="jde-java-font-lock-constant">null</span>) <span class="keyword">return</span>;
<span class="keyword">if</span> (event.getFoType() == FObjectNames.<span class="jde-java-font-lock-constant" id="PCDATA">PCDATA</span>)
<span class="keyword">return</span>; <span class="comment">// go with the empty foAttrMap
</span>
<span class="comment">// Create the foAttrMap.
</span> <span class="type">Attributes</span> <span class="variable-name" id="attributes">attributes</span> = event.getAttributes();
<span class="keyword">if</span> (attributes == <span class="jde-java-font-lock-constant">null</span>) <span class="keyword">throw</span> <span class="keyword">new</span> <span class="type">FOPException</span>
("<span class="string">No Attributes in XMLEvent</span>");
<span class="type">int</span> <span class="variable-name" id="propIndex">propIndex</span>;
<span class="type">HashMap</span> <span class="variable-name" id="tmpHash">tmpHash</span>;
<span class="keyword">for</span> (<span class="type">int</span> <span class="variable-name" id="i">i</span> = <span class="jde-java-font-lock-number">0</span>; i < attributes.getLength(); i++) {
<span class="type">String</span> <span class="variable-name" id="attrUri">attrUri</span> = attributes.getURI(i);
<span class="type">String</span> <span class="variable-name" id="attrLocalname">attrLocalname</span> = attributes.getLocalName(i);
<span class="type">String</span> <span class="variable-name" id="attrQName">attrQName</span> = attributes.getQName(i);
<span class="type">int</span> <span class="variable-name" id="sep">sep</span> = attrQName.indexOf('<span class="string">:</span>');
<span class="type">String</span> <span class="variable-name" id="prefix">prefix</span> = attrQName.substring(<span class="jde-java-font-lock-number">0</span>, (sep == -<span class="jde-java-font-lock-number">1</span> ? <span class="jde-java-font-lock-number">0</span> : sep));
<span class="keyword">if</span> (prefix.equals("<span class="string">xmlns</span>")) <span class="keyword">break</span>;
<span class="type">String</span> <span class="variable-name" id="attrValue">attrValue</span> = attributes.getValue(i);
<span class="type">int</span> <span class="variable-name" id="attrUriIndex">attrUriIndex</span> = foNode.namespaces.getURIIndex(attrUri);
<span class="comment">//System.out.println("FONode:" + event);
</span> <span class="keyword">if</span> (attrUriIndex == XMLNamespaces.DefAttrNSIndex) {
<span class="comment">// Standard FO namespace
</span> <span class="comment">// Catch default namespace declaration here.
</span> <span class="keyword">if</span> (attrLocalname.equals("<span class="string">xmlns</span>")) <span class="keyword">break</span>;
<span class="comment">// Is this a known (valid) property?
</span> propIndex = PropNames.getPropertyIndex(attrLocalname);
<span class="comment">// Known attribute name
</span> foAttrMap.put(Ints.consts.get(propIndex), attrValue);
} <span class="keyword">else</span> { <span class="comment">// Not the XSL FO namespace
</span> <span class="type">int</span> <span class="variable-name" id="j">j</span>;
<span class="keyword">if</span> (nSpaceAttrMaps == <span class="jde-java-font-lock-constant">null</span>) {
<span class="comment">//Create the list
</span> System.out.println("<span class="string">Creating nSpaceAttrMaps</span>");
nSpaceAttrMaps = <span class="keyword">new</span> <span class="type">ArrayList</span>(attrUriIndex + <span class="jde-java-font-lock-number">1</span>);
<span class="comment">// Add the fo list
</span> <span class="keyword">for</span> (j = <span class="jde-java-font-lock-number">0</span>; j < XMLNamespaces.DefAttrNSIndex; j++)
nSpaceAttrMaps.add(<span class="keyword">new</span> <span class="type">HashMap</span>(<span class="jde-java-font-lock-number">0</span>));
System.out.println("<span class="string">Adding foAttrMap</span>");
nSpaceAttrMaps.add(foAttrMap);
}
<span class="comment">// Make sure there are elements between the last current
</span> <span class="comment">// and the one to be added
</span> <span class="keyword">for</span> (j = nSpaceAttrMaps.size(); j <= attrUriIndex; j++)
nSpaceAttrMaps.add(<span class="keyword">new</span> <span class="type">HashMap</span>(<span class="jde-java-font-lock-number">0</span>));
<span class="comment">// Does a HashMap exist for this namespace?
</span> <span class="keyword">if</span> ((tmpHash =
(<span class="type">HashMap</span>)nSpaceAttrMaps.get(attrUriIndex)) == <span class="jde-java-font-lock-constant">null</span>) {
tmpHash = <span class="keyword">new</span> <span class="type">HashMap</span>(<span class="jde-java-font-lock-number">1</span>);
nSpaceAttrMaps.set(attrUriIndex, tmpHash);
}
<span class="comment">// Now put this value in the HashMap
</span> tmpHash.put(attrLocalname, attrValue);
}
}
<span class="comment">// Set up the sorted array of the foAttr keys, if foAttrMap has
</span> <span class="comment">// any entries.
</span> <span class="keyword">if</span> (foAttrMap.size() > <span class="jde-java-font-lock-number">0</span>) {
foAttrKeys = (<span class="type">Integer</span>[])(foAttrMap.keySet().toArray(integerArray));
Arrays.sort(foAttrKeys);
}
<span class="comment">// Finished with the Attributes object
</span> event.setAttributes(<span class="jde-java-font-lock-constant">null</span>);
}
<span class="comment">/**
* Get the default namespace attribute values as an unmodifiable
* <tt>Map</tt>.
* </span><span class="jde-java-font-lock-doc-tag">@return</span><span class="comment"> a unmodifiable <tt>Map</tt> containing the the attribute
* values for all of the default attribute namespace attributes in this
* attribute list, indexed by the property name index from
* <tt>PropNames</tt>.
*/</span>
<span class="jde-java-font-lock-modifier">public</span> <span class="type">Map</span> <span class="function-name" id="getFixedFoAttrMap">getFixedFoAttrMap</span>() {
<span class="keyword">return</span> Collections.unmodifiableMap((<span class="type">Map</span>)foAttrMap);
}
<span class="comment">/**
* Get the <tt>HashMap</tt> of all default namespace attributes.
* </span><span class="jde-java-font-lock-doc-tag">@return</span><span class="comment"> <tt>HashMap</tt> <i></span><span class="jde-java-font-lock-italic">foAttrMap</span><span class="comment"></i> containing the the attribute
* values for all of the default attribute namespace attributes in this
* attribute list, indexed by the property name index from
* <tt>PropNames</tt>. This HashMap may be changed by the calling
* process.
*/</span>
<span class="jde-java-font-lock-modifier">public</span> <span class="type">HashMap</span> <span class="function-name" id="getFoAttrMap">getFoAttrMap</span>() {
<span class="keyword">return</span> foAttrMap;
}
<span class="comment">/**
* Get the sorted array of property index keys for the default namespace
* attributes.
* </span><span class="jde-java-font-lock-doc-tag">@return</span><span class="comment"> <tt>Integer[]</tt> <i></span><span class="jde-java-font-lock-italic">foAttrKeys</span><span class="comment"></i> containing the the
* sorted keys (the property indices from <tt>PropNames</tt>) of the
* attribute values for all of the default attribute namespace attributes
* in this attribute list.
* Warning: This array may be changed by the calling process.
*/</span>
<span class="jde-java-font-lock-modifier">public</span> <span class="type">Integer</span>[] <span class="function-name" id="getFoAttrKeys">getFoAttrKeys</span>() {
<span class="keyword">return</span> foAttrKeys;
}
<span class="comment">/**
* A convenience method for accessing attribute values from the default
* attribute namespace.
* </span><span class="jde-java-font-lock-doc-tag">@param</span><span class="comment"> </span><span class="variable-name" id="property">property</span><span class="comment"> an <tt>int</tt> containing the property name index
* from <tt>PropNames</tt>.
* </span><span class="jde-java-font-lock-doc-tag">@return</span><span class="comment"> a <tt>String</tt> containing the associated property value.
*/</span>
<span class="jde-java-font-lock-modifier">public</span> <span class="type">String</span> <span class="function-name" id="getFoAttrValue">getFoAttrValue</span>(<span class="type">int</span> <span class="variable-name">property</span>) {
<span class="keyword">return</span> (<span class="type">String</span>)(foAttrMap.get(Ints.consts.get(property)));
}
<span class="comment">/**
* A convenience method for accessing attribute values from the default
* attribute namespace.
* </span><span class="jde-java-font-lock-doc-tag">@param</span><span class="comment"> </span><span class="variable-name" id="propertyName">propertyName</span><span class="comment"> a <tt>String</tt> containing the property name.
* </span><span class="jde-java-font-lock-doc-tag">@return</span><span class="comment"> a <tt>String</tt> containing the associated property value.
*/</span>
<span class="jde-java-font-lock-modifier">public</span> <span class="type">String</span> <span class="function-name">getFoAttrValue</span>(<span class="type">String</span> <span class="variable-name">propertyName</span>)
<span class="keyword">throws</span> <span class="type">PropertyException</span>
{
<span class="keyword">return</span> getFoAttrValue(PropNames.getPropertyIndex(propertyName));
}
<span class="comment">/**
* Get an unmodifiable <tt>Map</tt> of the attribute values for a
* particular namespace.
* </span><span class="jde-java-font-lock-doc-tag">@param</span><span class="comment"> </span><span class="variable-name" id="uriIndex">uriIndex</span><span class="comment"> an <tt>int</tt> containing the index of the attribute
* values namespace, maintained in an <tt>XMLEvent</tt> <tt>static</tt>
* array.
* </span><span class="jde-java-font-lock-doc-tag">@return</span><span class="comment"> an unmodifiable <tt>Map</tt> of the attribute values
* within the indexed namespace, for this attribute list, indexed by the
* local name of the attribute. The <tt>Map</tt> returned is
* derived from the one maintained in <i></span><span class="jde-java-font-lock-italic">nSpaceAttrMaps</span><span class="comment"></i>.
*/</span>
<span class="jde-java-font-lock-modifier">public</span> <span class="type">Map</span> <span class="function-name" id="getAttrMap">getAttrMap</span>(<span class="type">int</span> <span class="variable-name">uriIndex</span>) {
<span class="keyword">if</span> (uriIndex == XMLNamespaces.DefAttrNSIndex)
<span class="keyword">return</span> Collections.unmodifiableMap((<span class="type">Map</span>)foAttrMap);
<span class="keyword">if</span> (nSpaceAttrMaps != <span class="jde-java-font-lock-constant">null</span>) {
<span class="keyword">if</span> (uriIndex >= nSpaceAttrMaps.size()) <span class="keyword">return</span> <span class="jde-java-font-lock-constant">null</span>;
<span class="keyword">return</span> Collections.unmodifiableMap
((<span class="type">Map</span>)(nSpaceAttrMaps.get(uriIndex)));
} <span class="keyword">else</span> {
<span class="keyword">return</span> <span class="jde-java-font-lock-constant">null</span>;
}
}
<span class="comment">/**
* Get the value of an attribute in a particular namespace.
* </span><span class="jde-java-font-lock-doc-tag">@param</span><span class="comment"> </span><span class="variable-name">uriIndex</span><span class="comment"> an <tt>int</tt> index of the URIs maintained
* by <tt>XMLEvent</tt>.
* </span><span class="jde-java-font-lock-doc-tag">@param</span><span class="comment"> </span><span class="variable-name" id="localName">localName</span><span class="comment"> a <tt>String</tt> with the local name of the
* attribute. In the case of the default attribute namespace, this
* will be the fo property name.
* </span><span class="jde-java-font-lock-doc-tag">@return</span><span class="comment"> a <tt>String</tt> containing the value of the attribute.
*/</span>
<span class="jde-java-font-lock-modifier">public</span> <span class="type">String</span> <span class="function-name" id="getUriAttrValue">getUriAttrValue</span>(<span class="type">int</span> <span class="variable-name">uriIndex</span>, <span class="type">String</span> <span class="variable-name">localName</span>)
<span class="keyword">throws</span> <span class="type">PropertyException</span>
{
<span class="keyword">if</span> (uriIndex == XMLNamespaces.DefAttrNSIndex)
<span class="keyword">return</span> getFoAttrValue(PropNames.getPropertyIndex(localName));
<span class="keyword">return</span> (String)
(((<span class="type">HashMap</span>)nSpaceAttrMaps.get(uriIndex)).get(localName));
}
<span class="comment">/**
* Get the size of the <i></span><span class="jde-java-font-lock-italic">foAttrMap</span><span class="comment"></i> <tt>HashMap</tt>
* containing attributes for the default fo: namespace
* </span><span class="jde-java-font-lock-doc-tag">@return</span><span class="comment"> an <tt>int</tt> containing the size.
*/</span>
<span class="jde-java-font-lock-modifier">public</span> <span class="type">int</span> <span class="function-name" id="getFoAttrMapSize">getFoAttrMapSize</span>() {
<span class="keyword">return</span> foAttrMap.size();
}
<span class="comment">/**
* Get the size of the <i></span><span class="jde-java-font-lock-italic">nSpaceAttrMaps</span><span class="comment"></i> <tt>ArrayList</tt>
* containing attribute namespaces active in this set of attributes.
* <i></span><span class="jde-java-font-lock-italic">N.B.</span><span class="comment"></i> this may be zero if only the default attribute
* namespace has been seen in the attribute set.
* </span><span class="jde-java-font-lock-doc-tag">@return</span><span class="comment"> an <tt>int</tt> containing the size.
*/</span>
<span class="jde-java-font-lock-modifier">public</span> <span class="type">int</span> <span class="function-name" id="getNSpaceAttrMapsSize">getNSpaceAttrMapsSize</span>() {
<span class="keyword">if</span> (nSpaceAttrMaps == <span class="jde-java-font-lock-constant">null</span>)
<span class="keyword">return</span> <span class="jde-java-font-lock-number">0</span>;
<span class="keyword">return</span> nSpaceAttrMaps.size();
}
<span class="comment">/**
* Merge attributes from another <tt>FOAttributes</tt> into <i></span><span class="jde-java-font-lock-italic">this</span><span class="comment"></i>.
* </span><span class="jde-java-font-lock-doc-tag">@param</span><span class="comment"> </span><span class="variable-name" id="foAttrs">foAttrs</span><span class="comment"> the <tt>FOAttributes</tt> containing the attributes
* to merge.
*/</span>
<span class="jde-java-font-lock-modifier">public</span> <span class="type">void</span> <span class="function-name" id="merge">merge</span>(<span class="type">FOAttributes</span> <span class="variable-name">foAttrs</span>) {
foAttrMap.putAll(foAttrs.getFoAttrMap());
<span class="type">int</span> <span class="variable-name" id="attrLen">attrLen</span> = foAttrs.getNSpaceAttrMapsSize();
<span class="keyword">if</span> (attrLen != <span class="jde-java-font-lock-number">0</span>) {
<span class="comment">// something to copy
</span> <span class="keyword">if</span> (nSpaceAttrMaps == <span class="jde-java-font-lock-constant">null</span>) {
<span class="comment">// no "foreign" attribute lists in this
</span> <span class="comment">// copy the others in
</span> nSpaceAttrMaps = <span class="keyword">new</span> <span class="type">ArrayList</span>(attrLen);
}
<span class="comment">// If the merging ArrayList of namespaces is larger, add the
</span> <span class="comment">// extra elements and initialise each to an empty HashMap
</span> <span class="keyword">for</span> (<span class="type">int</span> <span class="variable-name">i</span> = nSpaceAttrMaps.size(); i < attrLen; i++)
nSpaceAttrMaps.add(<span class="keyword">new</span> <span class="type">HashMap</span>(<span class="jde-java-font-lock-number">0</span>));
<span class="comment">// Except for foAttrs, which has already been merged, merge
</span> <span class="comment">// the entries from the merging foAttrs
</span> <span class="keyword">for</span> (<span class="type">int</span> <span class="variable-name">i</span> = <span class="jde-java-font-lock-number">0</span>; i < attrLen; i++) {
<span class="comment">// skip foAttrMap
</span> <span class="keyword">if</span> (i == <span class="reference">XMLNamespaces</span>.<span class="type">DefAttrNSIndex</span>) <span class="keyword">continue</span>;
((<span class="type">HashMap</span>) nSpaceAttrMaps.get(i))
.putAll(foAttrs.getAttrMap(i));
}
}
}
}<span class="comment">// FOAttributes
</span></pre>
</body>
</html>
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-cvs-help@xml.apache.org