Class ContentPackage

java.lang.Object
com.myscript.iink.ContentPackage
All Implemented Interfaces:
AutoCloseable

public class ContentPackage extends Object implements AutoCloseable
A package stores the user content as a sorted collection of parts.
See Also:
  • Method Details

    • finalize

      protected void finalize() throws Throwable
      Overrides:
      finalize in class Object
      Throws:
      Throwable
    • close

      public final void close()
      Specified by:
      close in interface AutoCloseable
    • isClosed

      public final boolean isClosed()
      Tells whether the close() method has been called. Once an object is closed any method will throw IllegalStateException.
      Returns:
      true if this object is closed.
    • save

      public final void save() throws IOException
      Saves all ongoing modifications made to this package.
      Throws:
      IllegalStateException - when this package is closed.
      IOException - when an I/O operation fails.
    • saveToTemp

      public final void saveToTemp() throws IOException
      Saves all ongoing modifications made to this package to a temporary folder. This operation is faster than save().

      Note: by default temporary folder is located in the same directory as this package, and named by appending -files to this package's name.

      Note: temporary folder location can be set via the content-package.temp-folder configuration property.

      Throws:
      IllegalStateException - when this package is closed.
      IOException - when an I/O operation fails.
    • saveAs

      public final void saveAs(@NotNull @NotNull File file) throws IOException
      Saves all ongoing modifications made to this package, to a new file.
      Parameters:
      file - the new file name.
      Throws:
      IllegalStateException - when this package is closed.
      IOException - when an I/O operation fails.
    • getPartCount

      public final int getPartCount()
      Returns the number of parts in this package.
      Returns:
      the part count.
      Throws:
      IllegalStateException - when this package is closed.
    • getPart

      @NotNull public final @NotNull ContentPart getPart(int index) throws IndexOutOfBoundsException
      Returns the part at the specified index.
      Parameters:
      index - the index of the requested part.
      Returns:
      the requested part.
      Throws:
      IllegalStateException - when this package is closed.
      IndexOutOfBoundsException - when index is out of range.
    • getPart

      @NotNull public final @NotNull ContentPart getPart(@NotNull @NotNull String id) throws IllegalArgumentException
      Returns the specified part.
      Parameters:
      id - the identifier of the requested part.
      Returns:
      the part.
      Throws:
      IllegalStateException - when this package is closed.
      IllegalArgumentException - when no part is associated with identifier id.
    • indexOfPart

      public final int indexOfPart(@NotNull @NotNull ContentPart part)
      Returns the index of a given part.
      Parameters:
      part - the part.
      Returns:
      the index of the part, or -1 if the part does not belong to this package.
      Throws:
      IllegalStateException - when this package is closed.
      IllegalStateException - when this package's part is closed.
    • createPart

      @NotNull public final @NotNull ContentPart createPart(@NotNull @NotNull String type) throws IllegalArgumentException
      Appends a new part to this package.
      Parameters:
      type - the type of part.
      Returns:
      the newly created part.
      Throws:
      IllegalStateException - when this package is closed.
      IllegalArgumentException - when type is not a valid ContentPart type.
    • removePart

      public final void removePart(@NotNull @NotNull ContentPart part) throws IllegalArgumentException
      Removes the specified part.
      Parameters:
      part - the part to remove.
      Throws:
      IllegalStateException - when this package is closed.
      IllegalStateException - when this package's part is closed.
      IllegalArgumentException - when part does not belong to this package.
      Since:
      1.2
    • movePart

      public final void movePart(int fromIndex, int toIndex) throws IndexOutOfBoundsException
      Moves the specified part to another index.
      Parameters:
      fromIndex - the current index of the requested part.
      toIndex - the new index of the part.
      Throws:
      IllegalStateException - when this package is closed.
      IllegalArgumentException - when fromIndex is out of range.
      IllegalArgumentException - when toIndex is out of range.
      IndexOutOfBoundsException
      Since:
      2.1.1
    • clonePart

      @NotNull public final @NotNull ContentPart clonePart(@NotNull @NotNull ContentPart part)
      Adds an existing part to this package.

      Note: Part modifications that have not been saved (to temporary directory or to an actual package file) will not be imported.

      Note: The part can be an existing part from this package or from another open package.

      Parameters:
      part - the part to clone into this package.
      Returns:
      the newly created part.
      Throws:
      IllegalStateException - when this package is closed.
      IllegalStateException - when this package's part is closed.
      IllegalArgumentException - when part is not valid.
      Since:
      1.2
    • extractObject

      public final void extractObject(@NotNull @NotNull String url, @NotNull @NotNull File file) throws IOException, IllegalArgumentException
      Extracts an object from this package to a given file.
      Parameters:
      url - URL of the object.
      file - destination file.
      Throws:
      IllegalStateException - when this package is closed.
      IllegalArgumentException - when no object named url exists.
      IOException - when an I/O operation fails.
    • getMetadata

      @NotNull public final @NotNull ParameterSet getMetadata()
      Returns this package's metadata as a parameter set.
      Returns:
      the metadata.
      Throws:
      IllegalStateException - when this package is closed.
    • setMetadata

      public final void setMetadata(@NotNull @NotNull ParameterSet parameters)
      Set this package's metadata with the given parameter set.
      Parameters:
      parameters - the metadata.
      Throws:
      IllegalStateException - when this package is closed.
      IllegalStateException - when parameters is closed.
    • getPath

      @NotNull public final @NotNull String getPath()
      Returns the path of this package.
      Returns:
      the path.
      Throws:
      IllegalStateException - when this package is closed.
      Since:
      2.0
    • toString

      @NotNull public @NotNull String toString()
      Returns a String representation of the object.
      Overrides:
      toString in class Object
      Returns:
      the representation of the object.
      Since:
      2.1