pbwest 2002/10/02 00:08:26 Modified: src/org/apache/fop/fo Tag: FOP_0-20-0_Alt-Design FONode.java Log: Ignore properties not in attribute set for this node. Revision Changes Path No revision No revision 1.19.2.11 +31 -10 xml-fop/src/org/apache/fop/fo/FONode.java Index: FONode.java =================================================================== RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/FONode.java,v retrieving revision 1.19.2.10 retrieving revision 1.19.2.11 diff -u -r1.19.2.10 -r1.19.2.11 --- FONode.java 1 Oct 2002 16:40:23 -0000 1.19.2.10 +++ FONode.java 2 Oct 2002 07:08:26 -0000 1.19.2.11 @@ -15,6 +15,7 @@ import org.apache.fop.xml.XMLEvent; import org.apache.fop.xml.SyncedXmlEventsBuffer; import org.apache.fop.xml.XMLNamespaces; +import org.apache.fop.messaging.MessageHandler; import org.xml.sax.Attributes; @@ -99,6 +100,7 @@ this.parent = parent; this.event = event; this.attrSet = attrSet; + nodeAttrBitSet = FObjects.getAttrROBitSet(attrSet); xmlevents = foTree.xmlevents; namespaces = xmlevents.getNamespaces(); exprParser = foTree.exprParser; @@ -109,7 +111,7 @@ } } - private void processAttributes() throws PropertyException { + private void processAttributes() throws FOPException, PropertyException { // Process the FOAttributes - parse and stack the values // Build a HashMap of the properties defined on this node foProperties = foAttributes.getFoAttrMap(); @@ -120,23 +122,42 @@ for (int propx = 0; propx < numAttrs; propx++) { PropertyValue props; int type; + int property; int prop = foKeys[propx].intValue(); String attrValue = foAttributes.getFoAttrValue(prop); props = handleAttrValue(prop, attrValue); type = props.getType(); if (type != PropertyValue.LIST) { - stackValue(props); - // Handle corresponding properties here - // Update the propertySet - propertySet[props.getProperty()] = props; + property = props.getProperty(); + if ( ! nodeAttrBitSet.get(property)) { + MessageHandler.log("Ignoring property " + + PropNames.getPropertyName(property) + + " for attribute set " + + FObjects.getAttrSetName(attrSet) + + "."); + } else { + stackValue(props); + // Handle corresponding properties here + // Update the propertySet + propertySet[props.getProperty()] = props; + } } else { // a list PropertyValue value; Iterator propvals = ((PropertyValueList)props).iterator(); while (propvals.hasNext()) { value = (PropertyValue)(propvals.next()); - stackValue(value); - // Handle corresponding properties here - propertySet[value.getProperty()] = value; + property = value.getProperty(); + if ( ! nodeAttrBitSet.get(property)) { + MessageHandler.log("Ignoring property " + + PropNames.getPropertyName(property) + + " for attribute set " + + FObjects.getAttrSetName(attrSet) + + "."); + } else { + stackValue(value); + // Handle corresponding properties here + propertySet[value.getProperty()] = value; + } } } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]