blob: dc828a540ad9a8bdf5f482dcc2542108299a8cd1 [file] [log] [blame]
/*
* 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.afp;
import org.apache.fop.afp.modca.Registry;
import org.apache.fop.afp.modca.triplets.MappingOptionTriplet;
/**
* A list of parameters associated with an AFP data objects
*/
public class AFPDataObjectInfo {
/** the object area info */
private AFPObjectAreaInfo objectAreaInfo;
/** resource info */
private AFPResourceInfo resourceInfo;
/** the data object width */
private int dataWidth;
/** the data object height */
private int dataHeight;
/** the object registry mimetype */
private String mimeType;
/** the object data in a byte array */
private byte[] data;
private byte[] transparencyMask;
/** the object data height resolution */
private int dataHeightRes;
/** the object data width resolution */
private int dataWidthRes;
/** controls whether to create a page segment or a simple object */
private boolean createPageSegment;
/** controls the mapping of the image data into the image area */
private byte mappingOption = MappingOptionTriplet.SCALE_TO_FILL;
public static final byte DEFAULT_MAPPING_OPTION = 0x00;
/**
* Default constructor
*/
public AFPDataObjectInfo() {
}
/**
* Sets the image mime type
*
* @param mimeType the image mime type
*/
public void setMimeType(String mimeType) {
this.mimeType = mimeType;
}
/**
* Returns the mime type of this data object
*
* @return the mime type of this data object
*/
public String getMimeType() {
return mimeType;
}
/**
* Convenience method to return the object type
*
* @return the object type
*/
public Registry.ObjectType getObjectType() {
return Registry.getInstance().getObjectType(getMimeType());
}
/**
* Returns the resource level at which this data object should reside
*
* @return the resource level at which this data object should reside
*/
public AFPResourceInfo getResourceInfo() {
if (resourceInfo == null) {
this.resourceInfo = new AFPResourceInfo();
}
return resourceInfo;
}
/**
* Sets the resource level at which this object should reside
*
* @param resourceInfo the resource level at which this data object should reside
*/
public void setResourceInfo(AFPResourceInfo resourceInfo) {
this.resourceInfo = resourceInfo;
}
/**
* Sets the object area info
*
* @param objectAreaInfo the object area info
*/
public void setObjectAreaInfo(AFPObjectAreaInfo objectAreaInfo) {
this.objectAreaInfo = objectAreaInfo;
}
/**
* Returns the object area info
*
* @return the object area info
*/
public AFPObjectAreaInfo getObjectAreaInfo() {
return this.objectAreaInfo;
}
/**
* Returns the uri of this data object
*
* @return the uri of this data object
*/
public String getUri() {
return getResourceInfo().getUri();
}
/**
* Sets the data object uri
*
* @param uri the data object uri
*/
public void setUri(String uri) {
getResourceInfo().setUri(uri);
}
/**
* Returns the image data width
*
* @return the image data width
*/
public int getDataWidth() {
return dataWidth;
}
/**
* Sets the image data width
*
* @param imageDataWidth the image data width
*/
public void setDataWidth(int imageDataWidth) {
this.dataWidth = imageDataWidth;
}
/**
* Returns the image data height
*
* @return the image data height
*/
public int getDataHeight() {
return dataHeight;
}
/**
* Sets the image data height
*
* @param imageDataHeight the image data height
*/
public void setDataHeight(int imageDataHeight) {
this.dataHeight = imageDataHeight;
}
/**
* Returns the data height resolution
*
* @return the data height resolution
*/
public int getDataHeightRes() {
return this.dataHeightRes;
}
/**
* Sets the data height resolution
*
* @param dataHeightRes the data height resolution
*/
public void setDataHeightRes(int dataHeightRes) {
this.dataHeightRes = dataHeightRes;
}
/**
* Returns the data width resolution
*
* @return the data width resolution
*/
public int getDataWidthRes() {
return this.dataWidthRes;
}
/**
* Sets the data width resolution
*
* @param dataWidthRes the data width resolution
*/
public void setDataWidthRes(int dataWidthRes) {
this.dataWidthRes = dataWidthRes;
}
/**
* Sets the object data
*
* @param data the object data
*/
public void setData(byte[] data) {
this.data = data;
}
/**
* Returns the object data
*
* @return the object data
*/
public byte[] getData() {
return this.data;
}
public void setTransparencyMask(byte[] transparencyMask) {
this.transparencyMask = transparencyMask;
}
public byte[] getTransparencyMask() {
return transparencyMask;
}
/**
* Controls whether to create a page segment or a normal object.
* @param value true for page segments, false for objects
*/
public void setCreatePageSegment(boolean value) {
this.createPageSegment = value;
}
/**
* Indicates whether a page segment or a normal object shall be created.
* @return true for page segments, false for objects
*/
public boolean isCreatePageSegment() {
return this.createPageSegment;
}
/**
* Sets the way an image is mapped into its target area.
* @param mappingOption the mapping option (Valid values: see Mapping Option Triplet)
*/
public void setMappingOption(byte mappingOption) {
this.mappingOption = mappingOption;
}
/**
* Returns the way an image is mapped into its target area. By default, this is "scale to fill"
* behavior.
* @return the mapping option value from the Mapping Option Triplet
*/
public byte getMappingOption() {
return mappingOption;
}
/** {@inheritDoc} */
public String toString() {
return "AFPDataObjectInfo{"
+ "mimeType=" + mimeType
+ ", dataWidth=" + dataWidth
+ ", dataHeight=" + dataHeight
+ ", dataWidthRes=" + dataWidthRes
+ ", dataHeightRes=" + dataHeightRes
+ (objectAreaInfo != null ? ", objectAreaInfo=" + objectAreaInfo : "")
+ (resourceInfo != null ? ", resourceInfo=" + resourceInfo : "");
}
}