First test code

This commit is contained in:
jeffcheasey88 2023-10-14 23:37:11 +02:00
parent a8c740156c
commit b2c26c0e19
3 changed files with 83 additions and 51 deletions

Binary file not shown.

View file

@ -1,23 +1,56 @@
package dev.peerat.mapping; package dev.peerat.mapping;
import java.util.List;
import java.util.function.Consumer; import java.util.function.Consumer;
import java.util.function.Function;
public class TreasureCache { public class TreasureCache<T> {
/**
* Badge b = Badge.load("myTest");
* Badge b = new Badge("test");
*
* b.delete();
* b.updatu();
*
*
*/
private static void breaker(){
throw new IllegalAccessError("Please use Peer@ORM's annotation processor !");
}
//SELECT id from players where name = 'test' //SELECT id from players where name = 'test'
public static void Keep(Object... fields){ public static void Keep(Object... fields){
throw new IllegalAccessError(); breaker();
} }
public static <T> TreasureCache Select(Consumer<T> keep){ public static <T> TreasureCache<T> select(Consumer<T> keep){
return new TreasureCache(); return new TreasureCache<T>();
} }
private TreasureCache(){ private TreasureCache(){
throw new IllegalAccessError(); breaker();
} }
public T get(){
breaker();
return null;
}
public List<T> toList(){
breaker();
return null;
}
public TreasureCache<T> where(Function<T, Boolean> codition){
breaker();
return null;
}
public TreasureCache<T> join(){
breaker();
return null;
}
} }

View file

@ -1,11 +1,8 @@
package dev.peerat.mapping; package dev.peerat.mapping;
import java.io.File; import java.io.IOException;
import java.io.FileWriter;
import java.io.Writer;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashSet; import java.util.HashSet;
import java.util.Map.Entry;
import java.util.Set; import java.util.Set;
import javax.annotation.processing.AbstractProcessor; import javax.annotation.processing.AbstractProcessor;
@ -15,11 +12,9 @@ import javax.lang.model.SourceVersion;
import javax.lang.model.element.Element; import javax.lang.model.element.Element;
import javax.lang.model.element.TypeElement; import javax.lang.model.element.TypeElement;
import javax.tools.Diagnostic.Kind; import javax.tools.Diagnostic.Kind;
import javax.tools.FileObject;
import javax.tools.StandardLocation; import javax.tools.StandardLocation;
public class TreasureProcessor extends AbstractProcessor { public class TreasureProcessor extends AbstractProcessor{
@Override @Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv){ public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv){
@ -28,52 +23,56 @@ public class TreasureProcessor extends AbstractProcessor {
for(TypeElement annotation : annotations){ for(TypeElement annotation : annotations){
for(Element element : roundEnv.getElementsAnnotatedWith(annotation)){ 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; // for(Entry<String, String> opt : processingEnv.getOptions().entrySet()){
try { // messager.printMessage(Kind.WARNING, opt.getKey()+" -> "+opt.getValue(), element);
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()){ // File file = null;
messager.printMessage(Kind.WARNING, "["+roundEnv.processingOver()+"] I was created it", element); // try {
return true; // 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()){
file = new File(resource.toUri().toString().substring(6)+"/be/jeffcheasey88/peeratcode/model/Badge.java"); // messager.printMessage(Kind.WARNING, "["+roundEnv.processingOver()+"] I was created it", element);
if(!file.exists()){ // return true;
File parent = file.getParentFile(); // }
if(!parent.exists()) parent.mkdirs(); //
file.createNewFile(); // file = new File(resource.toUri().toString().substring(6)+"/be/jeffcheasey88/peeratcode/model/Badge.java");
} // if(!file.exists()){
// File parent = file.getParentFile();
Writer writer = new FileWriter(file); // if(!parent.exists()) parent.mkdirs();
writer.append("package be.jeffcheasey88.peeratcode.model;\n\n"); // file.createNewFile();
writer.append("public class Badge extends TreasureInABottle{\n"); // }
writer.append("public Badge(){}\n"); //
writer.append("public static int getBadge(int player){ return context; }\n"); // Writer writer = new FileWriter(file);
writer.append("}\n"); // writer.append("package be.jeffcheasey88.peeratcode.model;\n\n");
writer.flush(); // writer.append("public class Badge extends TreasureInABottle{\n");
writer.close(); // writer.append("public Badge(){}\n");
// writer.append("public static int getBadge(int player){ return context; }\n");
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")); // writer.append("}\n");
p.waitFor(); // writer.flush();
// writer.close();
file.delete(); //
// 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"));
messager.printMessage(Kind.WARNING, "["+roundEnv.processingOver()+"] We created it !", element); // p.waitFor();
} catch (Exception e) { //
e.printStackTrace(); // file.delete();
messager.printMessage(Kind.WARNING, "["+roundEnv.processingOver()+"] We not created it ! ("+file+") "+e.getMessage(), element); //
} // 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; return true;
} }
private void rework(){
}
@Override @Override
public Set<String> getSupportedAnnotationTypes(){ public Set<String> getSupportedAnnotationTypes(){
return new HashSet<>(Arrays.asList(Treasure.class.getCanonicalName())); return new HashSet<>(Arrays.asList(Treasure.class.getCanonicalName()));