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 2002/10/01 18:34:44 UTC
cvs commit: xml-fop/src/org/apache/fop/fo FOAttributes.java
pbwest 2002/10/01 09:34:44
Modified: src/org/apache/fop/fo Tag: FOP_0-20-0_Alt-Design
FOAttributes.java
Log:
Added foAttrKeys[] sorted key array.
Obtain DefAttrNSIndex from XMLNamespaces.
Revision Changes Path
No revision
No revision
1.1.2.6 +46 -9 xml-fop/src/org/apache/fop/fo/Attic/FOAttributes.java
Index: FOAttributes.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/Attic/FOAttributes.java,v
retrieving revision 1.1.2.5
retrieving revision 1.1.2.6
diff -u -r1.1.2.5 -r1.1.2.6
--- FOAttributes.java 16 Sep 2002 05:01:58 -0000 1.1.2.5
+++ FOAttributes.java 1 Oct 2002 16:34:44 -0000 1.1.2.6
@@ -16,6 +16,7 @@
import java.util.List;
import java.util.Map;
import java.util.Collections;
+import java.util.Arrays;
/*
* FOAttributes.java
@@ -63,7 +64,18 @@
*/
private HashMap foAttrMap = new HashMap(0);
- private int DefAttrNSIndex = XMLNamespaces.DefAttrNSIndex;
+ /**
+ * An sorted array of the keys (property indices) of the values in
+ * <i>foAttrMap</i>.
+ */
+ private Integer[] foAttrKeys = null;
+
+ /**
+ * A static array of <tt>Integer</tt> as a template for the generation
+ * of the <i>foAttrKeys</i> array.
+ */
+ private static Integer[] integerArray
+ = new Integer[] { Ints.consts.get(0) };
private FONode foNode;
@@ -105,7 +117,7 @@
int attrUriIndex = foNode.namespaces.getURIIndex(attrUri);
//System.out.println("FONode:" + event);
- if (attrUriIndex == DefAttrNSIndex) {
+ if (attrUriIndex == XMLNamespaces.DefAttrNSIndex) {
// Standard FO namespace
// Catch default namespace declaration here. This seems to
// be a kludge. Should 'xmlns' come through here?
@@ -130,7 +142,7 @@
System.out.println("Creating nSpaceAttrMaps");
nSpaceAttrMaps = new ArrayList(attrUriIndex + 1);
// Add the fo list
- for (j = 0; j < DefAttrNSIndex; j++)
+ for (j = 0; j < XMLNamespaces.DefAttrNSIndex; j++)
nSpaceAttrMaps.add(new HashMap(0));
System.out.println("Adding foAttrMap");
@@ -151,9 +163,17 @@
tmpHash.put(attrLocalname, attrValue);
}
}
+ // Set up the sorted array of the foAttr keys, if foAttrMap has
+ // any entries.
+ if (foAttrMap.size() > 0) {
+ foAttrKeys = (Integer[])(foAttrMap.keySet().toArray(integerArray));
+ Arrays.sort(foAttrKeys);
+ }
}
/**
+ * Get the default namespace attribute values as an unmodifiable
+ * <tt>Map</tt>.
* @return 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
@@ -164,6 +184,7 @@
}
/**
+ * Get the <tt>HashMap</tt> of all default namespace attributes.
* @return <tt>HashMap</tt> <i>foAttrMap</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
@@ -175,6 +196,19 @@
}
/**
+ * Get the sorted array of property index keys for the default namespace
+ * attributes.
+ * @return <tt>Integer[]</tt> <i>foAttrKeys</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.
+ */
+ public Integer[] getFoAttrKeys() {
+ return foAttrKeys;
+ }
+
+ /**
* A convenience method for accessing attribute values from the default
* attribute namespace.
* @param property an <tt>int</tt> containing the property name index
@@ -199,6 +233,8 @@
}
/**
+ * Get an unmodifiable <tt>Map</tt> of the attribute values for a
+ * particular namespace.
* @param uriIndex an <tt>int</tt> containing the index of the attribute
* values namespace, maintained in an <tt>XMLEvent</tt> <tt>static</tt>
* array.
@@ -208,7 +244,7 @@
* derived from the one maintained in <i>nSpaceAttrMaps</i>.
*/
public Map getAttrMap(int uriIndex) {
- if (uriIndex == DefAttrNSIndex)
+ if (uriIndex == XMLNamespaces.DefAttrNSIndex)
return Collections.unmodifiableMap((Map)foAttrMap);
if (nSpaceAttrMaps != null) {
if (uriIndex >= nSpaceAttrMaps.size()) return null;
@@ -220,6 +256,7 @@
}
/**
+ * Get the value of an attribute in a particular namespace.
* @param uriIndex an <tt>int</tt> index of the URIs maintained
* by <tt>XMLEvent</tt>.
* @param localName a <tt>String</tt> with the local name of the
@@ -230,7 +267,7 @@
public String getUriAttrValue(int uriIndex, String localName)
throws PropertyException
{
- if (uriIndex == DefAttrNSIndex)
+ if (uriIndex == XMLNamespaces.DefAttrNSIndex)
return getFoAttrValue(PropertyConsts.getPropertyIndex(localName));
return (String)
(((HashMap)nSpaceAttrMaps.get(uriIndex)).get(localName));
@@ -281,7 +318,7 @@
// the entries from the merging foAttrs
for (int i = 0; i < attrLen; i++) {
// skip foAttrMap
- if (i == DefAttrNSIndex) continue;
+ if (i == XMLNamespaces.DefAttrNSIndex) continue;
((HashMap) nSpaceAttrMaps.get(i))
.putAll(foAttrs.getAttrMap(i));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-cvs-help@xml.apache.org