aboutsummaryrefslogtreecommitdiffstats
path: root/src/org/apache/fop/fo/pagination/SinglePageMasterReference.java
blob: 6ed306b8dc592f7510c965b910b9dbb03234b3ed (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
/*
 * $Id$
 * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
 * For details on use and redistribution please refer to the
 * LICENSE file included with these sources.
 */
package org.apache.fop.fo.pagination;

import org.apache.fop.fo.FONode;

/**
 * A single-page-master-reference formatting object.
 * This is a reference for a single page. It returns the
 * master name only once until reset.
 */
public class SinglePageMasterReference extends PageMasterReference
    implements SubSequenceSpecifier {

    private static final int FIRST = 0;
    private static final int DONE = 1;

    private int state;

    public SinglePageMasterReference(FONode parent) {
        super(parent);
        this.state = FIRST;
    }

    public String getNextPageMasterName(boolean isOddPage,
                                        boolean isFirstPage,
                                        boolean isEmptyPage) {
        if (this.state == FIRST) {
            this.state = DONE;
            return getMasterName();
        } else {
            return null;
        }
    }

    public void reset() {
        this.state = FIRST;
    }
}