Class POIXMLFactory

  • Direct Known Subclasses:
    XDGFFactory, XSLFFactory, XSSFFactory, XWPFFactory

    public abstract class POIXMLFactory
    extends java.lang.Object
    Defines a factory API that enables sub-classes to create instances of POIXMLDocumentPart
    • Constructor Detail

      • POIXMLFactory

        public POIXMLFactory()
    • Method Detail

      • createDocumentPart

        public POIXMLDocumentPart createDocumentPart​(POIXMLDocumentPart parent,
                                                     PackagePart part)
        Create a POIXMLDocumentPart from existing package part and relation. This method is called from POIXMLDocument.load(POIXMLFactory) when parsing a document
        Parameters:
        parent - parent part
        part - the PackagePart representing the created instance
        Returns:
        A new instance of a POIXMLDocumentPart.
        Since:
        by POI 3.14-Beta1
      • createDocumentPart

        protected abstract POIXMLDocumentPart createDocumentPart​(java.lang.Class<? extends POIXMLDocumentPart> cls,
                                                                 java.lang.Class<?>[] classes,
                                                                 java.lang.Object[] values)
                                                          throws java.lang.SecurityException,
                                                                 java.lang.NoSuchMethodException,
                                                                 java.lang.InstantiationException,
                                                                 java.lang.IllegalAccessException,
                                                                 java.lang.reflect.InvocationTargetException
        Need to delegate instantiation to sub class because of constructor visibility
        Parameters:
        cls - the document class to be instantiated
        classes - the classes of the constructor arguments
        values - the values of the constructor arguments
        Returns:
        the new document / part
        Throws:
        java.lang.SecurityException - thrown if the object can't be instantiated
        java.lang.NoSuchMethodException - thrown if there is no constructor found for the given arguments
        java.lang.InstantiationException - thrown if the object can't be instantiated
        java.lang.IllegalAccessException - thrown if the object can't be instantiated
        java.lang.reflect.InvocationTargetException - thrown if the object can't be instantiated
        Since:
        POI 3.14-Beta1
      • getDescriptor

        protected abstract POIXMLRelation getDescriptor​(java.lang.String relationshipType)
        returns the descriptor for the given relationship type
        Parameters:
        relationshipType - the relationship type of the descriptor
        Returns:
        the descriptor or null if type is unknown
        Since:
        POI 3.14-Beta1
      • newDocumentPart

        public POIXMLDocumentPart newDocumentPart​(POIXMLRelation descriptor)
        Create a new POIXMLDocumentPart using the supplied descriptor. This method is used when adding new parts to a document, for example, when adding a sheet to a workbook, slide to a presentation, etc.
        Parameters:
        descriptor - describes the object to create
        Returns:
        A new instance of a POIXMLDocumentPart.
      • getPackageRelationship

        protected PackageRelationship getPackageRelationship​(POIXMLDocumentPart parent,
                                                             PackagePart part)
        Retrieves the package relationship of the child part within the parent
        Parameters:
        parent - the parent to search for the part
        part - the part to look for
        Returns:
        the relationship
        Throws:
        POIXMLException - if the relations are erroneous or the part is not related
        Since:
        POI 3.14-Beta1