forked from Speiger/Primitive-Collections
118 lines
4.0 KiB
Java
118 lines
4.0 KiB
Java
package speiger.src.builder.modules;
|
|
|
|
import java.util.Arrays;
|
|
import java.util.Set;
|
|
import java.util.TreeSet;
|
|
|
|
import speiger.src.builder.ClassType;
|
|
|
|
@SuppressWarnings("javadoc")
|
|
public class ListModule extends BaseModule
|
|
{
|
|
public static final BaseModule INSTANCE = new ListModule();
|
|
|
|
@Override
|
|
public String getModuleName() { return "List"; }
|
|
@Override
|
|
protected void loadVariables() {}
|
|
@Override
|
|
protected void loadFlags() {
|
|
if(isModuleEnabled()) addKeyFlag("LIST_MODULE");
|
|
if(isModuleEnabled("Wrappers")) addKeyFlag("LISTS_FEATURE");
|
|
boolean implementations = isModuleEnabled("Implementations");
|
|
if(implementations && isModuleEnabled("ArrayList")) addKeyFlag("ARRAY_LIST_FEATURE");
|
|
if(implementations && isModuleEnabled("LinkedList")) addKeyFlag("LINKED_LIST_FEATURE");
|
|
if(implementations && isModuleEnabled("ImmutableList")) addKeyFlag("IMMUTABLE_LIST_FEATURE");
|
|
if(implementations && isModuleEnabled("CopyOnWriteList")) addKeyFlag("COPY_ON_WRITE_LIST_FEATURE");
|
|
}
|
|
|
|
@Override
|
|
protected void loadBlockades()
|
|
{
|
|
if(!isModuleEnabled("Wrappers")) addBlockedFiles("Lists");
|
|
boolean implementations = !isModuleEnabled("Implementations");
|
|
if(implementations || !isModuleEnabled("ArrayList")) addBlockedFiles("ArrayList");
|
|
if(implementations || !isModuleEnabled("LinkedList")) addBlockedFiles("LinkedList");
|
|
if(implementations || !isModuleEnabled("ImmutableList")) addBlockedFiles("ImmutableList");
|
|
if(implementations || !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 TreeSet<>(Arrays.asList("Implementations", "Wrappers", "ArrayList", "LinkedList", "ImmutableList", "CopyOnWriteList"));
|
|
}
|
|
|
|
@Override
|
|
public boolean areDependenciesLoaded() {
|
|
return isDependencyLoaded(CollectionModule.INSTANCE);
|
|
}
|
|
|
|
@Override
|
|
protected void loadRemappers()
|
|
{
|
|
//Main Classes
|
|
addRemapper("AbstractList", "Abstract%sList");
|
|
addRemapper("ImmutableList", "Immutable%sList");
|
|
addRemapper("CopyOnWriteList", "CopyOnWrite%sArrayList");
|
|
|
|
//Test Classes
|
|
addRemapper("AbstractListTester", "Abstract%sListTester");
|
|
addRemapper("AbstractListIndexOfTester", "Abstract%sListIndexOfTester");
|
|
addRemapper("TestListGenerator", "Test%sListGenerator");
|
|
}
|
|
|
|
@Override
|
|
protected void loadFunctions()
|
|
{
|
|
addFunctionMapper("GET_KEY", "get");
|
|
addFunctionMapper("GET_FIRST_KEY", "getFirst");
|
|
addFunctionMapper("GET_LAST_KEY", "getLast");
|
|
addFunctionMapper("REMOVE_FIRST_KEY", "removeFirst");
|
|
addFunctionMapper("REMOVE_LAST_KEY", "removeLast");
|
|
addFunctionMapper("REMOVE_SWAP", "swapRemove");
|
|
addFunctionMappers("REPLACE", keyType.isObject() ? "replaceObjects" : "replace%ss");
|
|
addFunctionMappers("SORT", "sort%ss");
|
|
}
|
|
|
|
@Override
|
|
protected void loadClasses()
|
|
{
|
|
//Implementation Classes
|
|
addClassMapper("ARRAY_LIST", "ArrayList");
|
|
addAbstractMapper("COPY_ON_WRITE_LIST", "CopyOnWrite%sArrayList");
|
|
addClassMapper("LINKED_LIST", "LinkedList");
|
|
addAbstractMapper("IMMUTABLE_LIST", "Immutable%sList");
|
|
|
|
//Abstract Classes
|
|
addAbstractMapper("ABSTRACT_LIST", "Abstract%sList");
|
|
|
|
//SubClasses
|
|
addClassMapper("SUB_LIST", "SubList");
|
|
addClassMapper("LIST_ITER", "ListIter");
|
|
|
|
//Helper Classes
|
|
addClassMapper("LISTS", "Lists");
|
|
|
|
//Interfaces
|
|
addClassMapper("LIST", "List");
|
|
}
|
|
|
|
@Override
|
|
protected void loadTestClasses()
|
|
{
|
|
//Implementation Classes
|
|
addClassMapper("LIST_TEST_BUILDER", "ListTestSuiteBuilder");
|
|
addClassMapper("LIST_TESTS", "ListTests");
|
|
|
|
//Abstract Classes
|
|
addAbstractMapper("ABSTRACT_LIST_INDEX_OF_TESTER", "Abstract%sListIndexOfTester");
|
|
addAbstractMapper("ABSTRACT_LIST_TESTER", "Abstract%sListTester");
|
|
|
|
//Helper classes
|
|
addAbstractMapper("TEST_LIST_GENERATOR", "Test%sListGenerator");
|
|
}
|
|
} |