org.apache.poi.sl.usermodel

## Interface ObjectShape<S extends Shape<S,P>,P extends TextParagraph<S,P,? extends TextRun>>

- All Superinterfaces:
    PlaceableShape<S,P>, Shape<S,P>
  All Known Implementing Classes:
    HSLFObjectShape, XSLFObjectShape

      public interface ObjectShape<S extends Shape<S,P>,P extends TextParagraph<S,P,? extends TextRun>>
      extends Shape<S,P>, PlaceableShape<S,P>

  An shape which references an embedded OLE object
  Since:
    POI 4.0.0

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `getFullName()` Returns the full name of the embedded object, e.g.
    `ObjectData` | `getObjectData()`
    `PictureData` | `getPictureData()` Returns the picture data for this picture.
    `java.lang.String` | `getProgId()` Returns the ProgID that stores the OLE Programmatic Identifier.
    `default java.io.InputStream` | `readObjectData()` Reads the ole data as stream - the application specific stream is served The `raw data` serves the outer/wrapped object, which is usually a `POIFSFileSystem` stream, whereas this method return the unwrapped entry
    `default java.io.InputStream` | `readObjectDataRaw()` Convenience method to return the raw data as `InputStream`
    `java.io.OutputStream` | `updateObjectData(ObjectMetaData.Application application, ObjectMetaData metaData)` Updates the ole data.

    - ### Methods inherited from interface org.apache.poi.sl.usermodel.Shape

      `draw, getAnchor, getParent, getShapeId, getShapeName, getSheet`

    - ### Methods inherited from interface org.apache.poi.sl.usermodel.PlaceableShape

      `getAnchor, getFlipHorizontal, getFlipVertical, getParent, getRotation, getSheet, setAnchor, setFlipHorizontal, setFlipVertical, setRotation`

- - ### Method Detail

    - #### getPictureData

          PictureData getPictureData()

      Returns the picture data for this picture.
      Returns:
        the picture data for this picture.

    - #### getProgId

          java.lang.String getProgId()

      Returns the ProgID that stores the OLE Programmatic Identifier. A ProgID is a string that uniquely identifies a given object, for example, "Word.Document.8" or "Excel.Sheet.8".
      Returns:
        the ProgID

    - #### getFullName

          java.lang.String getFullName()

      Returns the full name of the embedded object, e.g. "Microsoft Word Document" or "Microsoft Office Excel Worksheet".
      Returns:
        the full name of the embedded object

    - #### updateObjectData

          java.io.OutputStream updateObjectData(ObjectMetaData.Application application,
                                                ObjectMetaData metaData)
                                         throws java.io.IOException

      Updates the ole data. If there wasn't an object registered before, a new ole embedding is registered in the parent slideshow.

      For HSLF this needs to be a `POIFSFileSystem` stream.

      Parameters:
        `application` - a preset application enum
        `metaData` - or a custom metaData object, can be `null` if the application has been set
      Returns:
        an `OutputStream` which receives the new data, the data will be persisted on `close()`
      Throws:
        `java.io.IOException` - if the linked object data couldn't be found or a new object data couldn't be initialized

    - #### readObjectData

          default java.io.InputStream readObjectData()
                                              throws java.io.IOException

      Reads the ole data as stream - the application specific stream is served The `raw data` serves the outer/wrapped object, which is usually a `POIFSFileSystem` stream, whereas this method return the unwrapped entry
      Returns:
        an `InputStream` which serves the object data
      Throws:
        `java.io.IOException` - if the linked object data couldn't be found

    - #### readObjectDataRaw

          default java.io.InputStream readObjectDataRaw()
                                                 throws java.io.IOException

      Convenience method to return the raw data as `InputStream`
      Returns:
        the raw data stream
      Throws:
        `java.io.IOException` - if the data couldn't be retrieved

    - #### getObjectData

          ObjectData getObjectData()

      Returns:
        the data object

Copyright 2020 The Apache Software Foundation or its licensors, as applicable.