The beginning of modulizing Primitive Collections.
This will be a small rewrite of the "Builder". Why this is done? Basically this library is really big and having the Option to turn of modules that you don't need is really important. And right now enabling/disabling modules is really difficult since everything is merged together. So the first goal is to modularized where everything can be turned on or of as wished.
This commit is contained in:
parent
99e9afe7b1
commit
25a7cd060a
|
@ -2,6 +2,8 @@ package speiger.src.builder;
|
||||||
|
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.LinkedHashSet;
|
import java.util.LinkedHashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
@ -394,6 +396,7 @@ public class GlobalVariables
|
||||||
addSimpleMapper("VALUE_TO_ARRAY", "to"+valueType.getNonFileType()+"Array");
|
addSimpleMapper("VALUE_TO_ARRAY", "to"+valueType.getNonFileType()+"Array");
|
||||||
addSimpleMapper("TO_ARRAY", "to"+type.getNonFileType()+"Array");
|
addSimpleMapper("TO_ARRAY", "to"+type.getNonFileType()+"Array");
|
||||||
addSimpleMapper("[SPACE]", " ");
|
addSimpleMapper("[SPACE]", " ");
|
||||||
|
operators.sort(Comparator.comparing(IMapper::getSearchValue, this::sort));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -419,6 +422,20 @@ public class GlobalVariables
|
||||||
return process;
|
return process;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testComparason(List<String> keys, List<String> values) {
|
||||||
|
List<IMapper> copy = new ArrayList<>(operators);
|
||||||
|
Collections.shuffle(copy);
|
||||||
|
copy.sort(Comparator.comparing(IMapper::getSearchValue, this::sort));
|
||||||
|
operators.stream().map(IMapper::getSearchValue).forEach(keys::add);
|
||||||
|
copy.stream().map(IMapper::getSearchValue).forEach(values::add);
|
||||||
|
}
|
||||||
|
|
||||||
|
private int sort(String key, String value) {
|
||||||
|
if(value.contains(key)) return 1;
|
||||||
|
else if(key.contains(value)) return -1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
public ClassType getType()
|
public ClassType getType()
|
||||||
{
|
{
|
||||||
return type;
|
return type;
|
||||||
|
@ -426,82 +443,82 @@ public class GlobalVariables
|
||||||
|
|
||||||
private void addClassMapper(String pattern, String replacement)
|
private void addClassMapper(String pattern, String replacement)
|
||||||
{
|
{
|
||||||
operators.add(new SimpleMapper(type.name()+"[VALUE_"+pattern+"]", "VALUE_"+pattern, valueType.getFileType()+replacement));
|
operators.add(new SimpleMapper("VALUE_"+pattern, "VALUE_"+pattern, valueType.getFileType()+replacement));
|
||||||
operators.add(new SimpleMapper(type.name()+"["+pattern+"]", pattern, type.getFileType()+replacement));
|
operators.add(new SimpleMapper(pattern, pattern, type.getFileType()+replacement));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addBiClassMapper(String pattern, String replacement, String splitter)
|
private void addBiClassMapper(String pattern, String replacement, String splitter)
|
||||||
{
|
{
|
||||||
operators.add(new SimpleMapper(type.name()+"[KEY_"+pattern+"]", "KEY_"+pattern, type.getFileType()+splitter+type.getFileType()+replacement));
|
operators.add(new SimpleMapper("KEY_"+pattern, "KEY_"+pattern, type.getFileType()+splitter+type.getFileType()+replacement));
|
||||||
operators.add(new SimpleMapper(type.name()+"[VALUE_"+pattern+"]", "VALUE_"+pattern, valueType.getFileType()+splitter+valueType.getFileType()+replacement));
|
operators.add(new SimpleMapper("VALUE_"+pattern, "VALUE_"+pattern, valueType.getFileType()+splitter+valueType.getFileType()+replacement));
|
||||||
operators.add(new SimpleMapper(type.name()+"["+pattern+"]", pattern, type.getFileType()+splitter+valueType.getFileType()+replacement));
|
operators.add(new SimpleMapper(pattern, pattern, type.getFileType()+splitter+valueType.getFileType()+replacement));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addAbstractMapper(String pattern, String replacement)
|
private void addAbstractMapper(String pattern, String replacement)
|
||||||
{
|
{
|
||||||
operators.add(new SimpleMapper(type.name()+"[VALUE_"+pattern+"]", "VALUE_"+pattern, String.format(replacement, valueType.getFileType())));
|
operators.add(new SimpleMapper("VALUE_"+pattern, "VALUE_"+pattern, String.format(replacement, valueType.getFileType())));
|
||||||
operators.add(new SimpleMapper(type.name()+"["+pattern+"]", pattern, String.format(replacement, type.getFileType())));
|
operators.add(new SimpleMapper(pattern, pattern, String.format(replacement, type.getFileType())));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addAbstractBiMapper(String pattern, String replacement, String splitter)
|
private void addAbstractBiMapper(String pattern, String replacement, String splitter)
|
||||||
{
|
{
|
||||||
operators.add(new SimpleMapper(type.name()+"["+pattern+"]", pattern, String.format(replacement, type.getFileType()+splitter+valueType.getFileType())));
|
operators.add(new SimpleMapper(pattern, pattern, String.format(replacement, type.getFileType()+splitter+valueType.getFileType())));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addFunctionMapper(String pattern, String replacement)
|
private void addFunctionMapper(String pattern, String replacement)
|
||||||
{
|
{
|
||||||
operators.add(new SimpleMapper(type.name()+"[VALUE_"+pattern+"]", "VALUE_"+pattern, replacement+valueType.getNonFileType()));
|
operators.add(new SimpleMapper("VALUE_"+pattern, "VALUE_"+pattern, replacement+valueType.getNonFileType()));
|
||||||
operators.add(new SimpleMapper(type.name()+"["+pattern+"]", pattern, replacement+type.getNonFileType()));
|
operators.add(new SimpleMapper(pattern, pattern, replacement+type.getNonFileType()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addFunctionValueMapper(String pattern, String replacement)
|
private void addFunctionValueMapper(String pattern, String replacement)
|
||||||
{
|
{
|
||||||
operators.add(new SimpleMapper(type.name()+"["+pattern+"]", pattern, replacement+valueType.getNonFileType()));
|
operators.add(new SimpleMapper(pattern, pattern, replacement+valueType.getNonFileType()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addFunctionMappers(String pattern, String replacement)
|
private void addFunctionMappers(String pattern, String replacement)
|
||||||
{
|
{
|
||||||
operators.add(new SimpleMapper(type.name()+"[VALUE_"+pattern+"]", "VALUE_"+pattern, String.format(replacement, valueType.getNonFileType())));
|
operators.add(new SimpleMapper("VALUE_"+pattern, "VALUE_"+pattern, String.format(replacement, valueType.getNonFileType())));
|
||||||
operators.add(new SimpleMapper(type.name()+"["+pattern+"]", pattern, String.format(replacement, type.getNonFileType())));
|
operators.add(new SimpleMapper(pattern, pattern, String.format(replacement, type.getNonFileType())));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addFunctionValueMappers(String pattern, String replacement)
|
private void addFunctionValueMappers(String pattern, String replacement)
|
||||||
{
|
{
|
||||||
operators.add(new SimpleMapper(type.name()+"["+pattern+"]", pattern, String.format(replacement, valueType.getNonFileType())));
|
operators.add(new SimpleMapper(pattern, pattern, String.format(replacement, valueType.getNonFileType())));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addSimpleMapper(String pattern, String replacement)
|
private void addSimpleMapper(String pattern, String replacement)
|
||||||
{
|
{
|
||||||
operators.add(new SimpleMapper(type.name()+"["+pattern+"]", pattern, replacement));
|
operators.add(new SimpleMapper(pattern, pattern, replacement));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addAnnontion(String pattern, String value)
|
private void addAnnontion(String pattern, String value)
|
||||||
{
|
{
|
||||||
if(type == ClassType.OBJECT) operators.add(new LineMapper(type.name()+"["+pattern+"]", pattern));
|
if(type == ClassType.OBJECT) operators.add(new LineMapper(pattern, pattern));
|
||||||
else operators.add(new SimpleMapper(type.name()+"["+pattern+"]", pattern, value));
|
else operators.add(new SimpleMapper(pattern, pattern, value));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addValueAnnontion(String pattern, String value)
|
private void addValueAnnontion(String pattern, String value)
|
||||||
{
|
{
|
||||||
if(valueType == ClassType.OBJECT) operators.add(new LineMapper(valueType.name()+"["+pattern+"]", pattern));
|
if(valueType == ClassType.OBJECT) operators.add(new LineMapper(pattern, pattern));
|
||||||
else operators.add(new SimpleMapper(valueType.name()+"["+pattern+"]", pattern, value));
|
else operators.add(new SimpleMapper(pattern, pattern, value));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addComment(String pattern, String value)
|
private void addComment(String pattern, String value)
|
||||||
{
|
{
|
||||||
if(type == ClassType.OBJECT) operators.add(new InjectMapper(type.name()+"["+pattern+"]", pattern, value).removeBraces());
|
if(type == ClassType.OBJECT) operators.add(new InjectMapper(pattern, pattern, value).removeBraces());
|
||||||
else operators.add(new LineMapper(type.name()+"["+pattern+"]", pattern));
|
else operators.add(new LineMapper(pattern, pattern));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addValueComment(String pattern, String value)
|
private void addValueComment(String pattern, String value)
|
||||||
{
|
{
|
||||||
if(valueType == ClassType.OBJECT) operators.add(new InjectMapper(valueType.name()+"["+pattern+"]", pattern, value).removeBraces());
|
if(valueType == ClassType.OBJECT) operators.add(new InjectMapper(pattern, pattern, value).removeBraces());
|
||||||
else operators.add(new LineMapper(valueType.name()+"["+pattern+"]", pattern));
|
else operators.add(new LineMapper(pattern, pattern));
|
||||||
}
|
}
|
||||||
|
|
||||||
private InjectMapper addInjectMapper(String pattern, String replacement)
|
private InjectMapper addInjectMapper(String pattern, String replacement)
|
||||||
{
|
{
|
||||||
InjectMapper mapper = new InjectMapper(type.name()+"["+pattern+"]", pattern, replacement);
|
InjectMapper mapper = new InjectMapper(pattern, pattern, replacement);
|
||||||
operators.add(mapper);
|
operators.add(mapper);
|
||||||
return mapper;
|
return mapper;
|
||||||
}
|
}
|
||||||
|
@ -513,7 +530,7 @@ public class GlobalVariables
|
||||||
|
|
||||||
private ArgumentMapper addArgumentMapper(String pattern, String replacement, String splitter)
|
private ArgumentMapper addArgumentMapper(String pattern, String replacement, String splitter)
|
||||||
{
|
{
|
||||||
ArgumentMapper mapper = new ArgumentMapper(type.name()+"["+pattern+"]", pattern, replacement, splitter);
|
ArgumentMapper mapper = new ArgumentMapper(pattern, pattern, replacement, splitter);
|
||||||
operators.add(mapper);
|
operators.add(mapper);
|
||||||
return mapper;
|
return mapper;
|
||||||
}
|
}
|
||||||
|
|
|
@ -224,6 +224,18 @@ public class PrimitiveCollectionsBuilder extends TemplateProcessor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void test() throws InterruptedException, IOException
|
||||||
|
{
|
||||||
|
init();
|
||||||
|
List<String> keys = new ArrayList<>();
|
||||||
|
List<String> values = new ArrayList<>();
|
||||||
|
for(int i = 0,m=variables.size();i<m;i++) {
|
||||||
|
variables.get(i).testComparason(keys, values);
|
||||||
|
}
|
||||||
|
System.out.println("Original: "+keys);
|
||||||
|
System.out.println("Copy: "+values);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createProcesses(String name, Consumer<TemplateProcess> acceptor)
|
public void createProcesses(String name, Consumer<TemplateProcess> acceptor)
|
||||||
{
|
{
|
||||||
|
@ -317,7 +329,7 @@ public class PrimitiveCollectionsBuilder extends TemplateProcessor
|
||||||
boolean force = flags.contains("force");
|
boolean force = flags.contains("force");
|
||||||
boolean tests = flags.contains("tests");
|
boolean tests = flags.contains("tests");
|
||||||
boolean forceTests = flags.contains("force-tests");
|
boolean forceTests = flags.contains("force-tests");
|
||||||
|
// new PrimitiveCollectionsBuilder(silent).test();
|
||||||
new PrimitiveCollectionsBuilder(silent).process(force);
|
new PrimitiveCollectionsBuilder(silent).process(force);
|
||||||
if(tests) {
|
if(tests) {
|
||||||
createTests(silent).process(force || forceTests);
|
createTests(silent).process(force || forceTests);
|
||||||
|
|
Loading…
Reference in New Issue