pbwest      2002/10/03 05:47:23

  Modified:    src/org/apache/fop/datatypes/indirect Tag:
                        FOP_0-20-0_Alt-Design IndirectValue.java
  Log:
  Imports: -PropertyTriplet +Numeric.
  Replaced PropertyTriplet references with PropertyValue.
  Removed getInheritedTriplet().
  Added isUnresolved().
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.3   +30 -36    
xml-fop/src/org/apache/fop/datatypes/indirect/Attic/IndirectValue.java
  
  Index: IndirectValue.java
  ===================================================================
  RCS file: 
/home/cvs/xml-fop/src/org/apache/fop/datatypes/indirect/Attic/IndirectValue.java,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- IndirectValue.java        18 Sep 2002 15:31:14 -0000      1.1.2.2
  +++ IndirectValue.java        3 Oct 2002 12:47:23 -0000       1.1.2.3
  @@ -3,7 +3,7 @@
   import org.apache.fop.fo.expr.PropertyException;
   import org.apache.fop.datatypes.AbstractPropertyValue;
   import org.apache.fop.datatypes.PropertyValue;
  -import org.apache.fop.datatypes.PropertyTriplet;
  +import org.apache.fop.datatypes.Numeric;
   import org.apache.fop.fo.Properties;
   import org.apache.fop.fo.PropertyConsts;
   import org.apache.fop.fo.FONode;
  @@ -24,11 +24,11 @@
    * These include <tt>Inherit</tt>, <tt>FromParent</tt> and
    * <tt>FromNearestSpecified</tt> objects.  If an <tt>InheritedValue</tt>
    * object is defined, it will also extend this class.
  - * <p>The required value is usually the computed field of the
  - * <tt>PropertyTriplet</tt> for the source property on the source node.  This
  + * <p>The required value is usually the computed value of the
  + * <tt>PropertyValue</tt> of the source property on the source node.  This
    * property may be different from the property of this object.  This class
  - * provides accessors for the referenced <tt>PropertyTriplet</tt> and the
  - * computed value of that triplet.  In some cases, the specified value is 
  + * provides accessors for the referenced <tt>PropertyValue</tt>.
  + * In some cases, the specified value is 
    * required.  It is the responsibility of the subclass to determine and
    * act upon these cases.  At the time of writing, the only such exception is
    * when a <i>line-height</i> is defined as a &lt;number&gt;.
  @@ -46,11 +46,11 @@
       protected int sourceProperty;
   
       /**
  -     * The <tt>PropertyTriplet</tt> from which this object is being
  +     * The <tt>PropertyValue</tt> from which this object is being
        * inherited.  Set when the inheritance cannot be immediately resolved,
        * e.g. when the specified value is a percentage.
        */
  -    protected PropertyTriplet inheritedValue = null;
  +    protected PropertyValue inheritedValue = null;
   
       /**
        * @param property - the <tt>int</tt> index of the property on which
  @@ -115,64 +115,51 @@
       }
   
       /**
  -     * @return <tt>PropertyTriplet</tt> which contains or will contain the
  +     * @return <tt>PropertyValue</tt> which contains or will contain the
        * the computed value being inherited.  This field will be null except
        * when an unresolved computed value is being inherited.  If so,
  -     * a null value will be returned.  N.B. This triplet will have a
  -     * property value different from this <i>IndirectValue</i> object.
  -     */
  -    public PropertyTriplet getInheritedTriplet() {
  -        return inheritedValue;
  -    }
  -
  -    /**
  -     * @return computed <tt>PropertyValue</tt> field from the
  -     * <tt>PropertyTriplet</tt> from which this object is inherting.
  -     * If the <i>inheritedValue</i> field is null, no resolution of the
  -     * inheritance has yet been attempted, and a null value is returned.
  -     * If the <i>inheritedValue</i> field is not null, return the
  -     * <i>computed</i> field, which may be null.  N.B. This
  +     * a null value will be returned.  N.B. This
        * <tt>PropertyValue</tt> may have a property field different from 
        * this <i>IndirectValue</i> object.  The source property field is held in
        * the <i>sourceProperty</i> field.
        */
       public PropertyValue getInheritedValue() {
  -        if (inheritedValue != null) return inheritedValue.getComputed();
  -        return null;
  +        return inheritedValue;
       }
   
       /**
  -     * Set the reference to the <tt>PropertyTriplet</tt> from which the
  +     * Set the reference to the <tt>PropertyValue</tt> from which the
        * value is being inherited.
  -     * @param bequeathed - the <tt>PropertyTriplet</tt> which contains
  +     * @param bequeathed - the <tt>PropertyValue</tt> which contains
        * or will contain the the computed value of the percentage being
        * inherited.
        */
  -    public void setInheritedTriplet(PropertyTriplet bequeathed) {
  +    public void setInheritedValue(PropertyValue bequeathed) {
           inheritedValue = bequeathed;
       }
   
       /**
        * Attempt to resolve the <tt>IndirectValue</tt> object.
  -     * If no bequeathing <tt>PropertyTriplet</tt>, assume that the
  +     * If no bequeathing <tt>PropertyValue</tt>, assume that the
        * bequeathing node is the parent node.  This is true for the
        * <tt>Inherit</tt>, <tt>InheritedValue</tt> and <tt>FromParent</tt>
        * objects.  <tt>FromNearestSpecified</tt> objects must override this
        * method to ensure that resolution is carried out against the correct
  -     * triplet.
  -     * <p>If the computed value of that triplet is
  +     * property value.
  +     * <p>If the computed value is
        * null, return this object.  If not, return the computed value.
        * @param node - the <tt>FONode</tt> with which this object is associated.
        * @return - a <tt>PropertyValue</tt> as described above.  A return of
        * the same <tt>IndirectValue</tt> object implies that the inherited
        * computed value has not yet been resolved in the ancestor.
        */
  -    protected PropertyValue resolve(FONode node) throws PropertyException {
  +    public PropertyValue resolve(FONode node) throws PropertyException {
           PropertyValue pv;
           if (inheritedValue == null)
  -            inheritedValue = node.getParentTriplet(sourceProperty);
  -        if ((pv = inheritedValue.getComputed()) == null)
  +            inheritedValue = node.getParentPropertyValue(sourceProperty);
  +        if (isUnresolved(inheritedValue))
               return this;
  +        pv = inheritedValue;
           // Check that the property is the same
           if (property != pv.getProperty()) {
               try {
  @@ -182,6 +169,13 @@
               }
           }
           return pv;
  +    }
  +
  +    public static boolean isUnresolved(PropertyValue value)
  +                    throws PropertyException
  +    {
  +        return (value.getType() == PropertyValue.NUMERIC
  +                                    && ((Numeric)(value)).isPercentage());
       }
   
       // N.B. no validation on this class - subclasses will validate
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to