|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.hackystat.sensorbase.db.DbManager
public class DbManager
Provides an interface to storage for the resources managed by the SensorBase. Currently we have one storage mechanisms: a persistent store which is implemented by an embedded Derby database.
Field Summary | |
---|---|
static java.lang.String |
sensorDataIndexCloseTag
The SensorDataIndex close tag. |
static java.lang.String |
sensorDataIndexOpenTag
The SensorDataIndex open tag. |
Constructor Summary | |
---|---|
DbManager(Server server)
Creates a new DbManager which manages access to the underlying persistency layer(s). |
Method Summary | |
---|---|
boolean |
compressTables()
Databases like Derby require an explicit compress command for releasing disk space after a large number of rows have been deleted. |
void |
deleteProject(User user,
java.lang.String projectName)
Ensures that the Project with the given user and name is no longer present in this db. |
void |
deleteSensorData(User user)
Ensures that sensor data with the given user no longer exists. |
void |
deleteSensorData(User user,
javax.xml.datatype.XMLGregorianCalendar timestamp)
Ensures that sensor data with the given user and timestamp no longer exists. |
void |
deleteSensorDataType(java.lang.String sdtName)
Ensures that the SensorDataType with the given name no longer exists. |
void |
deleteUser(java.lang.String email)
Ensures that the User with the given email address is no longer present in this db. |
java.lang.String |
getProject(User user,
java.lang.String projectName)
Returns the Project instance as an XML string, or null. |
java.lang.String |
getProjectIndex()
Returns the XML Project Index for all Projects. |
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 a SensorDataIndex representing the "snapshot" of sensor data in the given time interval for the given sdt and tool (if tool is not null). |
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. |
int |
getRowCount(java.lang.String table)
Returns the current number of rows in the specified table. |
java.lang.String |
getSensorData(User user,
javax.xml.datatype.XMLGregorianCalendar timestamp)
Returns the SensorData instance as an XML string, or null. |
java.lang.String |
getSensorDataIndex()
Returns the XML SensorDataIndex for all sensor data. |
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. |
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 the XML SensorDataIndex for all sensor data matching this user, start/end time, and whose resource string matches at least one in the list of UriPatterns. |
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 the XML SensorDataIndex for all sensor data matching this user, start/end time, and whose resource string matches at least one in the list of UriPatterns. |
java.lang.String |
getSensorDataIndex(User user)
Returns the XML SensorDataIndex for all sensor data for this user. |
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. |
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 between the two timestamps. |
java.lang.String |
getSensorDataType(java.lang.String sdtName)
Returns the SensorDataType instance as an XML string, or null. |
java.lang.String |
getSensorDataTypeIndex()
Returns the XML SensorDataTypeIndex for all sensor data. |
java.util.Set<java.lang.String> |
getTableNames()
Returns a set containing the names of all tables in this database. |
java.lang.String |
getUser(java.lang.String email)
Returns the User instance as an XML string, or null. |
java.lang.String |
getUserIndex()
Returns the XML UserIndex for all Users.. |
boolean |
hasSensorData(User user,
javax.xml.datatype.XMLGregorianCalendar timestamp)
Returns true if the passed [user, timestamp] has sensor data defined for it. |
boolean |
indexTables()
The most appropriate set of indexes for the database has been evolving over time as we develop new queries. |
void |
storeProject(Project project,
java.lang.String xmlProject,
java.lang.String xmlProjectRef)
Persists a Project instance. |
void |
storeSensorData(SensorData data,
java.lang.String xmlSensorData,
java.lang.String xmlSensorDataRef)
Persists a SensorData instance. |
void |
storeSensorDataType(SensorDataType sdt,
java.lang.String xmlSensorDataType,
java.lang.String xmlSensorDataTypeRef)
Persists a SensorDataType instance. |
void |
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 |
---|
public static final java.lang.String sensorDataIndexOpenTag
public static final java.lang.String sensorDataIndexCloseTag
Constructor Detail |
---|
public DbManager(Server server)
server
- The Restlet server instance.Method Detail |
---|
public void storeSensorData(SensorData data, java.lang.String xmlSensorData, java.lang.String xmlSensorDataRef)
data
- The sensor data.xmlSensorData
- The sensor data resource as an XML String.xmlSensorDataRef
- The sensor data resource as an XML resource referencepublic void storeSensorDataType(SensorDataType sdt, java.lang.String xmlSensorDataType, java.lang.String xmlSensorDataTypeRef)
sdt
- The sensor data.xmlSensorDataType
- The SDT resource as an XML String.xmlSensorDataTypeRef
- The SDT as an XML resource referencepublic void storeUser(User user, java.lang.String xmlUser, java.lang.String xmlUserRef)
user
- The user instance.xmlUser
- The User resource as an XML String.xmlUserRef
- The User as an XML resource referencepublic void storeProject(Project project, java.lang.String xmlProject, java.lang.String xmlProjectRef)
project
- The project instance.xmlProject
- The Project resource as an XML String.xmlProjectRef
- The Project as an XML resource referencepublic java.lang.String getSensorDataIndex()
public java.lang.String getSensorDataIndex(User user)
user
- The User whose sensor data is to be returned.
public 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 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.startTime
- The start time.endTime
- The end time.uriPatterns
- A list of UriPatterns.sdt
- The SensorDataType of interest, or null if all data of all SDTs should be retrieved.
public 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.startTime
- The start time.endTime
- The end time.uriPatterns
- A list of UriPatterns.sdt
- The SensorDataType of interest, or null if all data of all SDTs should be retrieved.tool
- The tool of interest.
public 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 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 lastMod startTime of interest.lastModEndTime
- The lastMod endTime of interest.
public java.lang.String getSensorDataTypeIndex()
public java.lang.String getUserIndex()
public java.lang.String getProjectIndex()
public 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 list of users in this project.startTime
- The startTimeendTime
- The endTime.uriPatterns
- The uriPatterns for this project.href
- The URL naming this resource.
public 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 in this project.startTime
- The startTimeendTime
- The endTime.uriPatterns
- The uriPatterns for this project.sdt
- The sensor data type of the sensor data of interest.tool
- The tool associated with this snapshot, or null if any tool will do.
public java.lang.String getSensorData(User user, javax.xml.datatype.XMLGregorianCalendar timestamp)
user
- The user.timestamp
- The timestamp associated with this sensor data.
public java.lang.String getSensorDataType(java.lang.String sdtName)
sdtName
- The name of the SDT to retrieve.
public java.lang.String getUser(java.lang.String email)
email
- The email address of the User to retrieve.
public java.lang.String getProject(User user, java.lang.String projectName)
user
- The User that owns the Project to retrieve.projectName
- The name of the Project to retrieve.
public boolean hasSensorData(User user, javax.xml.datatype.XMLGregorianCalendar timestamp)
user
- The user.timestamp
- The timestamp
public void deleteSensorData(User user, javax.xml.datatype.XMLGregorianCalendar timestamp)
user
- The user.timestamp
- The timestamp associated with this sensor data.public void deleteSensorData(User user)
user
- The user.public void deleteSensorDataType(java.lang.String sdtName)
sdtName
- The SDT name.public void deleteUser(java.lang.String email)
email
- The user email.public void deleteProject(User user, java.lang.String projectName)
user
- The User who owns this Project.projectName
- The name of the Project to delete.public boolean compressTables()
public boolean indexTables()
public int getRowCount(java.lang.String table)
table
- The table whose rows are to be counted.
public java.util.Set<java.lang.String> getTableNames()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |