/*
 * 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: ObjectEnvironmentGroup.java 746664 2009-02-22 12:40:44Z jeremias $ */

package org.apache.fop.afp.modca;

import java.io.IOException;
import java.io.OutputStream;

import org.apache.fop.afp.util.BinaryUtils;

An Object Environment Group (OEG) may be associated with an object and is contained within the object's begin-end envelope. The object environment group defines the object's origin and orientation on the page, and can contain font and color attribute table information. The scope of an object environment group is the scope of its containing object. An application that creates a data-stream document may omit some of the parameters normally contained in the object environment group, or it may specify that one or more default values are to be used.
/** * An Object Environment Group (OEG) may be associated with an object and is contained * within the object's begin-end envelope. * The object environment group defines the object's origin and orientation on the page, * and can contain font and color attribute table information. The scope of an object * environment group is the scope of its containing object. * * An application that creates a data-stream document may omit some of the parameters * normally contained in the object environment group, or it may specify that one or * more default values are to be used. */
public final class ObjectEnvironmentGroup extends AbstractNamedAFPObject {
the PresentationEnvironmentControl for the object environment group
/** the PresentationEnvironmentControl for the object environment group */
private PresentationEnvironmentControl presentationEnvironmentControl;
the ObjectAreaDescriptor for the object environment group
/** the ObjectAreaDescriptor for the object environment group */
private ObjectAreaDescriptor objectAreaDescriptor;
the ObjectAreaPosition for the object environment group
/** the ObjectAreaPosition for the object environment group */
private ObjectAreaPosition objectAreaPosition;
the MapImageObject for the object environment group (optional)
/** the MapImageObject for the object environment group (optional) */
private MapImageObject mapImageObject;
the DataDescriptor for the object environment group
/** the DataDescriptor for the object environment group */
private AbstractDescriptor dataDescriptor;
the MapDataResource for the object environment group
/** the MapDataResource for the object environment group */
private MapDataResource mapDataResource;
the MapContainerData for the object environment group
/** the MapContainerData for the object environment group */
private MapContainerData mapContainerData;
Constructor for the ObjectEnvironmentGroup, this takes a name parameter which must be 8 characters long.
Params:
  • name – the object environment group name
/** * Constructor for the ObjectEnvironmentGroup, this takes a * name parameter which must be 8 characters long. * * @param name the object environment group name */
public ObjectEnvironmentGroup(String name) { super(name); }
Sets the Object Area Descriptor
Params:
  • objectAreaDescriptor – the object area descriptor
/** * Sets the Object Area Descriptor * * @param objectAreaDescriptor the object area descriptor */
public void setObjectAreaDescriptor(ObjectAreaDescriptor objectAreaDescriptor) { this.objectAreaDescriptor = objectAreaDescriptor; }
Sets the Object Area Position
Params:
  • objectAreaPosition – the object area position
/** * Sets the Object Area Position * * @param objectAreaPosition the object area position */
public void setObjectAreaPosition(ObjectAreaPosition objectAreaPosition) { this.objectAreaPosition = objectAreaPosition; }
Sets the Map Image Object (MIO).
Params:
  • mapImageObject – the MIO structured field
/** * Sets the Map Image Object (MIO). * * @param mapImageObject the MIO structured field */
public void setMapImageObject(MapImageObject mapImageObject) { this.mapImageObject = mapImageObject; }
{@inheritDoc}
/** {@inheritDoc} */
protected void writeStart(OutputStream os) throws IOException { byte[] data = new byte[17]; copySF(data, Type.BEGIN, Category.OBJECT_ENVIRONMENT_GROUP); int tripletDataLength = getTripletDataLength(); int sfLen = data.length + tripletDataLength - 1; byte[] len = BinaryUtils.convert(sfLen, 2); data[1] = len[0]; data[2] = len[1]; os.write(data); writeTriplets(os); }
{@inheritDoc}
/** {@inheritDoc} */
protected void writeContent(OutputStream os) throws IOException { super.writeContent(os); if (presentationEnvironmentControl != null) { presentationEnvironmentControl.writeToStream(os); } if (objectAreaDescriptor != null) { objectAreaDescriptor.writeToStream(os); } if (objectAreaPosition != null) { objectAreaPosition.writeToStream(os); } if (mapImageObject != null) { mapImageObject.writeToStream(os); } if (mapContainerData != null) { mapContainerData.writeToStream(os); } if (mapDataResource != null) { mapDataResource.writeToStream(os); } if (dataDescriptor != null) { dataDescriptor.writeToStream(os); } }
{@inheritDoc}
/** {@inheritDoc} */
protected void writeEnd(OutputStream os) throws IOException { byte[] data = new byte[17]; copySF(data, Type.END, Category.OBJECT_ENVIRONMENT_GROUP); os.write(data); }
Sets the presentation environment control
Params:
  • presentationEnvironmentControl – the presentation environment control
/** * Sets the presentation environment control * * @param presentationEnvironmentControl the presentation environment control */
public void setPresentationEnvironmentControl( PresentationEnvironmentControl presentationEnvironmentControl) { this.presentationEnvironmentControl = presentationEnvironmentControl; }
Sets the data descriptor
Params:
  • dataDescriptor – the data descriptor
/** * Sets the data descriptor * * @param dataDescriptor the data descriptor */
public void setDataDescriptor(AbstractDescriptor dataDescriptor) { this.dataDescriptor = dataDescriptor; }
Sets the map data resource
Params:
  • mapDataResource – the map data resource
/** * Sets the map data resource * * @param mapDataResource the map data resource */
public void setMapDataResource(MapDataResource mapDataResource) { this.mapDataResource = mapDataResource; }
Sets the map container data
Params:
  • mapContainerData – the map container data
/** * Sets the map container data * * @param mapContainerData the map container data */
public void setMapContainerData(MapContainerData mapContainerData) { this.mapContainerData = mapContainerData; }
Returns the object area descriptor
Returns:the object area descriptor
/** * Returns the object area descriptor * * @return the object area descriptor */
public ObjectAreaDescriptor getObjectAreaDescriptor() { return this.objectAreaDescriptor; } }