|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.hackystat.sensorbase.db.DbImplementation
public abstract class DbImplementation
Provides a specification of the operations that must be implemented by every SensorBase storage system. Also provides some 'helper' methods, which return the Managers for the various resources.
Field Summary | |
---|---|
protected java.util.logging.Logger |
logger
Keep a pointer to the Logger. |
protected Server |
server
Keeps a pointer to this Server for use in accessing the managers. |
Constructor Summary | |
---|---|
DbImplementation(Server server)
Constructs a new DbImplementation. |
Method Summary | |
---|---|
abstract boolean |
compressTables()
Databases like Derby require an explicit compress command for releasing disk space after a large number of rows have been deleted. |
abstract void |
deleteProject(User owner,
java.lang.String projectName)
Ensures that the Project with the given owner and projectName is no longer present in the db. |
abstract void |
deleteSensorData(User user)
Ensures that sensor data with the given user is no longer present in this manager. |
abstract void |
deleteSensorData(User user,
javax.xml.datatype.XMLGregorianCalendar timestamp)
Ensures that sensor data with the given user and timestamp is no longer present in this manager. |
abstract void |
deleteSensorDataType(java.lang.String sdtName)
Ensures that the SensorDataType with the given name is no longer present in this manager. |
abstract void |
deleteUser(java.lang.String email)
Ensures that the User with the given email is no longer present in this manager. |
abstract java.lang.String |
getProject(User owner,
java.lang.String projectName)
Returns the Project instance as XML string, or null if not found. |
abstract java.lang.String |
getProjectIndex()
Returns the XML ProjectIndex for all Projects in this server. |
protected ProjectManager |
getProjectManager()
Returns the ProjectManager associated with this server. |
abstract java.lang.String |
getProjectSensorDataSnapshot(java.util.List<User> users,
javax.xml.datatype.XMLGregorianCalendar startTime,
javax.xml.datatype.XMLGregorianCalendar endTime,
java.util.List<java.lang.String> uriPatterns,
java.lang.String sdt,
java.lang.String tool)
Returns an XML SensorDataIndex to sensor data for the given time interval and sdt with the most recent runtime value. |
abstract ProjectSummary |
getProjectSummary(java.util.List<User> users,
javax.xml.datatype.XMLGregorianCalendar startTime,
javax.xml.datatype.XMLGregorianCalendar endTime,
java.util.List<java.lang.String> uriPatterns,
java.lang.String href)
Returns a ProjectSummary instance constructed for the given Project between the startTime and endTime. |
abstract int |
getRowCount(java.lang.String table)
Returns the current number of rows in the specified table. |
protected SdtManager |
getSdtManager()
Returns the SdtManager associated with this server. |
abstract java.lang.String |
getSensorData(User user,
javax.xml.datatype.XMLGregorianCalendar timestamp)
Returns the SensorData instance as XML string, or null if not found. |
abstract java.lang.String |
getSensorDataIndex()
Returns the XML SensorDataIndex for all sensor data in this server. |
abstract java.lang.String |
getSensorDataIndex(java.util.List<User> users,
javax.xml.datatype.XMLGregorianCalendar startTime,
javax.xml.datatype.XMLGregorianCalendar endTime,
java.util.List<java.lang.String> uriPatterns,
int startIndex,
int maxInstances)
Returns the XML SensorDataIndex for all sensor data matching these users, start/end time, and whose resource string matches at least one in the list of UriPatterns. |
abstract java.lang.String |
getSensorDataIndex(java.util.List<User> users,
javax.xml.datatype.XMLGregorianCalendar startTime,
javax.xml.datatype.XMLGregorianCalendar endTime,
java.util.List<java.lang.String> uriPatterns,
java.lang.String sdt)
Returns an XML SensorDataIndex representing the SensorData for the given user between start and end time whose resource string matches at least one of the UriPatterns. |
abstract java.lang.String |
getSensorDataIndex(java.util.List<User> users,
javax.xml.datatype.XMLGregorianCalendar startTime,
javax.xml.datatype.XMLGregorianCalendar endTime,
java.util.List<java.lang.String> uriPatterns,
java.lang.String sdt,
java.lang.String tool)
Returns an XML SensorDataIndex representing the SensorData for the given user between start and end time whose resource string matches at least one of the UriPatterns. |
abstract java.lang.String |
getSensorDataIndex(User user)
Returns the XML SensorDataIndex for all sensor data for this user. |
abstract java.lang.String |
getSensorDataIndex(User user,
java.lang.String sdtName)
Returns the XML SensorDataIndex for all sensor data for this user and sensor data type. |
abstract java.lang.String |
getSensorDataIndexLastMod(User user,
javax.xml.datatype.XMLGregorianCalendar lastModStartTime,
javax.xml.datatype.XMLGregorianCalendar lastModEndTime)
Returns the XML SensorDataIndex for all sensor data for the given user that arrived at the server since the given start and end timestamps. |
protected SensorDataManager |
getSensorDataManager()
Returns the SensorDataManager associated with this server. |
abstract java.lang.String |
getSensorDataType(java.lang.String sdtName)
Returns the SensorDataType instance as XML string, or null if not found. |
abstract java.lang.String |
getSensorDataTypeIndex()
Returns the XML SensorDataTypeIndex for all SDTs in this server. |
abstract java.util.Set<java.lang.String> |
getTableNames()
Returns a set containing the names of all tables in this database. |
abstract java.lang.String |
getUser(java.lang.String email)
Returns the User instance as XML string, or null if not found. |
abstract java.lang.String |
getUserIndex()
Returns the XML UserIndex for all Users in this server. |
protected UserManager |
getUserManager()
Returns the UserManager associated with this server. |
abstract boolean |
hasSensorData(User user,
javax.xml.datatype.XMLGregorianCalendar timestamp)
Returns true if the passed [key, timestamp] has sensor data defined for it. |
abstract boolean |
indexTables()
The most appropriate set of indexes for the database has been evolving over time as we develop new queries. |
abstract void |
initialize()
To be called as part of the startup process for a storage system. |
abstract boolean |
isFreshlyCreated()
Returns true if the initialize() method did indeed create a fresh storage system. |
abstract boolean |
storeProject(Project project,
java.lang.String xmlProject,
java.lang.String xmlProjectRef)
Persists a Project instance. |
abstract boolean |
storeSensorData(SensorData data,
java.lang.String xmlSensorData,
java.lang.String xmlSensorDataRef)
Persists a SensorData instance. |
abstract boolean |
storeSensorDataType(SensorDataType sdt,
java.lang.String xmlSensorDataType,
java.lang.String xmlSensorDataTypeRef)
Persists a SensorDataType instance. |
abstract boolean |
storeUser(User user,
java.lang.String xmlUser,
java.lang.String xmlUserRef)
Persists a User instance. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected Server server
protected java.util.logging.Logger logger
Constructor Detail |
---|
public DbImplementation(Server server)
server
- The server.Method Detail |
---|
public abstract void initialize()
public abstract boolean isFreshlyCreated()
public abstract java.lang.String getSensorDataIndex()
public abstract java.lang.String getSensorDataIndex(User user)
user
- The User whose sensor data is to be returned.
public abstract java.lang.String getSensorDataIndex(User user, java.lang.String sdtName)
user
- The User whose sensor data is to be returned.sdtName
- The sensor data type name.
public abstract java.lang.String getSensorDataIndex(java.util.List<User> users, javax.xml.datatype.XMLGregorianCalendar startTime, javax.xml.datatype.XMLGregorianCalendar endTime, java.util.List<java.lang.String> uriPatterns, java.lang.String sdt)
users
- The list of users whose SensorData will be returned.startTime
- The earliest Sensor Data to be returned.endTime
- The latest SensorData to be returned.uriPatterns
- At least one UriPattern must match the SensorData resource field.sdt
- The SDT of interest, or null if data from all SDTs should be retrieved.
public abstract java.lang.String getSensorDataIndex(java.util.List<User> users, javax.xml.datatype.XMLGregorianCalendar startTime, javax.xml.datatype.XMLGregorianCalendar endTime, java.util.List<java.lang.String> uriPatterns, java.lang.String sdt, java.lang.String tool)
users
- The list of users whose SensorData will be returned.startTime
- The earliest Sensor Data to be returned.endTime
- The latest SensorData to be returned.uriPatterns
- At least one UriPattern must match the SensorData resource field.sdt
- The SDT of interest. Should not be null.tool
- The tool of interest. Should not be null.
public abstract java.lang.String getSensorDataIndex(java.util.List<User> users, javax.xml.datatype.XMLGregorianCalendar startTime, javax.xml.datatype.XMLGregorianCalendar endTime, java.util.List<java.lang.String> uriPatterns, int startIndex, int maxInstances)
users
- The users.startTime
- The start time.endTime
- The end time.uriPatterns
- A list of UriPatterns.startIndex
- The starting index.maxInstances
- The maximum number of instances to return.
public abstract java.lang.String getSensorDataIndexLastMod(User user, javax.xml.datatype.XMLGregorianCalendar lastModStartTime, javax.xml.datatype.XMLGregorianCalendar lastModEndTime)
user
- The user whose data is being monitored.lastModStartTime
- The beginning lastMod timestamp of interest.lastModEndTime
- The ending lastMod timestamp of interest.
public abstract java.lang.String getProjectSensorDataSnapshot(java.util.List<User> users, javax.xml.datatype.XMLGregorianCalendar startTime, javax.xml.datatype.XMLGregorianCalendar endTime, java.util.List<java.lang.String> uriPatterns, java.lang.String sdt, java.lang.String tool)
users
- The list of users whose sensor data will be checked.startTime
- The start time.endTime
- The end time.uriPatterns
- The uripatterns that must match the resource string.sdt
- The sensor data type of interest.tool
- The tool of interest, or null if any tool is OK.
public abstract java.lang.String getSensorData(User user, javax.xml.datatype.XMLGregorianCalendar timestamp)
user
- The user.timestamp
- The timestamp associated with this sensor data.
public abstract boolean hasSensorData(User user, javax.xml.datatype.XMLGregorianCalendar timestamp)
user
- The user.timestamp
- The timestamp
public abstract boolean storeSensorData(SensorData data, java.lang.String xmlSensorData, java.lang.String xmlSensorDataRef)
data
- The sensor data.xmlSensorData
- The SensorData marshalled into an XML String.xmlSensorDataRef
- The corresponding SensorDataRef marshalled into an XML String
public abstract void deleteSensorData(User user, javax.xml.datatype.XMLGregorianCalendar timestamp)
user
- The user.timestamp
- The timestamp associated with this sensor data.public abstract void deleteSensorData(User user)
user
- The user.public abstract java.lang.String getSensorDataTypeIndex()
public abstract java.lang.String getSensorDataType(java.lang.String sdtName)
sdtName
- The SDT name.
public abstract boolean storeSensorDataType(SensorDataType sdt, java.lang.String xmlSensorDataType, java.lang.String xmlSensorDataTypeRef)
sdt
- The sensor data typexmlSensorDataType
- The SensorDataType marshalled into an XML String.xmlSensorDataTypeRef
- The corresponding SensorDataTypeRef marshalled into an XML String
public abstract void deleteSensorDataType(java.lang.String sdtName)
sdtName
- The SDT name.public abstract java.lang.String getUserIndex()
public abstract java.lang.String getUser(java.lang.String email)
email
- The user's email.
public abstract boolean storeUser(User user, java.lang.String xmlUser, java.lang.String xmlUserRef)
user
- The userxmlUser
- The User marshalled into an XML String.xmlUserRef
- The corresponding UserRef marshalled into an XML String
public abstract void deleteUser(java.lang.String email)
email
- The user's email address.public abstract java.lang.String getProjectIndex()
public abstract java.lang.String getProject(User owner, java.lang.String projectName)
owner
- The user who owns the project.projectName
- The name of the Project.
public abstract boolean storeProject(Project project, java.lang.String xmlProject, java.lang.String xmlProjectRef)
project
- The Project.xmlProject
- The Project marshalled into an XML String.xmlProjectRef
- The corresponding ProjectRef marshalled into an XML String
public abstract void deleteProject(User owner, java.lang.String projectName)
owner
- The User who owns this project.projectName
- The name of the Project.public abstract ProjectSummary getProjectSummary(java.util.List<User> users, javax.xml.datatype.XMLGregorianCalendar startTime, javax.xml.datatype.XMLGregorianCalendar endTime, java.util.List<java.lang.String> uriPatterns, java.lang.String href)
users
- The users in this project.startTime
- The startTimeendTime
- The endTime.uriPatterns
- The UriPatterns for this project.href
- The URL naming this resource.
protected UserManager getUserManager()
protected SensorDataManager getSensorDataManager()
protected SdtManager getSdtManager()
protected ProjectManager getProjectManager()
public abstract boolean compressTables()
public abstract boolean indexTables()
public abstract int getRowCount(java.lang.String table)
table
- The table whose rows are to be counted.
public abstract java.util.Set<java.lang.String> getTableNames()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |