| /* |
| * 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.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. |
| */ |
| public final class ObjectEnvironmentGroup extends AbstractNamedAFPObject { |
| |
| /** the PresentationEnvironmentControl for the object environment group */ |
| private PresentationEnvironmentControl presentationEnvironmentControl; |
| |
| /** the ObjectAreaDescriptor for the object environment group */ |
| private ObjectAreaDescriptor objectAreaDescriptor; |
| |
| /** the ObjectAreaPosition for the object environment group */ |
| private ObjectAreaPosition objectAreaPosition; |
| |
| /** the MapImageObject for the object environment group (optional) */ |
| private MapImageObject mapImageObject; |
| |
| /** the DataDescriptor for the object environment group */ |
| private AbstractDescriptor dataDescriptor; |
| |
| /** the MapDataResource for the object environment group */ |
| private MapDataResource mapDataResource; |
| |
| /** 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. |
| * |
| * @param name the object environment group name |
| */ |
| public ObjectEnvironmentGroup(String name) { |
| super(name); |
| } |
| |
| /** |
| * Sets the Object Area Descriptor |
| * |
| * @param objectAreaDescriptor the object area descriptor |
| */ |
| public void setObjectAreaDescriptor(ObjectAreaDescriptor objectAreaDescriptor) { |
| this.objectAreaDescriptor = objectAreaDescriptor; |
| } |
| |
| /** |
| * 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). |
| * |
| * @param mapImageObject the MIO structured field |
| */ |
| public void setMapImageObject(MapImageObject mapImageObject) { |
| this.mapImageObject = mapImageObject; |
| } |
| |
| /** {@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} */ |
| 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} */ |
| 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 |
| * |
| * @param presentationEnvironmentControl the presentation environment control |
| */ |
| public void setPresentationEnvironmentControl( |
| PresentationEnvironmentControl presentationEnvironmentControl) { |
| this.presentationEnvironmentControl = presentationEnvironmentControl; |
| } |
| |
| /** |
| * Sets the data descriptor |
| * |
| * @param dataDescriptor the data descriptor |
| */ |
| public void setDataDescriptor(AbstractDescriptor dataDescriptor) { |
| this.dataDescriptor = dataDescriptor; |
| } |
| |
| /** |
| * Sets the map data resource |
| * |
| * @param mapDataResource the map data resource |
| */ |
| public void setMapDataResource(MapDataResource mapDataResource) { |
| this.mapDataResource = mapDataResource; |
| } |
| |
| /** |
| * Sets the map container data |
| * |
| * @param mapContainerData the map container data |
| */ |
| public void setMapContainerData(MapContainerData mapContainerData) { |
| this.mapContainerData = mapContainerData; |
| } |
| |
| /** |
| * Returns the object area descriptor |
| * |
| * @return the object area descriptor |
| */ |
| public ObjectAreaDescriptor getObjectAreaDescriptor() { |
| return this.objectAreaDescriptor; |
| } |
| |
| } |