|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectkieker.webgui.persistence.impl.FSProjectDAOImpl
@Service public final class FSProjectDAOImpl
This is an implementation of the IProjectDAO interface, which uses the file system to store the available projects and everything.
| Constructor Summary | |
|---|---|
FSProjectDAOImpl()
Default constructor. |
|
| Method Summary | |
|---|---|
void |
addProject(String projectName,
String username)
This method adds a new project to the application. |
void |
copyProject(String originalProjectName,
String newProjectName)
This method makes a copy of a project and saves it under another name. |
boolean |
deleteLibrary(String projectName,
String libName)
Deletes the given library of the given project. |
String |
getAnalysisLayout(String projectName)
Delivers the stored analysis layout for the given project. |
ComponentListContainer |
getAvailableComponents(String project)
Delivers the available components (readers, filters and repositories) for the given project. |
ClassLoader |
getClassLoader(String projectName,
Object requester)
This method delivers a class loader containing the currently available libraries of the given project. |
String |
getCockpitLayout(String projectName)
Delivers the stored cockpit layout for the given project. |
long |
getCurrTimeStamp(String projectName)
Delivers the current time stamp of the given project. |
String |
getLastUser(String projectName)
Delivers the last user of the given project or a substitution if the meta data is corrupt or missing. |
String |
getOwner(String projectName)
Delivers the owner of the given project or a substitution if the meta data is corrupt or missing. |
File |
getProjectFile(String projectName)
Delivers the kax-file for the given project. |
void |
importProject(String projectName,
String username,
org.primefaces.model.UploadedFile file)
This method imports an existing kax-file into the application. |
void |
initialize()
This method initializes the object. |
List<String> |
listAllLibraries(String projectName)
This method lists all available libraries of the given project. |
Collection<String> |
listAllProjects()
This method lists all available projects on the file system. |
kieker.analysis.model.analysisMetaModel.MIProject |
loadProject(String projectName)
This method loads the kax-file for the given project name and delivers an initializes instance of MIProject. |
Object |
loadProject(String projectName,
ClassContainer classAndMethodContainer)
This method loads the kax-file for the given project name and delivers an initializes instance of MIProject - but instead of using the "normal" class
loader, it uses the methods and classes stored in the given instance of ClassContainer. |
void |
released()
|
void |
removeProject(String projectName)
This method removes the given project from the application. |
void |
saveProject(String projectName,
kieker.analysis.model.analysisMetaModel.MIProject project,
long timeStamp,
boolean overwriteNewerProject,
String username,
String analysisLayout,
String cockpitLayout)
This method tries to save the given model instance for the given project. |
void |
uploadLibrary(org.primefaces.model.UploadedFile file,
String projectName)
This method tries to upload a dependency to the given project. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public FSProjectDAOImpl()
| Method Detail |
|---|
@PostConstruct
public void initialize()
throws IOException
IOException - If either the creation of the necessary directories failed or if something went wrong during the initialization of the projects.public File getProjectFile(String projectName)
IProjectDAO
getProjectFile in interface IProjectDAOprojectName - The name of the project.
public String getAnalysisLayout(String projectName)
IProjectDAO
getAnalysisLayout in interface IProjectDAOprojectName - The name of the project.
public String getCockpitLayout(String projectName)
IProjectDAO
getCockpitLayout in interface IProjectDAOprojectName - The name of the project.
public String getOwner(String projectName)
IProjectDAO
getOwner in interface IProjectDAOprojectName - The name of the project whose owner should be delivered.
public String getLastUser(String projectName)
IProjectDAO
getLastUser in interface IProjectDAOprojectName - The name of the project whose last user should be delivered.
public void removeProject(String projectName)
throws IOException,
ProjectNotExistingException
IProjectDAO
removeProject in interface IProjectDAOprojectName - The name of the project.
IOException - If something went wrong during the removing.
ProjectNotExistingException - If a project with the given name does not exist.
public void addProject(String projectName,
String username)
throws ProjectAlreadyExistingException,
IOException
IProjectDAOIOException, it will make sure that the project-directories will be removed as if the method would never have been called.
addProject in interface IProjectDAOprojectName - The name of the new project.username - The name of the user who created the project.
ProjectAlreadyExistingException - If a project with the same name exists already.
IOException - If something went wrong during the creation of the project.
public void importProject(String projectName,
String username,
org.primefaces.model.UploadedFile file)
throws ProjectAlreadyExistingException,
IOException
IProjectDAO
importProject in interface IProjectDAOprojectName - The name of the new project.username - The name of the user who imported the project.file - The kax file to be uploaded.
ProjectAlreadyExistingException - If a project with the same name exists already.
IOException - If something went wrong during the creation of the project or the uploading of the file.
public void copyProject(String originalProjectName,
String newProjectName)
throws ProjectNotExistingException,
ProjectAlreadyExistingException,
IOException
IProjectDAOIOException, it will make sure that the
project-directories of the destination-project will be removed as if the method would never have been called.
copyProject in interface IProjectDAOoriginalProjectName - The name of the source project.newProjectName - The name of the target project.
ProjectNotExistingException - If a project with the given (source) name doesn't exist.
ProjectAlreadyExistingException - If a project with the same (target) name exists already.
IOException - If something went wrong during the creation of the target-project or during the loading of the source-project.
public kieker.analysis.model.analysisMetaModel.MIProject loadProject(String projectName)
throws ProjectNotExistingException,
IOException
IProjectDAOMIProject.
loadProject in interface IProjectDAOprojectName - The name of the project to be loaded.
ProjectNotExistingException - If a project with the given (source) name doesn't exist.
IOException - If something went wrong during the opening of the project.
public Object loadProject(String projectName,
ClassContainer classAndMethodContainer)
throws ProjectNotExistingException,
IOException
IProjectDAOMIProject - but instead of using the "normal" class
loader, it uses the methods and classes stored in the given instance of ClassContainer. This means that this method does return an
instance of MIProject, but the one defined in the container. This is also the reason why this method has to return an Object-instance.
loadProject in interface IProjectDAOprojectName - The name of the project to be loaded.classAndMethodContainer - The container, which will be used to load the project instance.
ProjectNotExistingException - If a project with the given (source) name doesn't exist.
IOException - If something went wrong during the opening of the project. This can also mean that the given ClassContainer is somehow invalid.
public void saveProject(String projectName,
kieker.analysis.model.analysisMetaModel.MIProject project,
long timeStamp,
boolean overwriteNewerProject,
String username,
String analysisLayout,
String cockpitLayout)
throws ProjectNotExistingException,
IOException,
NewerProjectException
IProjectDAONewerProjectException will be thrown. If
something goes wrong during the storage, it is not guaranteed that the resulting file will be valid.
saveProject in interface IProjectDAOprojectName - The name of the project which has to be saved.project - The model instance to be stored in the corresponding kax-file.timeStamp - The time stamp which has to be compared with the "real" time stamp of the project.overwriteNewerProject - Determines whether a newer project file will be overwritten without further warning or not.username - The name of the user who saves the project.analysisLayout - The current layout of the analysis graph. It is valid if this parameter is null. In this case the stored layout will not be changed.cockpitLayout - The current layout of the cockpit. It is valid if this parameter is null. In this case the stored layout will not be changed.
ProjectNotExistingException - If a project with the given name does not exist.
IOException - If something went wrong during the storage of the model instance.
NewerProjectException - If the project on the file system is newer and the overwriteNewerProject-flag has not been set.
public long getCurrTimeStamp(String projectName)
throws ProjectNotExistingException
IProjectDAO
getCurrTimeStamp in interface IProjectDAOprojectName - The name of the project whose time stamp will be delivered.
ProjectNotExistingException - If a project with the given name does not exist.
public void uploadLibrary(org.primefaces.model.UploadedFile file,
String projectName)
throws ProjectNotExistingException,
IOException
IProjectDAO
uploadLibrary in interface IProjectDAOfile - The file to be uploaded to the project.projectName - The name of the project.
ProjectNotExistingException - If a project with the given name does not exist.
IOException - If something went wrong during the uploading.
public ClassLoader getClassLoader(String projectName,
Object requester)
throws ProjectNotExistingException,
IOException
IProjectDAO
getClassLoader in interface IProjectDAOprojectName - The name of the project.requester - The requester of the classloader.
ProjectNotExistingException - If a project with the given name does not exist.
IOException - If something went wrong during the initialization of the class loader.
public List<String> listAllLibraries(String projectName)
throws ProjectNotExistingException
IProjectDAO
listAllLibraries in interface IProjectDAOprojectName - The name of the project whose libraries have to be delivered.
ProjectNotExistingException - If a project with the given name does not exist.public Collection<String> listAllProjects()
IProjectDAO
listAllProjects in interface IProjectDAOpublic ComponentListContainer getAvailableComponents(String project)
IProjectDAO
getAvailableComponents in interface IProjectDAOproject - The project whose components should be loaded.
public boolean deleteLibrary(String projectName,
String libName)
throws IOException,
ProjectNotExistingException
IProjectDAO
deleteLibrary in interface IProjectDAOprojectName - The name of the project.libName - The name of the library.
IOException - If something went wrong during the reloading of the components.
ProjectNotExistingException - If a project with the given name does not exist.public void released()
released in interface org.springframework.util.WeakReferenceMonitor.ReleaseListener
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||