Base provider & add Cache methods

This commit is contained in:
jeffcheasey88 2023-11-06 15:13:33 +01:00
parent 7c6b2a0e23
commit cae620d11f
5 changed files with 99 additions and 11 deletions

Binary file not shown.

View file

@ -4,7 +4,7 @@ import java.util.List;
import java.util.function.Consumer;
import java.util.function.Function;
public class TreasureCache<T> {
public class TreasureCache<T>{
public static void main(String[] args) {
@ -34,6 +34,10 @@ public class TreasureCache<T> {
return new TreasureCache<T>();
}
public static <T> TreasureCache<T> selectAll(){
return new TreasureCache<>();
}
private TreasureCache(){
breaker();
}
@ -48,11 +52,6 @@ public class TreasureCache<T> {
return null;
}
public TreasureCache<T> where(Function<T, Boolean> codition){
breaker();
return null;
}
public <J> TreasureCache<J> join(){
breaker();
return null;
@ -62,4 +61,29 @@ public class TreasureCache<T> {
breaker();
return null;
}
public TreasureCache<T> filter(Function<T, Boolean> codition){
breaker();
return null;
}
public TreasureCache<T> distinct(){
breaker();
return null;
}
public TreasureCache<T> limit(){
breaker();
return null;
}
public TreasureCache<T> sort(){ //todo
breaker();
return null;
}
public TreasureCache<T> limit(int limit){
breaker();
return null;
}
}

View file

@ -7,8 +7,11 @@ import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import javax.annotation.processing.AbstractProcessor;
@ -28,6 +31,8 @@ import dev.peerat.parser.java.Function;
import dev.peerat.parser.java.JavaElement;
import dev.peerat.parser.java.JavaFile;
import dev.peerat.parser.java.JavaParser;
import dev.peerat.parser.java.Operation;
import dev.peerat.parser.java.Value;
import dev.peerat.parser.java.operation.ReturnOperation;
public class TreasureProcessor extends AbstractProcessor{
@ -53,21 +58,29 @@ public class TreasureProcessor extends AbstractProcessor{
return false;
}
Map<File, JavaFile> map = new HashMap<>();
for(File workingDirectory : workingDir){
try {
parseClazz(workingDirectory, output, workingDirectory);
parseClazz(workingDirectory, output, workingDirectory, map);
}catch(Exception ex){
annotations.forEach((a) -> roundEnv.getElementsAnnotatedWith(a).forEach((e) -> processingEnv.getMessager().printMessage(Kind.ERROR, ex.getMessage(), e)));
}
}
return true;
for(Entry<File, JavaFile> classes : map.entrySet()){
List<Operation> values = new ArrayList<>();
classes.getValue().findAll((e) -> e instanceof Operation, values);
if(values.size() < 1) continue;
// annotations.forEach((a) -> roundEnv.getElementsAnnotatedWith(a).forEach((e) -> processingEnv.getMessager().printMessage(Kind.ERROR, classes.getKey().getName()+" | "+values, e)));
//ship
}
return true;
}
private static final Parser<JavaElement> PARSER = new JavaParser();
private void parseClazz(File source, File output, File file) throws Exception{
private void parseClazz(File source, File output, File file, Map<File, JavaFile> map) throws Exception{
if(file.isDirectory()){
for(File child : file.listFiles()) parseClazz(source, output, child);
for(File child : file.listFiles()) parseClazz(source, output, child, map);
return;
}
if(!file.getName().endsWith(".java")) return;
@ -77,7 +90,8 @@ public class TreasureProcessor extends AbstractProcessor{
TokenValidator.TOKENS = 0;
TokenValidator.MAX_VALIDATE = 0;
PARSER.parse(reader, javaFile);
process(source, output, file, javaFile);
map.put(file, javaFile);
// process(source, output, file, javaFile);
}catch(Exception ex){
error(source, output, file, new Exception(file.getName()+" | "+ex.getMessage()));
}

View file

@ -0,0 +1,13 @@
package dev.peerat.mapping.providers;
import dev.peerat.parser.java.Class;
import dev.peerat.parser.java.Function;
public interface ProviderMapper{
void mapTreasure(Class clazz);
void mapBottle(Class clazz, Function function);
void mapUses(Class clazz, Function function);
}

View file

@ -0,0 +1,37 @@
package dev.peerat.mapping.providers.mysql;
import java.util.ArrayList;
import java.util.List;
import dev.peerat.mapping.providers.ProviderMapper;
import dev.peerat.parser.java.Class;
import dev.peerat.parser.java.Function;
import dev.peerat.parser.java.Value;
import dev.peerat.parser.java.operation.ReturnOperation;
public class MySQlProvider implements ProviderMapper{
private List<String> treasures;
public MySQlProvider(){
this.treasures = new ArrayList<>();
}
@Override
public void mapTreasure(Class clazz){
treasures.add(clazz.getName().getValue());
}
@Override
public void mapBottle(Class clazz, Function function){
ReturnOperation operation = (ReturnOperation) function.getElements().get(0);
Value value = operation.getValue();
}
@Override
public void mapUses(Class clazz, Function function){
}
}