KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > fop > datatypes > Numeric


1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */

17
18 /* $Id: Numeric.java 426576 2006-07-28 15:44:37Z jeremias $ */
19
20 package org.apache.fop.datatypes;
21
22 import org.apache.fop.fo.expr.PropertyException;
23
24 /**
25  * An interface for classes that can participate in numeric operations.
26  * All the numeric operation (+, -, *, ...) are expressed in terms of
27  * this Numeric interface.
28  * Numerics has a value (getNumericValue) and a dimension (getDimension).
29  * Numerics can be either absolute or relative. Relative numerics
30  * must be resolved against base value before the value can be used.
31  * <p>
32  * To support relative numerics internally in the expresion parser and
33  * during evaulation one additional methods exists: isAbsolute() which
34  * return true for absolute numerics and false for relative numerics.
35  */

36 public interface Numeric {
37     /**
38      * Return the value of this Numeric
39      * @return the computed value.
40      * @throws PropertyException
41      */

42     double getNumericValue() throws PropertyException;
43     
44     /**
45      * Return the value of this Numeric
46      * @param context The context for the length calculation (for percentage based lengths)
47      * @return the computed value.
48      * @throws PropertyException
49      */

50     double getNumericValue(PercentBaseContext context) throws PropertyException;
51
52     /**
53      * Return the dimension of this numeric. Plain numbers has a dimension of
54      * 0 and length has a dimension of 1. Other dimension can occur as a result
55      * of multiplications and divisions.
56      * @return the dimension.
57      */

58     int getDimension();
59
60     /**
61      * Return true if the numeric is an absolute value. Relative values are
62      * percentages and table-column-units. All other numerics are absolute.
63      * @return true when the numeric is absolute.
64      */

65     boolean isAbsolute();
66
67     /**
68      * Returns the value of this numeric as an int.
69      * @return the value as an integer.
70      */

71     public int getValue();
72
73     /**
74      * Returns the value of this numeric as an int.
75      * @param context the context for the length calculation (for percentage based lengths)
76      * @return the value as an integer.
77      */

78     public int getValue(PercentBaseContext context);
79
80     /**
81      * Return the resolved value. This method will becalled during evaluation
82      * of the expression tree and relative numerics can then return a
83      * resolved absolute Numeric. Absolute numerics can just return themself.
84      *
85      * @return A resolved value.
86      * @throws PropertyException
87      */

88     //Numeric getResolved() throws PropertyException;
89

90     /**
91      * Return the enum value that is stored in this numeric.
92      */

93     public int getEnum();
94 }
95
Popular Tags