diff --git a/PeerAtCodeParser.jar b/PeerAtCodeParser.jar index ab9fe8f..a480240 100644 Binary files a/PeerAtCodeParser.jar and b/PeerAtCodeParser.jar differ diff --git a/src/dev/peerat/mapping/TreasureCache.java b/src/dev/peerat/mapping/TreasureCache.java index 61ca7b4..b7fdbd1 100644 --- a/src/dev/peerat/mapping/TreasureCache.java +++ b/src/dev/peerat/mapping/TreasureCache.java @@ -4,7 +4,7 @@ import java.util.List; import java.util.function.Consumer; import java.util.function.Function; -public class TreasureCache { +public class TreasureCache{ public static void main(String[] args) { @@ -34,6 +34,10 @@ public class TreasureCache { return new TreasureCache(); } + public static TreasureCache selectAll(){ + return new TreasureCache<>(); + } + private TreasureCache(){ breaker(); } @@ -48,11 +52,6 @@ public class TreasureCache { return null; } - public TreasureCache where(Function codition){ - breaker(); - return null; - } - public TreasureCache join(){ breaker(); return null; @@ -62,4 +61,29 @@ public class TreasureCache { breaker(); return null; } + + public TreasureCache filter(Function codition){ + breaker(); + return null; + } + + public TreasureCache distinct(){ + breaker(); + return null; + } + + public TreasureCache limit(){ + breaker(); + return null; + } + + public TreasureCache sort(){ //todo + breaker(); + return null; + } + + public TreasureCache limit(int limit){ + breaker(); + return null; + } } diff --git a/src/dev/peerat/mapping/TreasureProcessor.java b/src/dev/peerat/mapping/TreasureProcessor.java index 98e352a..4fffc74 100644 --- a/src/dev/peerat/mapping/TreasureProcessor.java +++ b/src/dev/peerat/mapping/TreasureProcessor.java @@ -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 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 classes : map.entrySet()){ + List 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 PARSER = new JavaParser(); - private void parseClazz(File source, File output, File file) throws Exception{ + private void parseClazz(File source, File output, File file, Map 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())); } diff --git a/src/dev/peerat/mapping/providers/ProviderMapper.java b/src/dev/peerat/mapping/providers/ProviderMapper.java new file mode 100644 index 0000000..ef6b80b --- /dev/null +++ b/src/dev/peerat/mapping/providers/ProviderMapper.java @@ -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); +} diff --git a/src/dev/peerat/mapping/providers/mysql/MySQlProvider.java b/src/dev/peerat/mapping/providers/mysql/MySQlProvider.java new file mode 100644 index 0000000..83aefb5 --- /dev/null +++ b/src/dev/peerat/mapping/providers/mysql/MySQlProvider.java @@ -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 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){ + + } + +}