First Commit, ORM V1
This commit is contained in:
commit
3f80808e9c
6 changed files with 115 additions and 0 deletions
7
.classpath
Normal file
7
.classpath
Normal file
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="lib" path="PeerAtCodeParser.jar"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
.settings/
|
||||
bin/
|
||||
.project
|
BIN
PeerAtCodeParser.jar
Normal file
BIN
PeerAtCodeParser.jar
Normal file
Binary file not shown.
|
@ -0,0 +1 @@
|
|||
be.jeffcheasey88.peeratcode.mapping.TreasureProcessor
|
12
src/be/jeffcheasey88/peeratcode/mapping/Treasure.java
Normal file
12
src/be/jeffcheasey88/peeratcode/mapping/Treasure.java
Normal file
|
@ -0,0 +1,12 @@
|
|||
package be.jeffcheasey88.peeratcode.mapping;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
@Target(ElementType.TYPE)
|
||||
public @interface Treasure {
|
||||
|
||||
}
|
|
@ -0,0 +1,92 @@
|
|||
package be.jeffcheasey88.peeratcode.mapping;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.io.Writer;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.annotation.processing.AbstractProcessor;
|
||||
import javax.annotation.processing.Messager;
|
||||
import javax.annotation.processing.RoundEnvironment;
|
||||
import javax.lang.model.SourceVersion;
|
||||
import javax.lang.model.element.Element;
|
||||
import javax.lang.model.element.TypeElement;
|
||||
import javax.tools.Diagnostic.Kind;
|
||||
import javax.tools.FileObject;
|
||||
import javax.tools.StandardLocation;
|
||||
|
||||
public class TreasureProcessor extends AbstractProcessor {
|
||||
|
||||
@Override
|
||||
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv){
|
||||
|
||||
Messager messager = processingEnv.getMessager();
|
||||
|
||||
|
||||
for(TypeElement annotation : annotations){
|
||||
for(Element element : roundEnv.getElementsAnnotatedWith(annotation)){
|
||||
messager.printMessage(Kind.WARNING, "["+roundEnv.processingOver()+"] I tried", element);
|
||||
for(Entry<String, String> opt : processingEnv.getOptions().entrySet()){
|
||||
messager.printMessage(Kind.WARNING, opt.getKey()+" -> "+opt.getValue(), element);
|
||||
}
|
||||
|
||||
File file = null;
|
||||
try {
|
||||
// FileObject resource = processingEnv.getFiler().getResource(StandardLocation.CLASS_OUTPUT, "", "");
|
||||
// messager.printMessage(Kind.WARNING, resource.toUri().toString(), element);
|
||||
// resource.delete();
|
||||
|
||||
FileObject resource = processingEnv.getFiler().getResource(StandardLocation.SOURCE_OUTPUT, "", "");
|
||||
File clazz = new File(resource.toUri().toString().substring(6)+"/be/jeffcheasey88/peeratcode/model/Badge.class");
|
||||
if(clazz.exists()){
|
||||
messager.printMessage(Kind.WARNING, "["+roundEnv.processingOver()+"] I was created it", element);
|
||||
return true;
|
||||
}
|
||||
|
||||
file = new File(resource.toUri().toString().substring(6)+"/be/jeffcheasey88/peeratcode/model/Badge.java");
|
||||
if(!file.exists()){
|
||||
File parent = file.getParentFile();
|
||||
if(!parent.exists()) parent.mkdirs();
|
||||
file.createNewFile();
|
||||
}
|
||||
|
||||
// JavaFileObject resource = processingEnv.getFiler().createSourceFile("be/jeffcheasey88/peeratcode/model/"+element.getSimpleName());
|
||||
Writer writer = new FileWriter(file);
|
||||
writer.append("package be.jeffcheasey88.peeratcode.model;\n\n");
|
||||
writer.append("public class Badge{\n");
|
||||
writer.append("public Badge(){ }\n");
|
||||
writer.append("}\n");
|
||||
writer.flush();
|
||||
writer.close();
|
||||
|
||||
Process p = Runtime.getRuntime().exec("javac be/jeffcheasey88/peeratcode/model/Badge.java", new String[0], new File("C:\\Users\\jeffc\\eclipse-workspace\\peer-at-code-backend\\.generated"));
|
||||
p.waitFor();
|
||||
|
||||
file.delete();
|
||||
|
||||
// Runtime.getRuntime().exec("copy /Y \"C:\\Users\\jeffc\\eclipse-workspace\\peer-at-code-backend\\.generated\\be\\jeffcheasey88\\peeratcode\\model\\Badge.class\" \"./../bin/be/jeffcheasey88/peeratcode/model/Badge.class\"").waitFor();
|
||||
|
||||
messager.printMessage(Kind.WARNING, "["+roundEnv.processingOver()+"] We created it !", element);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
messager.printMessage(Kind.WARNING, "["+roundEnv.processingOver()+"] We not created it ! ("+file+") "+e.getMessage(), element);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getSupportedAnnotationTypes(){
|
||||
return new HashSet<>(Arrays.asList(Treasure.class.getCanonicalName()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public SourceVersion getSupportedSourceVersion(){
|
||||
return SourceVersion.RELEASE_8;
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue