public interface AppStorage
extends java.lang.AutoCloseable
An AppStorage implements low level methods to walk through a filesystem and to write and read data from this filesystem. It relies on nodes uniquely identified by and ID.
Modifier and Type | Method and Description |
---|---|
void |
addDependency(java.lang.String nodeId,
java.lang.String name,
java.lang.String toNodeId)
Adds a dependency from node with ID
nodeId to node with ID toNodeId . |
void |
addDoubleTimeSeriesData(java.lang.String nodeId,
int version,
java.lang.String timeSeriesName,
java.util.List<DoubleDataChunk> chunks)
Adds data (double) to the time series with names
timeSeriesNames associated with node with ID nodeId . |
void |
addStringTimeSeriesData(java.lang.String nodeId,
int version,
java.lang.String timeSeriesName,
java.util.List<StringDataChunk> chunks)
Adds data (string) to the time series with names
timeSeriesNames associated with node with ID nodeId . |
void |
clearTimeSeries(java.lang.String nodeId)
Deletes time series associated with node with ID
nodeId |
void |
close()
Closes any resource associated with this storage.
|
NodeInfo |
createNode(java.lang.String parentNodeId,
java.lang.String name,
java.lang.String nodePseudoClass,
java.lang.String description,
int version,
NodeGenericMetadata genericMetadata)
Creates a new node in the tree under a parent node.
|
NodeInfo |
createRootNodeIfNotExists(java.lang.String name,
java.lang.String nodePseudoClass)
Returns the root node of the tree, creating it if it does not exist.
|
void |
createTimeSeries(java.lang.String nodeId,
TimeSeriesMetadata metadata)
Creates a time series associated with node with ID
nodeId . |
boolean |
dataExists(java.lang.String nodeId,
java.lang.String name)
Returns
true if data named name associated with the node with ID nodeId exists. |
java.lang.String |
deleteNode(java.lang.String nodeId)
Deletes the node with ID
nodeId . |
void |
flush()
Flush any changes to underlying storage.
|
java.util.Set<NodeInfo> |
getBackwardDependencies(java.lang.String nodeId)
Gets
NodeInfo objects of nodes which depend on the node with ID nodeId . |
java.util.Optional<NodeInfo> |
getChildNode(java.lang.String nodeId,
java.lang.String name)
Gets
NodeInfo for child node with name name of the node with ID nodeId , empty if such a node does not exist or node is inconsistent. |
java.util.List<NodeInfo> |
getChildNodes(java.lang.String nodeId)
Gets
NodeInfo for consistent child nodes of the node with ID nodeId . |
java.util.Set<java.lang.String> |
getDataNames(java.lang.String nodeId)
Returns the lists of names of data associated to the node with ID
nodeId . |
java.util.Set<NodeDependency> |
getDependencies(java.lang.String nodeId)
Gets all dependencies (
NodeDependency objects) of node with ID nodeId . |
java.util.Set<NodeInfo> |
getDependencies(java.lang.String nodeId,
java.lang.String name)
Gets
NodeInfo objects for dependencies of node with ID nodeId , and associated to the dependency name name . |
java.util.Map<java.lang.String,java.util.List<DoubleDataChunk>> |
getDoubleTimeSeriesData(java.lang.String nodeId,
java.util.Set<java.lang.String> timeSeriesNames,
int version)
Gets data (double) for the time series with names
timeSeriesNames associated with node with ID nodeId . |
java.lang.String |
getFileSystemName() |
default java.util.List<NodeInfo> |
getInconsistentNodes()
Gets
NodeInfo for all inconsistent nodes. |
NodeInfo |
getNodeInfo(java.lang.String nodeId)
Gets NodeInfo object for the node with ID
nodeId . |
java.util.Optional<NodeInfo> |
getParentNode(java.lang.String nodeId)
Gets
NodeInfo for parent node of the node with ID nodeId , empty if such a node does not exist or inconsistent. |
java.util.Map<java.lang.String,java.util.List<StringDataChunk>> |
getStringTimeSeriesData(java.lang.String nodeId,
java.util.Set<java.lang.String> timeSeriesNames,
int version)
Gets data (string) for the time series with names
timeSeriesNames associated with node with ID nodeId . |
java.util.Set<java.lang.Integer> |
getTimeSeriesDataVersions(java.lang.String nodeId)
Gets versions of time series data associated with node with ID
nodeId . |
java.util.Set<java.lang.Integer> |
getTimeSeriesDataVersions(java.lang.String nodeId,
java.lang.String timeSeriesName)
Gets versions of data for the time series with name
timeSeriesName associated with node with ID nodeId . |
java.util.List<TimeSeriesMetadata> |
getTimeSeriesMetadata(java.lang.String nodeId,
java.util.Set<java.lang.String> timeSeriesNames)
Returns metadata of time series associated with node with ID
nodeId and with name in timeSeriesNames . |
java.util.Set<java.lang.String> |
getTimeSeriesNames(java.lang.String nodeId)
Returns names of all time series associated with node with ID
nodeId . |
boolean |
isClosed()
Check if storage is closed.
|
default boolean |
isConsistent(java.lang.String nodeId)
Return true if the node with ID
nodeId is consistent, otherwise it returns false . |
boolean |
isRemote() |
boolean |
isWritable(java.lang.String nodeId) |
java.util.Optional<java.io.InputStream> |
readBinaryData(java.lang.String nodeId,
java.lang.String name)
Reads data associated to the node with ID
nodeId . |
boolean |
removeData(java.lang.String nodeId,
java.lang.String name)
Removes the data blob named
name associated with the node with ID nodeId . |
void |
removeDependency(java.lang.String nodeId,
java.lang.String name,
java.lang.String toNodeId)
Removes a dependency named
name from node with ID nodeId to node with ID toNodeId . |
default void |
renameNode(java.lang.String nodeId,
java.lang.String name)
Rename the node with ID
nodeId |
default void |
setConsistent(java.lang.String nodeId)
mark the node with ID
nodeId as consistent node. |
void |
setDescription(java.lang.String nodeId,
java.lang.String description) |
void |
setParentNode(java.lang.String nodeId,
java.lang.String newParentNodeId)
Sets new parent node for the node with ID
nodeId . |
boolean |
timeSeriesExists(java.lang.String nodeId,
java.lang.String timeSeriesName)
Returns
true if a time series named timeSeriesName associated with the node with ID nodeId exists. |
void |
updateModificationTime(java.lang.String nodeId) |
java.io.OutputStream |
writeBinaryData(java.lang.String nodeId,
java.lang.String name)
Returns an
OutputStream to write data associated to the node with ID nodeId . |
java.lang.String getFileSystemName()
boolean isRemote()
NodeInfo createRootNodeIfNotExists(java.lang.String name, java.lang.String nodePseudoClass)
NodeInfo createNode(java.lang.String parentNodeId, java.lang.String name, java.lang.String nodePseudoClass, java.lang.String description, int version, NodeGenericMetadata genericMetadata)
NodeInfo
corresponding to the newly created node.
The new node is by default inconsistent, setConsistent(String nodeId)
method should explicitly be called to set it consistent.boolean isWritable(java.lang.String nodeId)
default boolean isConsistent(java.lang.String nodeId)
nodeId
is consistent, otherwise it returns false .NodeInfo getNodeInfo(java.lang.String nodeId)
nodeId
.void setDescription(java.lang.String nodeId, java.lang.String description)
default void setConsistent(java.lang.String nodeId)
nodeId
as consistent node.void updateModificationTime(java.lang.String nodeId)
java.util.List<NodeInfo> getChildNodes(java.lang.String nodeId)
NodeInfo
for consistent child nodes of the node with ID nodeId
.default java.util.List<NodeInfo> getInconsistentNodes()
NodeInfo
for all inconsistent nodes.java.util.Optional<NodeInfo> getChildNode(java.lang.String nodeId, java.lang.String name)
NodeInfo
for child node with name name
of the node with ID nodeId
, empty if such a node does not exist or node is inconsistent.java.util.Optional<NodeInfo> getParentNode(java.lang.String nodeId)
NodeInfo
for parent node of the node with ID nodeId
, empty if such a node does not exist or inconsistent.void setParentNode(java.lang.String nodeId, java.lang.String newParentNodeId)
nodeId
.java.lang.String deleteNode(java.lang.String nodeId)
nodeId
.default void renameNode(java.lang.String nodeId, java.lang.String name)
nodeId
java.util.Optional<java.io.InputStream> readBinaryData(java.lang.String nodeId, java.lang.String name)
nodeId
. A node may have several data blobs associated to it,
with different names. The parameters name
specifies which of those data is requested.java.io.OutputStream writeBinaryData(java.lang.String nodeId, java.lang.String name)
OutputStream
to write data associated to the node with ID nodeId
.
A node may have several data blobs associated to it, with different names.boolean dataExists(java.lang.String nodeId, java.lang.String name)
true
if data named name
associated with the node with ID nodeId
exists.java.util.Set<java.lang.String> getDataNames(java.lang.String nodeId)
nodeId
.boolean removeData(java.lang.String nodeId, java.lang.String name)
name
associated with the node with ID nodeId
.void createTimeSeries(java.lang.String nodeId, TimeSeriesMetadata metadata)
nodeId
.java.util.Set<java.lang.String> getTimeSeriesNames(java.lang.String nodeId)
nodeId
.boolean timeSeriesExists(java.lang.String nodeId, java.lang.String timeSeriesName)
true
if a time series named timeSeriesName
associated with the node with ID nodeId
exists.java.util.List<TimeSeriesMetadata> getTimeSeriesMetadata(java.lang.String nodeId, java.util.Set<java.lang.String> timeSeriesNames)
nodeId
and with name in timeSeriesNames
.java.util.Set<java.lang.Integer> getTimeSeriesDataVersions(java.lang.String nodeId)
nodeId
.java.util.Set<java.lang.Integer> getTimeSeriesDataVersions(java.lang.String nodeId, java.lang.String timeSeriesName)
timeSeriesName
associated with node with ID nodeId
.java.util.Map<java.lang.String,java.util.List<DoubleDataChunk>> getDoubleTimeSeriesData(java.lang.String nodeId, java.util.Set<java.lang.String> timeSeriesNames, int version)
timeSeriesNames
associated with node with ID nodeId
.void addDoubleTimeSeriesData(java.lang.String nodeId, int version, java.lang.String timeSeriesName, java.util.List<DoubleDataChunk> chunks)
timeSeriesNames
associated with node with ID nodeId
.java.util.Map<java.lang.String,java.util.List<StringDataChunk>> getStringTimeSeriesData(java.lang.String nodeId, java.util.Set<java.lang.String> timeSeriesNames, int version)
timeSeriesNames
associated with node with ID nodeId
.void addStringTimeSeriesData(java.lang.String nodeId, int version, java.lang.String timeSeriesName, java.util.List<StringDataChunk> chunks)
timeSeriesNames
associated with node with ID nodeId
.void clearTimeSeries(java.lang.String nodeId)
nodeId
void addDependency(java.lang.String nodeId, java.lang.String name, java.lang.String toNodeId)
nodeId
to node with ID toNodeId
.
The dependency will be associated with the specified name
.java.util.Set<NodeInfo> getDependencies(java.lang.String nodeId, java.lang.String name)
NodeInfo
objects for dependencies of node with ID nodeId
, and associated to the dependency name name
.java.util.Set<NodeDependency> getDependencies(java.lang.String nodeId)
NodeDependency
objects) of node with ID nodeId
.java.util.Set<NodeInfo> getBackwardDependencies(java.lang.String nodeId)
NodeInfo
objects of nodes which depend on the node with ID nodeId
.void removeDependency(java.lang.String nodeId, java.lang.String name, java.lang.String toNodeId)
name
from node with ID nodeId
to node with ID toNodeId
.void flush()
boolean isClosed()
void close()
close
in interface java.lang.AutoCloseable
Copyright © 2019. All rights reserved.