/*
 * 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: Document.java 1297404 2012-03-06 10:17:54Z vhennebert $ */

package org.apache.fop.afp.modca;

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

import org.apache.fop.afp.Factory;

The document is the highest level of the MO:DCA data-stream document component hierarchy. Documents can be made up of pages, and the pages, which are at the intermediate level, can be made up of objects. Objects are at the lowest level, and can be bar codes, graphics, images, and presentation text. At each level of the hierarchy certain sets of MO:DCA data structures, called structured fields, are permissible. The document, pages and objects are bounded by structured fields that define their beginnings and their ends. These structured fields, called begin-end pairs, provide an envelope for the data-stream components. This feature enables a processor of the data stream that is not fully compliant with the architecture to bypass those objects that are beyond its scope, and to process the data stream to the best of its abilities. A presentation document is one that has been formatted and is intended for presentation, usually on a printer or display device. A data stream containing a presentation document should produce the same document content in the same format on different printers or display devices dependent, however, on the capabilities of each of the printers or display devices. A presentation document can reference resources that are to be included as part of the document to be presented.
/** * The document is the highest level of the MO:DCA data-stream document * component hierarchy. Documents can be made up of pages, and the pages, which * are at the intermediate level, can be made up of objects. Objects are at the * lowest level, and can be bar codes, graphics, images, and presentation text. * * At each level of the hierarchy certain sets of MO:DCA data structures, called * structured fields, are permissible. The document, pages and objects are * bounded by structured fields that define their beginnings and their ends. * These structured fields, called begin-end pairs, provide an envelope for the * data-stream components. This feature enables a processor of the data stream * that is not fully compliant with the architecture to bypass those objects * that are beyond its scope, and to process the data stream to the best of its * abilities. * * A presentation document is one that has been formatted and is intended for * presentation, usually on a printer or display device. A data stream * containing a presentation document should produce the same document content * in the same format on different printers or display devices dependent, * however, on the capabilities of each of the printers or display devices. A * presentation document can reference resources that are to be included as part * of the document to be presented. * */
public final class Document extends AbstractResourceEnvironmentGroupContainer {
Constructor for the document object.
Params:
  • factory – the object factory
  • name – the name of the document
/** * Constructor for the document object. * * @param factory * the object factory * @param name * the name of the document */
public Document(Factory factory, String name) { super(factory, name); }
Method to mark the end of the page group.
/** * Method to mark the end of the page group. */
public void endDocument() { complete = true; }
{@inheritDoc}
/** {@inheritDoc} */
public boolean isComplete() { return complete; }
{@inheritDoc}
/** {@inheritDoc} */
protected void writeStart(OutputStream os) throws IOException { byte[] data = new byte[17]; copySF(data, Type.BEGIN, Category.DOCUMENT); os.write(data); }
{@inheritDoc}
/** {@inheritDoc} */
protected void writeEnd(OutputStream os) throws IOException { byte[] data = new byte[17]; copySF(data, Type.END, Category.DOCUMENT); os.write(data); }
{@inheritDoc}
/** {@inheritDoc} */
public String toString() { return this.name; } }