Package com.myscript.iink
Class ContentPackage
- java.lang.Object
-
- com.myscript.iink.ContentPackage
-
- All Implemented Interfaces:
java.lang.AutoCloseable
public class ContentPackage extends java.lang.Object implements java.lang.AutoCloseable
A package stores the user content as a sorted collection of parts.- See Also:
ContentPart
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description @NotNull ContentPart
clonePart(@NotNull ContentPart part)
Adds an existing part to this package.void
close()
@NotNull ContentPart
createPart(@NotNull java.lang.String type)
Appends a new part to this package.void
extractObject(@NotNull java.lang.String url, @NotNull java.io.File file)
Extracts an object from this package to a given file.protected void
finalize()
@NotNull ParameterSet
getMetadata()
Returns this package's metadata as a parameter set.@NotNull ContentPart
getPart(int index)
Returns the part at the specified index.@NotNull ContentPart
getPart(@NotNull java.lang.String id)
Returns the specified part.int
getPartCount()
Returns the number of parts in this package.@NotNull java.lang.String
getPath()
Returns the path of this package.int
indexOfPart(@NotNull ContentPart part)
Returns the index of a given part.boolean
isClosed()
Tells whether theclose()
method has been called.void
removePart(@NotNull ContentPart part)
Removes the specified part.void
save()
Saves all ongoing modifications made to this package.void
saveAs(@NotNull java.io.File file)
Saves all ongoing modifications made to this package, to a new file.void
saveToTemp()
Saves all ongoing modifications made to this package to a temporary folder.void
setMetadata(@NotNull ParameterSet parameters)
Set this package's metadata with the given parameter set.
-
-
-
Method Detail
-
finalize
protected void finalize() throws java.lang.Throwable
- Overrides:
finalize
in classjava.lang.Object
- Throws:
java.lang.Throwable
-
close
public final void close()
- Specified by:
close
in interfacejava.lang.AutoCloseable
-
isClosed
public final boolean isClosed()
Tells whether theclose()
method has been called. Once an object is closed any method will throwIllegalStateException
.- Returns:
true
if this object is closed.
-
save
public final void save() throws java.io.IOException
Saves all ongoing modifications made to this package.- Throws:
java.lang.IllegalStateException
- when this package is closed.java.io.IOException
- when an I/O operation fails.
-
saveToTemp
public final void saveToTemp() throws java.io.IOException
Saves all ongoing modifications made to this package to a temporary folder. This operation is faster thansave()
.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:
java.lang.IllegalStateException
- when this package is closed.java.io.IOException
- when an I/O operation fails.
-
saveAs
public final void saveAs(@NotNull @NotNull java.io.File file) throws java.io.IOException
Saves all ongoing modifications made to this package, to a new file.- Parameters:
file
- the new file name.- Throws:
java.lang.IllegalStateException
- when this package is closed.java.io.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:
java.lang.IllegalStateException
- when this package is closed.
-
getPart
@NotNull public final @NotNull ContentPart getPart(int index) throws java.lang.IndexOutOfBoundsException
Returns the part at the specified index.- Parameters:
index
- the index of the requested part.- Returns:
- the requested part.
- Throws:
java.lang.IllegalStateException
- when this package is closed.java.lang.IndexOutOfBoundsException
- whenindex
is out of range.
-
getPart
@NotNull public final @NotNull ContentPart getPart(@NotNull @NotNull java.lang.String id) throws java.lang.IllegalArgumentException
Returns the specified part.- Parameters:
id
- the identifier of the requested part.- Returns:
- the part.
- Throws:
java.lang.IllegalStateException
- when this package is closed.java.lang.IllegalArgumentException
- when no part is associated with identifierid
.
-
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:
java.lang.IllegalStateException
- when this package is closed.java.lang.IllegalStateException
- when this package's part is closed.
-
createPart
@NotNull public final @NotNull ContentPart createPart(@NotNull @NotNull java.lang.String type) throws java.lang.IllegalArgumentException
Appends a new part to this package.- Parameters:
type
- the type of part.- Returns:
- the newly created part.
- Throws:
java.lang.IllegalStateException
- when this package is closed.java.lang.IllegalArgumentException
- whentype
is not a valid ContentPart type.
-
removePart
public final void removePart(@NotNull @NotNull ContentPart part) throws java.lang.IllegalArgumentException
Removes the specified part.- Parameters:
part
- the part to remove.- Throws:
java.lang.IllegalStateException
- when this package is closed.java.lang.IllegalStateException
- when this package's part is closed.java.lang.IllegalArgumentException
- when part does not belong to this package.- Since:
- 1.2
-
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:
java.lang.IllegalStateException
- when this package is closed.java.lang.IllegalStateException
- when this package's part is closed.java.lang.IllegalArgumentException
- whenpart
is not valid.- Since:
- 1.2
-
extractObject
public final void extractObject(@NotNull @NotNull java.lang.String url, @NotNull @NotNull java.io.File file) throws java.io.IOException, java.lang.IllegalArgumentException
Extracts an object from this package to a given file.- Parameters:
url
- URL of the object.file
- destination file.- Throws:
java.lang.IllegalStateException
- when this package is closed.java.lang.IllegalArgumentException
- when no object namedurl
exists.java.io.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:
java.lang.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:
java.lang.IllegalStateException
- when this package is closed.java.lang.IllegalStateException
- whenparameters
is closed.
-
getPath
@NotNull public final @NotNull java.lang.String getPath()
Returns the path of this package.- Returns:
- the path.
- Throws:
java.lang.IllegalStateException
- when this package is closed.- Since:
- 2.0
-
-