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;
import java.util.List;
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'
public static void Keep(Object... fields){
throw new IllegalAccessError();
breaker();
}
public static <T> TreasureCache Select(Consumer<T> keep){
return new TreasureCache();
public static <T> TreasureCache<T> select(Consumer<T> keep){
return new TreasureCache<T>();
}
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;
import java.io.File;
import java.io.FileWriter;
import java.io.Writer;
import java.io.IOException;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Map.Entry;
import java.util.Set;
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.TypeElement;
import javax.tools.Diagnostic.Kind;
import javax.tools.FileObject;
import javax.tools.StandardLocation;
public class TreasureProcessor extends AbstractProcessor {
public class TreasureProcessor extends AbstractProcessor{
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv){
@ -28,52 +23,56 @@ public class TreasureProcessor extends AbstractProcessor {
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.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();
}
Writer writer = new FileWriter(file);
writer.append("package be.jeffcheasey88.peeratcode.model;\n\n");
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.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();
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);
}
// 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.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();
// }
//
// Writer writer = new FileWriter(file);
// writer.append("package be.jeffcheasey88.peeratcode.model;\n\n");
// 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.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();
//
// 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;
}
private void rework(){
}
@Override
public Set<String> getSupportedAnnotationTypes(){
return new HashSet<>(Arrays.asList(Treasure.class.getCanonicalName()));