Package com.inductiveautomation.snap.web
Class WebSite
- java.lang.Object
-
- com.inductiveautomation.rm.base.RMListenerList
-
- com.inductiveautomation.rm.base.RMObject
-
- com.inductiveautomation.snap.web.WebSite
-
- All Implemented Interfaces:
RMJSONArchiver.GetKeys
,RMPropertyChanger
,java.beans.PropertyChangeListener
,java.lang.Cloneable
,java.util.EventListener
public abstract class WebSite extends RMObject implements java.beans.PropertyChangeListener, RMJSONArchiver.GetKeys
This is an abstract class to provide data management (create, get, put, delete) and file management.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
WebSite.Servlet
Interface for Servlet.
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
Refresh_Prop
-
Constructor Summary
Constructors Constructor Description WebSite()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addDeepChangeListener(DeepChangeListener aListener)
Adds a deep (property) change listener to get notified when this WebSite sees changes (to files).void
bulkImport(java.util.Map<java.lang.String,java.util.List<java.util.Map>> theMaps)
Bulk import.protected WebClassLoader
createClassLoader()
Creates the DataClassLoader.protected DataTable
createDataTable(java.lang.String aName)
Returns the DataTable for given name.protected DataTable
createDataTableImpl()
Creates an instance of DataTable.Entity
createEntity(java.lang.String aName)
Creates an entity for given name.protected Entity
createEntityImpl(java.lang.String aName)
Returns the entity for given name.WebFile
createFile(java.lang.String aPath, boolean isDirectory)
Returns a new file at the given path, regardless of whether it exists in the data source.protected WebFile
createFileImpl(java.lang.String aPath, boolean isDirectory)
Creates a new file.Row
createRow(Entity anEntity, java.lang.Object aPrimaryValue)
Returns a row for an entity and primary value that is guaranteed to be unique for this data source.Row
createRow(Entity anEntity, java.lang.Object aPrimaryValue, java.util.Map aMap)
Returns a row for an entity and primary value that is guaranteed to be unique for this data source.protected Row
createRowImpl(Entity anEntity, java.lang.Object aPrimaryValue)
Creates a new row for source.protected WebSite
createSandbox()
Creates a WebSite that can be used for storing persistent support files.protected WebURL
createSandboxURL()
Creates a WebSite that can be used for storing persistent support files.protected java.lang.String
createSandboxURLS()
Creates a WebSite that can be used for storing persistent support files.protected Schema
createSchema()
Creates the schema.void
createSite()
Creates the data site remote site (database, directory file, etc.).protected WebURL
createURL(java.lang.String aURL)
Creates a URL for string.void
deleteEntity(Entity anEntity)
Saves the given entity.protected void
deleteEntityImpl(Entity anEntity)
Saves the given entity.protected void
deleteFile(WebFile aFile)
Delete file.protected void
deleteFileImpl(WebFile aFile)
Deletes a file.void
deleteRow(Row aRow)
Deletes a given row.protected abstract void
deleteRowImpl(Row aRow)
Deletes a given row.void
deleteSite()
Deletes this data site, assuming it corresponds to something that can be deleted, like a database.void
flush()
Flushes any unsaved changes to backing store.protected void
flushImpl()
Flushes any unsaved changes to backing store.WebClassLoader
getClassLoader()
Returns the DataClassLoader.DataTable
getDataTable(java.lang.String aName)
Returns the DataTable for given namejava.util.List<DataTable>
getDataTables()
Returns the list of known data tables.Entity
getEntity(java.lang.String aName)
Returns the entity for given name.protected Entity
getEntityImpl(java.lang.String aName)
Returns the entity for given name.boolean
getExists()
Returns whether data source exists.WebFile
getFile(java.lang.String aPath)
Returns the individual file with the given path.protected byte[]
getFileBytesImpl(WebFile aFile)
Returns file bytes.protected WebFile
getFileImpl(java.lang.String aPath)
Returns a data source file for given path (if file exists).protected java.util.List<WebFile>
getFilesImpl(WebFile aFile)
Returns a list of files at path.java.lang.String
getHostName()
Returns the host name.java.util.List<java.lang.String>
getJSONKeys()
RMJSONArchiver GetKeys method.long
getModifiedTime(WebFile aFile)
Returns the modified time for a file to underlying file system.java.lang.String
getName()
Returns the name for this data source.java.lang.String
getPassword()
Returns the password.java.lang.String
getPath()
Returns the data source name-space and name in standard path form.java.lang.Object
getProp(java.lang.String aKey)
Returns a file property for key.Request
getRequest(WebURL aURL)
Returns a request object for a URL.Response
getResponse(Request aRequest)
Returns a response instance for a request.WebFile
getRootDirectory()
Returns the root directory.Row
getRow(Entity anEntity, java.lang.Object aPrimaryValue)
Returns a row for a given entity and primary value.Row
getRow(Query aQuery)
Returns a row for given query.protected Row
getRowImpl(Entity anEntity, java.lang.Object aPrimaryValue)
Returns a row for a given entity and primary value.java.util.List<Row>
getRows(Query aQuery)
Returns a set of rows for the given properties and condition.protected abstract java.util.List<Row>
getRowsImpl(Entity anEntity, Query aQuery)
Returns a set of rows for the given properties and condition.WebSite
getSandbox()
Returns a WebSite that can be used for storing persistent support files.Schema
getSchema()
Returns the schema of represented WebSite as a hierarchy of RMEntity and RMProperty objects.WebSite.Servlet
getServlet(WebURL aURL)
Returns the Servlet for URL.protected java.io.File
getStandardFile(WebFile aFile)
Returns a standard java.io.File, if available.WebURL
getURL()
Returns the URL.WebURL
getURL(java.lang.String aPath)
Returns a URL for the given file path.java.lang.String
getURLString()
Returns the URL root.java.lang.String
getUserName()
Returns the user name.protected Response
handleDelete(Request aRequest)
Handle a DELETE request.protected Response
handleGet(Request aRequest)
Handle a get request.protected Response
handleHead(Request aRequest)
Handles a head request.protected Response
handlePut(Request aRequest)
Handle a PUT request.boolean
isRunning()
Returns whether this data source is running background processes.void
propertyChange(java.beans.PropertyChangeEvent anEvent)
Handle property changes on row objects by forwarding to listener.void
refresh()
Clears all cached data in the data source, forcing everything to reload.void
refreshFile(WebFile aFile)
Revert file from saved version.protected void
refreshFileImpl(WebFile aFile)
Reverts a file.void
removeDeepChangeListener(DeepChangeListener aListener)
Removes a deep (property) change listener to get notified when this WebSite sees changes (to files).void
saveEntity(Entity anEntity)
Saves the given entity.protected void
saveEntityImpl(Entity anEntity)
Saves the given entity.protected void
saveFile(WebFile aFile)
Save file.protected void
saveFileImpl(WebFile aFile)
Saves a file.void
saveRow(Row aRow)
Inserts or updates a given row.protected abstract void
saveRowImpl(Row aRow)
Inserts or updates a given row.void
setClassLoader(WebClassLoader aClassLoader)
Sets the DataClassLoader.protected void
setExists(WebFile aFile, boolean aValue)
Sets whether a file exists.void
setModifiedTime(WebFile aFile, long aTime)
Saves the modified time for a file to underlying file system.protected void
setModifiedTimeImpl(WebFile aFile, long aTime)
Saves the modified time for a file to underlying file system.void
setPassword(java.lang.String aPassword)
Sets the password.void
setProp(java.lang.String aKey, java.lang.Object aValue)
Sets a property for a key.void
setSandbox(WebSite aSandbox)
Sets a WebSite that can be used for storing persistent support files.void
setServlet(WebURL aURL, WebSite.Servlet aServlet)
Sets a Servlet for URL.protected void
setURL(WebURL aURL)
Sets the URL.void
setUserName(java.lang.String aName)
Sets the user name.java.lang.String
toString()
Standard toString implementation.-
Methods inherited from class com.inductiveautomation.rm.base.RMObject
addPropertyChangeListener, animUpdate, firePropertyChange, firePropertyChange, firePropertyChange, getPCEvent, removePropertyChangeListener, sendPropertyChange
-
Methods inherited from class com.inductiveautomation.rm.base.RMListenerList
addListener, clone, getListener, getListenerCount, getListenerCount, getListenerList, getListeners, hasListeners, removeListener
-
-
-
-
Field Detail
-
Refresh_Prop
public static final java.lang.String Refresh_Prop
- See Also:
- Constant Field Values
-
-
Method Detail
-
getURL
public WebURL getURL()
Returns the URL.
-
setURL
protected void setURL(WebURL aURL)
Sets the URL.
-
getURLString
public java.lang.String getURLString()
Returns the URL root.
-
getName
public java.lang.String getName()
Returns the name for this data source.
-
getHostName
public java.lang.String getHostName()
Returns the host name.
-
getPath
public java.lang.String getPath()
Returns the data source name-space and name in standard path form.
-
getUserName
public java.lang.String getUserName()
Returns the user name.
-
setUserName
public void setUserName(java.lang.String aName)
Sets the user name.
-
getPassword
public java.lang.String getPassword()
Returns the password.
-
setPassword
public void setPassword(java.lang.String aPassword)
Sets the password.
-
getExists
public boolean getExists()
Returns whether data source exists.
-
getRootDirectory
public WebFile getRootDirectory()
Returns the root directory.
-
getResponse
public Response getResponse(Request aRequest)
Returns a response instance for a request.
-
createFile
public WebFile createFile(java.lang.String aPath, boolean isDirectory)
Returns a new file at the given path, regardless of whether it exists in the data source.
-
getFile
public WebFile getFile(java.lang.String aPath)
Returns the individual file with the given path.
-
saveFile
protected void saveFile(WebFile aFile) throws ResponseException
Save file.- Throws:
ResponseException
-
deleteFile
protected void deleteFile(WebFile aFile) throws ResponseException
Delete file.- Throws:
ResponseException
-
createFileImpl
protected WebFile createFileImpl(java.lang.String aPath, boolean isDirectory)
Creates a new file.
-
getFileImpl
protected WebFile getFileImpl(java.lang.String aPath) throws java.lang.Exception
Returns a data source file for given path (if file exists).- Throws:
java.lang.Exception
-
getFilesImpl
protected java.util.List<WebFile> getFilesImpl(WebFile aFile) throws java.lang.Exception
Returns a list of files at path.- Throws:
java.lang.Exception
-
getFileBytesImpl
protected byte[] getFileBytesImpl(WebFile aFile) throws java.lang.Exception
Returns file bytes.- Throws:
java.lang.Exception
-
saveFileImpl
protected void saveFileImpl(WebFile aFile) throws java.lang.Exception
Saves a file.- Throws:
java.lang.Exception
-
deleteFileImpl
protected void deleteFileImpl(WebFile aFile) throws java.lang.Exception
Deletes a file.- Throws:
java.lang.Exception
-
refreshFile
public void refreshFile(WebFile aFile)
Revert file from saved version.
-
refreshFileImpl
protected void refreshFileImpl(WebFile aFile) throws java.lang.Exception
Reverts a file.- Throws:
java.lang.Exception
-
getModifiedTime
public long getModifiedTime(WebFile aFile)
Returns the modified time for a file to underlying file system.
-
setModifiedTime
public void setModifiedTime(WebFile aFile, long aTime) throws java.lang.Exception
Saves the modified time for a file to underlying file system.- Throws:
java.lang.Exception
-
setModifiedTimeImpl
protected void setModifiedTimeImpl(WebFile aFile, long aTime) throws java.lang.Exception
Saves the modified time for a file to underlying file system.- Throws:
java.lang.Exception
-
setExists
protected void setExists(WebFile aFile, boolean aValue)
Sets whether a file exists.
-
getStandardFile
protected java.io.File getStandardFile(WebFile aFile)
Returns a standard java.io.File, if available.
-
getURL
public WebURL getURL(java.lang.String aPath)
Returns a URL for the given file path.
-
createURL
protected WebURL createURL(java.lang.String aURL)
Creates a URL for string.
-
createSite
public void createSite() throws java.lang.Exception
Creates the data site remote site (database, directory file, etc.).- Throws:
java.lang.Exception
-
deleteSite
public void deleteSite() throws java.lang.Exception
Deletes this data site, assuming it corresponds to something that can be deleted, like a database.- Throws:
java.lang.Exception
-
getSchema
public Schema getSchema()
Returns the schema of represented WebSite as a hierarchy of RMEntity and RMProperty objects.
-
createSchema
protected Schema createSchema()
Creates the schema.
-
createEntity
public Entity createEntity(java.lang.String aName)
Creates an entity for given name.
-
createEntityImpl
protected Entity createEntityImpl(java.lang.String aName)
Returns the entity for given name.
-
getEntity
public Entity getEntity(java.lang.String aName)
Returns the entity for given name.
-
getEntityImpl
protected Entity getEntityImpl(java.lang.String aName) throws java.lang.Exception
Returns the entity for given name.- Throws:
java.lang.Exception
-
saveEntity
public void saveEntity(Entity anEntity) throws java.lang.Exception
Saves the given entity.- Throws:
java.lang.Exception
-
saveEntityImpl
protected void saveEntityImpl(Entity anEntity) throws java.lang.Exception
Saves the given entity.- Throws:
java.lang.Exception
-
deleteEntity
public void deleteEntity(Entity anEntity) throws java.lang.Exception
Saves the given entity.- Throws:
java.lang.Exception
-
deleteEntityImpl
protected void deleteEntityImpl(Entity anEntity) throws java.lang.Exception
Saves the given entity.- Throws:
java.lang.Exception
-
getDataTables
public java.util.List<DataTable> getDataTables()
Returns the list of known data tables.
-
getDataTable
public DataTable getDataTable(java.lang.String aName)
Returns the DataTable for given name
-
createDataTable
protected DataTable createDataTable(java.lang.String aName)
Returns the DataTable for given name.
-
createDataTableImpl
@Nonnull protected DataTable createDataTableImpl()
Creates an instance of DataTable.
-
createRow
@Nonnull public Row createRow(@Nonnull Entity anEntity, @Nullable java.lang.Object aPrimaryValue)
Returns a row for an entity and primary value that is guaranteed to be unique for this data source.
-
createRow
@Nonnull public Row createRow(@Nonnull Entity anEntity, @Nullable java.lang.Object aPrimaryValue, java.util.Map aMap)
Returns a row for an entity and primary value that is guaranteed to be unique for this data source.
-
createRowImpl
@Nonnull protected Row createRowImpl(Entity anEntity, java.lang.Object aPrimaryValue)
Creates a new row for source.
-
getRow
@Nullable public Row getRow(Entity anEntity, java.lang.Object aPrimaryValue)
Returns a row for a given entity and primary value.
-
getRowImpl
@Nullable protected Row getRowImpl(Entity anEntity, java.lang.Object aPrimaryValue)
Returns a row for a given entity and primary value.
-
getRows
@Nonnull public java.util.List<Row> getRows(Query aQuery)
Returns a set of rows for the given properties and condition.
-
getRowsImpl
@Nonnull protected abstract java.util.List<Row> getRowsImpl(Entity anEntity, Query aQuery)
Returns a set of rows for the given properties and condition.
-
saveRow
public void saveRow(Row aRow) throws java.lang.Exception
Inserts or updates a given row.- Throws:
java.lang.Exception
-
saveRowImpl
protected abstract void saveRowImpl(Row aRow) throws java.lang.Exception
Inserts or updates a given row.- Throws:
java.lang.Exception
-
deleteRow
public void deleteRow(Row aRow) throws java.lang.Exception
Deletes a given row.- Throws:
java.lang.Exception
-
deleteRowImpl
protected abstract void deleteRowImpl(Row aRow) throws java.lang.Exception
Deletes a given row.- Throws:
java.lang.Exception
-
bulkImport
public void bulkImport(java.util.Map<java.lang.String,java.util.List<java.util.Map>> theMaps) throws java.lang.Exception
Bulk import.- Throws:
java.lang.Exception
-
getProp
public java.lang.Object getProp(java.lang.String aKey)
Returns a file property for key.
-
setProp
public void setProp(java.lang.String aKey, java.lang.Object aValue)
Sets a property for a key.
-
getSandbox
@Nonnull public WebSite getSandbox()
Returns a WebSite that can be used for storing persistent support files.
-
setSandbox
public void setSandbox(WebSite aSandbox)
Sets a WebSite that can be used for storing persistent support files.
-
createSandbox
@Nonnull protected WebSite createSandbox()
Creates a WebSite that can be used for storing persistent support files.
-
createSandboxURL
@Nonnull protected WebURL createSandboxURL()
Creates a WebSite that can be used for storing persistent support files.
-
createSandboxURLS
protected java.lang.String createSandboxURLS()
Creates a WebSite that can be used for storing persistent support files.
-
getServlet
public WebSite.Servlet getServlet(WebURL aURL)
Returns the Servlet for URL.
-
setServlet
public void setServlet(WebURL aURL, WebSite.Servlet aServlet)
Sets a Servlet for URL.
-
getClassLoader
public WebClassLoader getClassLoader()
Returns the DataClassLoader.
-
setClassLoader
public void setClassLoader(WebClassLoader aClassLoader)
Sets the DataClassLoader.
-
createClassLoader
protected WebClassLoader createClassLoader()
Creates the DataClassLoader.
-
isRunning
public boolean isRunning()
Returns whether this data source is running background processes.
-
addDeepChangeListener
public void addDeepChangeListener(DeepChangeListener aListener)
Adds a deep (property) change listener to get notified when this WebSite sees changes (to files).
-
removeDeepChangeListener
public void removeDeepChangeListener(DeepChangeListener aListener)
Removes a deep (property) change listener to get notified when this WebSite sees changes (to files).
-
propertyChange
public void propertyChange(java.beans.PropertyChangeEvent anEvent)
Handle property changes on row objects by forwarding to listener.- Specified by:
propertyChange
in interfacejava.beans.PropertyChangeListener
-
refresh
public void refresh()
Clears all cached data in the data source, forcing everything to reload.
-
flush
public void flush() throws java.lang.Exception
Flushes any unsaved changes to backing store.- Throws:
java.lang.Exception
-
flushImpl
protected void flushImpl() throws java.lang.Exception
Flushes any unsaved changes to backing store.- Throws:
java.lang.Exception
-
getJSONKeys
public java.util.List<java.lang.String> getJSONKeys()
RMJSONArchiver GetKeys method.- Specified by:
getJSONKeys
in interfaceRMJSONArchiver.GetKeys
-
-