aboutsummaryrefslogtreecommitdiffstats
path: root/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/workspace/ProjectWorkspace.xtend
diff options
context:
space:
mode:
authorLibravatar OszkarSemerath <oszka@152.66.252.189>2017-06-10 19:05:05 +0200
committerLibravatar OszkarSemerath <oszka@152.66.252.189>2017-06-10 19:05:05 +0200
commit60f01f46ba232ed6416054f0a6115cb2a9b70b4e (patch)
tree5edf8aeb07abc51f3fec63bbd15c926e1de09552 /Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/workspace/ProjectWorkspace.xtend
parentInitial commit, migrating from SVN (diff)
downloadVIATRA-Generator-60f01f46ba232ed6416054f0a6115cb2a9b70b4e.tar.gz
VIATRA-Generator-60f01f46ba232ed6416054f0a6115cb2a9b70b4e.tar.zst
VIATRA-Generator-60f01f46ba232ed6416054f0a6115cb2a9b70b4e.zip
Migrating Additional projects
Diffstat (limited to 'Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/workspace/ProjectWorkspace.xtend')
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/workspace/ProjectWorkspace.xtend105
1 files changed, 105 insertions, 0 deletions
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/workspace/ProjectWorkspace.xtend b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/workspace/ProjectWorkspace.xtend
new file mode 100644
index 00000000..5703bd5a
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/workspace/ProjectWorkspace.xtend
@@ -0,0 +1,105 @@
1package hu.bme.mit.inf.dslreasoner.workspace
2
3import java.io.BufferedReader
4import java.io.ByteArrayInputStream
5import java.io.IOException
6import java.io.InputStreamReader
7import org.eclipse.core.resources.IContainer
8import org.eclipse.core.resources.IFolder
9import org.eclipse.core.resources.IProject
10import org.eclipse.core.resources.IWorkspaceRoot
11import org.eclipse.core.resources.ResourcesPlugin
12import org.eclipse.core.runtime.NullProgressMonitor
13import org.eclipse.emf.common.util.URI
14
15class ProjectWorkspace extends ReasonerWorkspace{
16
17 val monitor = new NullProgressMonitor
18 var IContainer target;
19
20 new(String targetFolder, String prefix) {
21 super(targetFolder, prefix)
22 }
23
24 override protected getURI(String name) {
25 URI.createPlatformResourceURI(targetFolder + "/" + prefix + name,true);
26 }
27
28 def protected getDirUri() {
29 URI.createPlatformResourceURI(targetFolder,true)
30 }
31
32 override getWorkspaceURI() {
33 getDirUri
34 }
35
36 override initAndClear() {
37 target = ResourcesPlugin.workspace.root
38 for(nameSegment : dirUri.segments) {
39 target = createContainer(target,nameSegment)
40 }
41 target.members.forEach[delete(false,monitor)]
42 }
43
44 def protected dispatch createContainer(IWorkspaceRoot root, String name) {
45 val project = root.getProject(name)
46 if(project.exists) {
47 if(!project.open) {
48 project.open(monitor)
49 }
50 } else {
51 project.create(monitor)
52 }
53 return project
54 }
55
56 def protected dispatch createContainer(IProject root, String name) {
57 val folder = root.getFolder(name);
58 if(folder.exists) {
59 folder.create(false,true,monitor)
60 }
61 return folder
62 }
63
64 def protected dispatch createContainer(IFolder root, String name) {
65 val folder = root.getFolder(name);
66 if(folder.exists) {
67 folder.create(false,true,monitor)
68 }
69 return folder
70 }
71
72 def dispatch getTargetFile(IFolder targetFolder, String name) { targetFolder.getFile(name) }
73 def dispatch getTargetFile(IProject targetProject, String name) { targetProject.getFile(name) }
74
75 override writeText(String name, CharSequence content) {
76 val file = target.getTargetFile(name);
77 if(!file.exists()) {
78 file.create(new ByteArrayInputStream(content.toString().getBytes()),true, new NullProgressMonitor());
79 return URI.createPlatformResourceURI(file.projectRelativePath.toString,true)
80 }
81 else throw new IOException("The file is already existing.")
82 }
83
84 override readText(String name) {
85 val file = target.getTargetFile(name)
86 val in = new BufferedReader(new InputStreamReader(file.contents))
87
88 var result = ""
89 var String line;
90
91 while ((line = in.readLine()) != null) {
92 result = result.concat(line)
93 }
94
95 return result
96 }
97
98 override protected renameFile(String name) {
99 throw new UnsupportedOperationException("TODO: auto-generated method stub")
100 }
101
102 override subWorkspace(String targetFolder, String prefix) {
103 throw new UnsupportedOperationException("TODO: auto-generated method stub")
104 }
105}