The beginning of modulizing Primitive Collections.
This will be a small rewrite of the "Builder". Why this is done?
This commit is contained in:
parent
99e9afe7b1
commit
21f330260e
|
@ -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