/*
* Copyright (c) 2006 Matthew Hall and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Matthew Hall - initial API and implementation
*/
package org.eclipse.nebula.paperclips.core.page;
import org.eclipse.nebula.paperclips.core.Print;
import org.eclipse.nebula.paperclips.core.internal.util.Util;
/**
* A PageDecoration which displays the same decoration on every page (ignoring
* the page number).
* <p>
* Typically the page number will be in either the header or footer, but not in
* both. Often the page number is the only thing that changes from page to page
* in a header. Use this class for a header or footer which does not display the
* page number.
*
* @author Matthew Hall
*/
public class SimplePageDecoration implements PageDecoration {
private final Print print;
/**
* Constructs a BasicPageDecoration.
*
* @param print
* the decoration which will appear on every page.
*/
public SimplePageDecoration(Print print) {
Util.notNull(print);
this.print = print;
}
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((print == null) ? 0 : print.hashCode());
return result;
}
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
SimplePageDecoration other = (SimplePageDecoration) obj;
if (print == null) {
if (other.print != null)
return false;
} else if (!print.equals(other.print))
return false;
return true;
}
public Print createPrint(PageNumber pageNumber) {
return print;
}
}