Package org.beanio

Class StreamFactory

    • Constructor Summary

      Constructors 
      Constructor Description
      StreamFactory()  
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      abstract Marshaller createMarshaller​(java.lang.String name)
      Creates a new Marshaller for marshalling bean objects.
      BeanReader createReader​(java.lang.String name, java.io.File file)
      Creates a new BeanReader for reading from a file.
      BeanReader createReader​(java.lang.String name, java.io.Reader in)
      Creates a new BeanReader for reading from the given input stream.
      abstract BeanReader createReader​(java.lang.String name, java.io.Reader in, java.util.Locale locale)
      Creates a new BeanReader for reading from a stream.
      BeanReader createReader​(java.lang.String name, java.lang.String filename)
      Creates a new BeanReader for reading from a file.
      Unmarshaller createUnmarshaller​(java.lang.String name)
      Creates a new Unmarshaller for unmarshalling records.
      abstract Unmarshaller createUnmarshaller​(java.lang.String name, java.util.Locale locale)
      Creates a new Unmarshaller for unmarshalling records.
      BeanWriter createWriter​(java.lang.String name, java.io.File file)
      Creates a new BeanWriter for writing to the given file.
      abstract BeanWriter createWriter​(java.lang.String name, java.io.Writer out)
      Creates a new BeanWriter for writing to a stream.
      abstract void define​(StreamBuilder builder)
      Defines a new stream mapping.
      protected java.lang.ClassLoader getClassLoader()
      Returns the class loader to use for resolving classpath resources and bean objects declared in a mapping file.
      protected void init()
      This method is invoked after a StreamFactory is loaded and all attributes have been set.
      abstract boolean isMapped​(java.lang.String streamName)
      Test whether a mapping configuration exists for a named stream.
      void load​(java.io.File file)
      Loads a BeanIO mapping file from the file system, and adds the configured streams to this factory.
      void load​(java.io.File file, java.util.Properties properties)
      Loads a BeanIO mapping file from the file system, and adds the configured streams to this factory.
      void load​(java.io.InputStream in)
      Loads a BeanIO mapping file, and adds the configured streams to this factory.
      abstract void load​(java.io.InputStream in, java.util.Properties properties)
      Loads a BeanIO mapping file, and adds the configured streams to this factory.
      void load​(java.lang.String filename)
      Loads a BeanIO mapping file from the file system, and adds the configured streams to this factory.
      void load​(java.lang.String filename, java.util.Properties properties)
      Loads a BeanIO mapping file from the file system, and adds the configured streams to this factory.
      void loadResource​(java.lang.String resource)
      Loads a BeanIO mapping file from the application's classpath.
      void loadResource​(java.lang.String resource, java.util.Properties properties)
      Loads a BeanIO mapping file from the application's classpath.
      static StreamFactory newInstance()
      Returns a new StreamFactory instance.
      static StreamFactory newInstance​(java.lang.ClassLoader classLoader)
      Returns a new StreamFactory instance.
      protected void setClassLoader​(java.lang.ClassLoader cl)
      Sets the class loader to use for resolving classpath resources and bean objects declared in a mapping files.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • StreamFactory

        public StreamFactory()
    • Method Detail

      • createReader

        public BeanReader createReader​(java.lang.String name,
                                       java.lang.String filename)
                                throws java.lang.IllegalArgumentException,
                                       BeanReaderIOException
        Creates a new BeanReader for reading from a file.
        Parameters:
        name - the name of the stream in the mapping file
        filename - the name of the file to read
        Returns:
        the created BeanReader
        Throws:
        java.lang.IllegalArgumentException - if there is no stream configured for the given name, or if the stream mapping mode does not support reading an input stream
        BeanReaderIOException - if the file could not be opened for reading
      • createReader

        public BeanReader createReader​(java.lang.String name,
                                       java.io.File file)
                                throws java.lang.IllegalArgumentException,
                                       BeanReaderIOException
        Creates a new BeanReader for reading from a file.
        Parameters:
        name - the name of the stream in the mapping file
        file - the File to read
        Returns:
        the created BeanReader
        Throws:
        java.lang.IllegalArgumentException - if there is no stream configured for the given name, or if the stream mapping mode does not support reading an input stream
        BeanReaderIOException - if the file could not be opened for reading
      • createReader

        public BeanReader createReader​(java.lang.String name,
                                       java.io.Reader in)
                                throws java.lang.IllegalArgumentException
        Creates a new BeanReader for reading from the given input stream.
        Parameters:
        name - the name of the stream in the mapping file
        in - the input stream to read from
        Returns:
        the created BeanReader
        Throws:
        java.lang.IllegalArgumentException - if there is no stream configured for the given name, or if the stream mapping mode does not support reading an input stream
      • createReader

        public abstract BeanReader createReader​(java.lang.String name,
                                                java.io.Reader in,
                                                java.util.Locale locale)
                                         throws java.lang.IllegalArgumentException
        Creates a new BeanReader for reading from a stream.
        Parameters:
        name - the name of the stream in the mapping file
        in - the input stream to read from
        locale - the Locale used to format error messages, or null to use Locale.getDefault()
        Returns:
        the created BeanReader
        Throws:
        java.lang.IllegalArgumentException - if there is no stream configured for the given name, or if the stream mapping mode does not support reading an input stream
      • createUnmarshaller

        public Unmarshaller createUnmarshaller​(java.lang.String name)
                                        throws java.lang.IllegalArgumentException
        Creates a new Unmarshaller for unmarshalling records.
        Parameters:
        name - the name of the stream in the mapping file
        Returns:
        the created Unmarshaller
        Throws:
        java.lang.IllegalArgumentException - if there is no stream configured for the given name, or if the stream mapping mode does not support unmarshalling
      • createUnmarshaller

        public abstract Unmarshaller createUnmarshaller​(java.lang.String name,
                                                        java.util.Locale locale)
        Creates a new Unmarshaller for unmarshalling records.
        Parameters:
        name - the name of the stream in the mapping file
        locale - the Locale used to format error messages, or null to use Locale.getDefault()
        Returns:
        the created Unmarshaller
        Throws:
        java.lang.IllegalArgumentException - if there is no stream configured for the given name, or if the stream mapping mode does not support unmarshalling
      • createWriter

        public BeanWriter createWriter​(java.lang.String name,
                                       java.io.File file)
                                throws java.lang.IllegalArgumentException,
                                       BeanWriterIOException
        Creates a new BeanWriter for writing to the given file.
        Parameters:
        name - the name of the stream in the mapping file
        file - the file to write to
        Returns:
        the created BeanWriter
        Throws:
        java.lang.IllegalArgumentException - if there is no stream configured for the given name, or if the stream mapping mode does not support writing to an output stream
        BeanWriterIOException - if the file could not be opened for writing
      • createWriter

        public abstract BeanWriter createWriter​(java.lang.String name,
                                                java.io.Writer out)
                                         throws java.lang.IllegalArgumentException
        Creates a new BeanWriter for writing to a stream.
        Parameters:
        name - the name of the stream in the mapping file
        out - the output stream to write to
        Returns:
        the created BeanWriter
        Throws:
        java.lang.IllegalArgumentException - if there is no stream configured for the given name, or if the stream mapping mode does not support writing to an output stream
      • createMarshaller

        public abstract Marshaller createMarshaller​(java.lang.String name)
                                             throws java.lang.IllegalArgumentException
        Creates a new Marshaller for marshalling bean objects.
        Parameters:
        name - the name of the stream in the mapping file
        Returns:
        the created Marshaller
        Throws:
        java.lang.IllegalArgumentException - if there is no stream configured for the given name, or if the stream mapping mode does not support marshalling
      • loadResource

        public void loadResource​(java.lang.String resource,
                                 java.util.Properties properties)
                          throws BeanIOException,
                                 BeanIOConfigurationException
        Loads a BeanIO mapping file from the application's classpath.
        Parameters:
        resource - the configuration resource name
        properties - user Properties for property substitution
        Throws:
        BeanIOException - if an IOException or other fatal error is caught while loading the file
        BeanIOConfigurationException - if the mapping file is not found or invalid
      • load

        public void load​(java.lang.String filename)
                  throws BeanIOException,
                         BeanIOConfigurationException
        Loads a BeanIO mapping file from the file system, and adds the configured streams to this factory.
        Parameters:
        filename - the name of the BeanIO configuration file to load
        Throws:
        BeanIOException - if an IOException or other fatal error is caught while loading the file
        BeanIOConfigurationException - if the mapping file is invalid
      • load

        public void load​(java.lang.String filename,
                         java.util.Properties properties)
                  throws BeanIOException,
                         BeanIOConfigurationException
        Loads a BeanIO mapping file from the file system, and adds the configured streams to this factory.
        Parameters:
        filename - the name of the BeanIO configuration file to load
        properties - user Properties for property substitution
        Throws:
        BeanIOException - if an IOException or other fatal error is caught while loading the file
        BeanIOConfigurationException - if the mapping file is invalid
      • load

        public void load​(java.io.File file,
                         java.util.Properties properties)
                  throws BeanIOException,
                         BeanIOConfigurationException
        Loads a BeanIO mapping file from the file system, and adds the configured streams to this factory.
        Parameters:
        file - the BeanIO configuration file to load
        properties - user Properties for property substitution
        Throws:
        BeanIOException - if an IOException or other fatal error is caught while loading the file
        BeanIOConfigurationException - if the mapping file is invalid
      • load

        public void load​(java.io.InputStream in)
                  throws java.io.IOException,
                         BeanIOConfigurationException
        Loads a BeanIO mapping file, and adds the configured streams to this factory.
        Parameters:
        in - the input stream to read the mapping file from
        Throws:
        BeanIOException - if an IOException or other fatal error is caught while reading the input stream
        BeanIOConfigurationException - if the mapping file is invalid
        java.io.IOException
      • load

        public abstract void load​(java.io.InputStream in,
                                  java.util.Properties properties)
                           throws java.io.IOException,
                                  BeanIOConfigurationException
        Loads a BeanIO mapping file, and adds the configured streams to this factory.
        Parameters:
        in - the input stream to read the mapping file from
        properties - user Properties for property substitution
        Throws:
        BeanIOException - if an IOException or other fatal error is caught while reading the input stream
        BeanIOConfigurationException - if the mapping file is invalid
        java.io.IOException
      • newInstance

        public static StreamFactory newInstance()
                                         throws BeanIOException
        Returns a new StreamFactory instance. The implementation class is resolved using the the BeanIO configuration setting org.beanio.streamFactory.
        Returns:
        a new StreamFactory
        Throws:
        BeanIOException - if a StreamFactory could not be created
        See Also:
        Settings
      • newInstance

        public static StreamFactory newInstance​(java.lang.ClassLoader classLoader)
                                         throws BeanIOException
        Returns a new StreamFactory instance. An implementation class is loaded using the the BeanIO configuration setting org.beanio.streamFactory.
        Parameters:
        classLoader - the ClassLoader to use to load the stream factory and all subcomponents. If null, the current thread's context class loader is used. If there is no context class loader for the thread, the class loader that loaded this class is used.
        Returns:
        a new StreamFactory
        Throws:
        BeanIOException - if a StreamFactory could not be created
        Since:
        2.0
        See Also:
        Settings
      • isMapped

        public abstract boolean isMapped​(java.lang.String streamName)
        Test whether a mapping configuration exists for a named stream.
        Parameters:
        streamName - the stream name to test for existence
        Returns:
        true if a mapping configuration is found for the named stream
        Since:
        1.2
      • init

        protected void init()
        This method is invoked after a StreamFactory is loaded and all attributes have been set.
        Since:
        2.0
      • getClassLoader

        protected java.lang.ClassLoader getClassLoader()
        Returns the class loader to use for resolving classpath resources and bean objects declared in a mapping file.
        Returns:
        the ClassLoader to use
        Since:
        2.0
      • setClassLoader

        protected void setClassLoader​(java.lang.ClassLoader cl)
        Sets the class loader to use for resolving classpath resources and bean objects declared in a mapping files.
        Parameters:
        cl - the ClassLoader to use
        Since:
        2.0