01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * 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: ListElement.java 426576 2006-07-28 15:44:37Z jeremias $ */
19:
20: package org.apache.fop.layoutmgr;
21:
22: /**
23: * This class is the base class for all kinds of elements that are added to element lists. There
24: * are basically two kinds of list elements: Knuth elements and unresolved elements like spaces,
25: * border and padding elements which are converted to Knuth elements prior to the breaking
26: * process.
27: */
28: public abstract class ListElement {
29:
30: private Position position;
31:
32: /**
33: * Main constructor
34: * @param position the Position instance needed by the addAreas stage of the LMs.
35: */
36: public ListElement(Position position) {
37: this .position = position;
38: }
39:
40: /**
41: * @return the Position instance for this element.
42: */
43: public Position getPosition() {
44: return this .position;
45: }
46:
47: /**
48: * Change the Position stored in this element.
49: * @param position the Position instance
50: */
51: public void setPosition(Position position) {
52: this .position = position;
53: }
54:
55: /**
56: * @return the LayoutManager responsible for this element.
57: */
58: public LayoutManager getLayoutManager() {
59: if (position != null) {
60: return position.getLM();
61: } else {
62: return null;
63: }
64: }
65:
66: /** @return true if this element is a KnuthBox. */
67: public boolean isBox() {
68: return false;
69: }
70:
71: /** @return true if this element is a KnuthGlue. */
72: public boolean isGlue() {
73: return false;
74: }
75:
76: /** @return true if this element is a KnuthPenalty. */
77: public boolean isPenalty() {
78: return false;
79: }
80:
81: /** @return true if the element is a penalty and represents a forced break. */
82: public boolean isForcedBreak() {
83: return false;
84: }
85:
86: /** @return true if the element is an unresolved element such as a space or a border. */
87: public boolean isUnresolvedElement() {
88: return true;
89: }
90:
91: }
|