Implemented Lists can now be Disabled

Each List implementation can be now turned off.
Or all Lists can be turned off.
ListIterator can't be turned of since it is a IndexBasedIterator and not
a List and a few implementation use them.
This commit is contained in:
2022-12-05 00:01:53 +01:00
parent f53d61a5bc
commit cc87cae145
17 changed files with 466 additions and 117 deletions
@@ -241,7 +241,6 @@ public class PrimitiveCollectionsBuilder extends TemplateProcessor
boolean load = flags.contains("load");
boolean save = flags.contains("save");
int flag = (load ? LOAD : 0) | (save ? SAVE : 0);
// new PrimitiveCollectionsBuilder(silent).test();
new PrimitiveCollectionsBuilder(silent).setFlags(flag).process(force);
if(tests) {
createTests(silent, flag).process(force || forceTests);
@@ -1,5 +1,9 @@
package speiger.src.builder.modules;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import speiger.src.builder.ClassType;
@SuppressWarnings("javadoc")
@@ -11,18 +15,32 @@ public class ListModule extends BaseModule
protected void loadVariables() {}
@Override
protected void loadFlags() {
if(isModuleEnabled()) addKeyFlag("LIST_MODULE");
if(isModuleEnabled("Lists")) addKeyFlag("LISTS_FEATURE");
if(isModuleEnabled("ArrayList")) addKeyFlag("ARRAY_LIST_FEATURE");
if(isModuleEnabled("LinkedList")) addKeyFlag("LINKED_LIST_FEATURE");
if(isModuleEnabled("ImmutableList")) addKeyFlag("IMMUTABLE_LIST_FEATURE");
if(isModuleEnabled("CopyOnWriteList")) addKeyFlag("COPY_ON_WRITE_LIST_FEATURE");
}
@Override
protected void loadBlockades()
{
if(keyType.isObject()) {
addBlockedFiles("ListFillBufferTester");
}
if(keyType == ClassType.BOOLEAN) {
addBlockedFiles("ListFillBufferTester", "ListReplaceAllTester");
}
if(!isModuleEnabled("Lists")) addBlockedFiles("Lists");
if(!isModuleEnabled("ArrayList")) addBlockedFiles("ArrayList");
if(!isModuleEnabled("LinkedList")) addBlockedFiles("LinkedList");
if(!isModuleEnabled("ImmutableList")) addBlockedFiles("ImmutableList");
if(!isModuleEnabled("CopyOnWriteList")) addBlockedFiles("CopyOnWriteList");
if(!isModuleEnabled()) addBlockedFiles("List", "AbstractList");
if(keyType.isObject()) addBlockedFiles("ListFillBufferTester");
if(keyType == ClassType.BOOLEAN) addBlockedFiles("ListFillBufferTester", "ListReplaceAllTester");
}
@Override
public Set<String> getModuleKeys(ClassType keyType, ClassType valueType)
{
return new HashSet<>(Arrays.asList("Lists", "ArrayList", "LinkedList", "ImmutableList", "CopyOnWriteList"));
}
@Override