Class AFPResourceUtil


  • public final class AFPResourceUtil
    extends java.lang.Object
    TODO better docs Utility for AFP resource handling A utility class to read structured fields from a MO:DCA document. Each component of a mixed object document is explicitly defined and delimited in the data. This is accomplished through the use of MO:DCA data structures, called structured fields. Structured fields are used to envelop document components and to provide commands and information to applications using the data. Structured fields may contain one or more parameters. Each parameter provides one value from a set of values defined by the architecture.
    MO:DCA structured fields consist of two parts: an introducer that identifies the length and type of the structured field, and data that provides the structured field's effect. The data is contained in a set of parameters, which can consist of other data structures and data elements. The maximum length of a structured field is 32767 bytes.
    • Field Detail

      • LOG

        private static final org.apache.commons.logging.Log LOG
    • Constructor Detail

      • AFPResourceUtil

        private AFPResourceUtil()
    • Method Detail

      • getNext

        public static byte[] getNext​(byte[] identifier,
                                     java.io.InputStream inputStream)
                              throws java.io.IOException
        Get the next structured field as identified by the identifier parameter (this must be a valid MO:DCA structured field).
        Parameters:
        identifier - the three byte identifier
        inputStream - the inputStream
        Returns:
        the next structured field or null when there are no more
        Throws:
        java.io.IOException - if an I/O exception occurred
      • getResourceName

        private static java.lang.String getResourceName​(UnparsedStructuredField field)
                                                 throws java.io.UnsupportedEncodingException
        Throws:
        java.io.UnsupportedEncodingException
      • copyResourceFile

        public static void copyResourceFile​(java.io.InputStream in,
                                            java.io.OutputStream out)
                                     throws java.io.IOException
        Copy a complete resource file to a given OutputStream.
        Parameters:
        in - external resource input
        out - output destination
        Throws:
        java.io.IOException - if an I/O error occurs
      • copyNamedResource

        public static void copyNamedResource​(java.lang.String name,
                                             java.io.InputStream in,
                                             java.io.OutputStream out)
                                      throws java.io.IOException
        Copy a named resource to a given OutputStream. The MO:DCA fields read from the InputStream are scanned for the resource with the given name.
        Parameters:
        name - name of structured field
        in - external resource input
        out - output destination
        Throws:
        java.io.IOException - if an I/O error occurs
      • copyNamedStructuredFields

        private static void copyNamedStructuredFields​(java.lang.String name,
                                                      UnparsedStructuredField fieldBegin,
                                                      MODCAParser parser,
                                                      java.io.OutputStream out)
                                               throws java.io.IOException
        Throws:
        java.io.IOException
      • isEndOfStructuredField

        private static boolean isEndOfStructuredField​(UnparsedStructuredField field,
                                                      UnparsedStructuredField fieldBegin,
                                                      java.lang.String name)
                                               throws java.io.UnsupportedEncodingException
        Throws:
        java.io.UnsupportedEncodingException
      • fieldHasValidName

        private static boolean fieldHasValidName​(UnparsedStructuredField field,
                                                 java.lang.String name)
                                          throws java.io.UnsupportedEncodingException
        The AFP specification states that it is valid for the end structured field to have: - No tag name specified, which will cause it to match any existing tag type match. - The name has FFFF as its first two bytes - The given name matches the previous structured field name
        Throws:
        java.io.UnsupportedEncodingException