/*
* Copyright (c) 2005 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;
import org.eclipse.nebula.paperclips.core.internal.util.Util;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
/**
* An entry in a CompositePiece.
*
* @author Matthew Hall
*/
public class CompositeEntry {
final PrintPiece piece;
final Point offset;
/**
* Constructs a CompositeEntry with the given PrintPiece and offset.
*
* @param piece
* the PrintPiece for this entry.
* @param offset
* the painting offset within the CompositePrint.
*/
public CompositeEntry(PrintPiece piece, Point offset) {
Util.notNull(piece, offset);
checkOffset(offset);
this.piece = piece;
this.offset = offset;
}
private void checkOffset(Point offset) {
if (offset.x < 0 || offset.y < 0)
PaperClips.error(SWT.ERROR_INVALID_ARGUMENT,
"Offset cannot be negative: " + offset); //$NON-NLS-1$
}
/**
* Disposes this entry's print piece.
*/
public void dispose() {
piece.dispose();
}
}