JavaCompiler_Eclipse.st
branchdirectory_structure_refactoring
changeset 1818 2e5ed72e7dfd
parent 1449 797c2aa3bbce
child 1864 60a8dc26c8c6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/JavaCompiler_Eclipse.st	Thu Nov 15 22:10:02 2012 +0000
@@ -0,0 +1,139 @@
+"
+ COPYRIGHT (c) 1996-2011 by Claus Gittinger
+
+ New code and modifications done at SWING Research Group [1]:
+
+ COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
+                            SWING Research Group, Czech Technical University in Prague
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice.   This software may not
+ be provided or otherwise made available to, or used by, any
+ other person.  No title to or ownership of the software is
+ hereby transferred.
+
+ [1] Code written at SWING Research Group contains a signature
+     of one of the above copright owners. For exact set of such code,
+     see the differences between this version and version stx:libjava
+     as of 1.9.2010
+"
+"{ Package: 'stx:libjava' }"
+
+Object subclass:#JavaCompiler_Eclipse
+	instanceVariableNames:''
+	classVariableNames:'ECJCompilerClass'
+	poolDictionaries:''
+	category:'Languages-Java-Tools-Eclipse'
+!
+
+!JavaCompiler_Eclipse class methodsFor:'documentation'!
+
+copyright
+"
+ COPYRIGHT (c) 1996-2011 by Claus Gittinger
+
+ New code and modifications done at SWING Research Group [1]:
+
+ COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
+                            SWING Research Group, Czech Technical University in Prague
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice.   This software may not
+ be provided or otherwise made available to, or used by, any
+ other person.  No title to or ownership of the software is
+ hereby transferred.
+
+ [1] Code written at SWING Research Group contains a signature
+     of one of the above copright owners. For exact set of such code,
+     see the differences between this version and version stx:libjava
+     as of 1.9.2010
+
+"
+!
+
+history
+
+    "Created: / 02-04-2012 / 10:35:35 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+    "Created: #initialize / 02-04-2012 / 10:46:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+    "Created: #initCompiler: / 02-04-2012 / 13:16:37 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+    "Created: #compilerEnvironment / 02-04-2012 / 13:18:53 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+    "Created: #compile: / 02-04-2012 / 13:21:25 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+! !
+
+!JavaCompiler_Eclipse class methodsFor:'compiling'!
+
+compile: compilationUnit 
+    ^self new compile: compilationUnit.
+
+    "Created: / 02-04-2012 / 13:21:25 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+! !
+
+!JavaCompiler_Eclipse methodsFor:'compiling'!
+
+compilationResultFor: compilationUnit 
+    ^ (Java classForName: 'org.eclipse.jdt.internal.compiler.CompilationResult') 
+        new: compilationUnit
+        with: 0
+        with: 0
+        with: 0.
+
+    "Modified: / 03-04-2012 / 12:39:20 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+!
+
+compile: compilationUnit 
+    | compiler  compEnv  policy  options  requestor  problemFactory |
+    compEnv := self compilerEnvironment.
+    policy := self policy.
+    options := self compilerOptions.
+    requestor := self compilationResultFor: compilationUnit.
+    problemFactory := self problemFactory.
+     "Do not use cached Java class - think about #flushAllJavaResources"
+    compiler := (JAVA org eclipse jdt internal compiler Compiler) 
+            new: compEnv
+            with: policy
+            with: options
+            with: requestor
+            with: problemFactory.
+    compiler compile: compilationUnit.
+    self breakPoint: #mh.
+    ^ requestor getClassFiles.
+
+    "Created: / 02-04-2012 / 13:18:22 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+    "Modified: / 02-04-2012 / 18:42:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (format): / 03-04-2012 / 11:49:28 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+!
+
+compilerEnvironment
+    ^ (JAVA stx libjava tools LibjavaCompilerEnv) new.
+
+    "Created: / 02-04-2012 / 13:18:53 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+!
+
+compilerOptions
+    ^ (Java classForName: 'org.eclipse.jdt.internal.compiler.impl.CompilerOptions') new.
+
+    "Modified: / 03-04-2012 / 12:40:48 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+!
+
+policy
+    ^ (Java classForName: 'org.eclipse.jdt.internal.compiler.DefaultErrorHandlingPolicies') 
+        exitOnFirstError.
+
+    "Modified: / 03-04-2012 / 12:39:54 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+!
+
+problemFactory
+    ^ (JAVA
+        org eclipse jdt internal compiler problem DefaultProblemFactory) 
+            new.
+
+    "Modified: / 03-04-2012 / 12:27:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+! !
+
+!JavaCompiler_Eclipse class methodsFor:'documentation'!
+
+version_SVN
+    ^ '$Id::                                                                                                                        $'
+! !