aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/org/apache/fop/area/PageSequence.java
blob: 3b65f7701516a25b39cd76def4cafd83083c1a83 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* $Id$ */

package org.apache.fop.area;

import java.util.List;

/**
 * Represents a page sequence in the area tree.
 */
public class PageSequence {

    private List pages = new java.util.ArrayList();
    private LineArea title;
    private String language;
    private String country;
    
    /**
     * Main constructor
     * @param title the title for the page-sequence, may be null
     */
    public PageSequence(LineArea title) {
        setTitle(title);
    }
    
    /**
     * @return the title of the page sequence in form of a line area, or null if there's no title
     */
    public LineArea getTitle() {
        return this.title;
    }
    
    /**
     * Sets the page sequence's title.
     * @param title the title
     */
    public void setTitle(LineArea title) {
        this.title = title;
    }
    
    /**
     * Adds a new page to the page sequence
     * @param page the page to be added
     */
    public void addPage(PageViewport page) {
        this.pages.add(page);
    }
    
    /**
     * @return the number of pages currently in this page sequence
     */
    public int getPageCount() {
        return this.pages.size();
    }

    /**
     * Returns the page at the given index.
     * @param idx the index of the requested page
     * @return the requested page or null if it was not found
     */
    public PageViewport getPage(int idx) {
        return (PageViewport)this.pages.get(idx);
    }
    
    /**
     * Indicates whether a page is the first in this page sequence.
     * @param page the page to be inspected
     * @return true if the page is the first in this page sequence, false otherwise
     */
    public boolean isFirstPage(PageViewport page) {
        return page.equals(getPage(0));
    }

    /**
     * Returns the language of the page-sequence.
     * @return the language (the value of the language property, "none" is mapped to null)
     */
    public String getLanguage() {
        return this.language;
    }

    /**
     * Sets the language that applies to this page-sequence.
     * @param language the language to set ("none" is mapped to null)
     */
    public void setLanguage(String language) {
        if ("none".equals(language)) {
            this.language = null;
        } else {
            this.language = language;
        }
    }
    
    /**
     * Returns the country of the page-sequence.
     * @return the country (the value of the country property, "none" is mapped to null)
     */
    public String getCountry() {
        return this.country;
    }

    /**
     * Sets the country that applies to this page-sequence.
     * @param country the country to set ("none" is mapped to null)
     */
    public void setCountry(String country) {
        if ("none".equals(country)) {
            this.country = null;
        } else {
            this.country = country;
        }
    }
    
}