Finishing Framework and making Async Module Optional.

This commit is contained in:
2022-12-04 07:56:04 +01:00
parent 6722f399db
commit b29874189c
15 changed files with 188 additions and 127 deletions
@@ -239,7 +239,7 @@ public class PrimitiveCollectionsBuilder extends TemplateProcessor
boolean tests = flags.contains("tests");
boolean forceTests = flags.contains("force-tests");
boolean load = flags.contains("load");
boolean save = !flags.contains("save");
boolean save = flags.contains("save");
int flag = (load ? LOAD : 0) | (save ? SAVE : 0);
// new PrimitiveCollectionsBuilder(silent).test();
new PrimitiveCollectionsBuilder(silent).setFlags(flag).process(force);
@@ -20,13 +20,30 @@ public class SettingsManager
JsonObject data = new JsonObject();
Set<String> moduleNames = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
public boolean isModuleEnabled(BaseModule base, ClassType keyType, ClassType valueType) {
if(!loaded) return true;
if(!isEnabled(data, base.getModuleName())) return false;
JsonObject result = getObject(data, keyType.getClassPath(), false);
if(!isEnabled(result, "enabled")) return false;
if(base.isBiModule()) {
result = getObject(result, valueType.getClassPath(), false);
if(!isEnabled(result, "enabled")) return false;
}
result = getObject(result, base.getModuleName(), false);
return result.size() <= 0 || isEnabled(result, "enabled");
}
public boolean isModuleEnabled(BaseModule base, ClassType keyType, ClassType valueType, String entry)
{
if(!loaded) return true;
if(!isEnabled(data, base.getModuleName())) return false;
JsonObject result = getObject(data, keyType.getClassPath());
if(base.isBiModule()) result = getObject(result, valueType.getClassPath());
result = getObject(result, base.getModuleName());
JsonObject result = getObject(data, keyType.getClassPath(), false);
if(!isEnabled(result, "enabled")) return false;
if(base.isBiModule()) {
result = getObject(result, valueType.getClassPath(), false);
if(!isEnabled(result, "enabled")) return false;
}
result = getObject(result, base.getModuleName(), false);
return result.size() <= 0 || (isEnabled(result, "enabled") && isEnabled(result, entry));
}
@@ -37,6 +54,7 @@ public class SettingsManager
data.addProperty(moduleName, true);
if(module.isBiModule()) {
for(ClassType keyType : ModulePackage.TYPE) {
if(keyType == ClassType.BOOLEAN) continue;
for(ClassType valueType : ModulePackage.TYPE) {
JsonObject obj = new JsonObject();
obj.addProperty("enabled", true);
@@ -82,18 +100,19 @@ public class SettingsManager
}
private void addModule(ClassType keyType, ClassType valueType, boolean bi, String moduleName, JsonObject obj) {
JsonObject result = getObject(data, keyType.getClassPath());
JsonObject result = getObject(data, keyType.getClassPath(), true);
if(bi) {
result = getObject(result, valueType.getClassPath());
result = getObject(result, valueType.getClassPath(), true);
}
result.add(moduleName, obj);
}
private JsonObject getObject(JsonObject data, String name) {
private JsonObject getObject(JsonObject data, String name, boolean create) {
JsonObject obj = data.getAsJsonObject(name);
if(obj == null) {
obj = new JsonObject();
data.add(name, obj);
if(create) obj.addProperty("enabled", true);
}
return obj;
}
@@ -14,11 +14,24 @@ public class AsyncModule extends BaseModule
@Override
protected void loadFunctions() {}
@Override
protected void loadFlags() {}
protected void loadBlockades() {
if(!isModuleEnabled()) {
addBlockedFiles("AsyncBuilder");
}
}
@Override
protected void loadFlags() {
if(isModuleEnabled()) {
addKeyFlag("ASYNC_MODULE");
}
}
@Override
protected void loadClasses()
{
//Implementation Classes
addClassMapper("ASYNC_BUILDER", "AsyncBuilder");
//Abstract Classes
addAbstractMapper("BASE_TASK", "Base%sTask");
@@ -35,6 +35,7 @@ public abstract class BaseModule
loadTestClasses();
loadFunctions();
loadRemappers();
loadBlockades();
loadFlags();
}
@@ -50,21 +51,30 @@ public abstract class BaseModule
protected abstract void loadTestClasses();
protected abstract void loadFunctions();
protected abstract void loadRemappers();
protected abstract void loadBlockades();
protected abstract void loadFlags();
public abstract String getModuleName();
public boolean isBiModule() { return false; }
public Set<String> getModuleKeys(ClassType keyType, ClassType valueType) { return Collections.emptySet(); }
protected boolean isModuleEnabled() {
return manager == null || manager.isModuleEnabled(this, keyType, valueType);
}
protected boolean isModuleEnabled(String name) {
if(manager == null) return true;
return manager.isModuleEnabled(this, keyType, valueType, name);
return manager == null || manager.isModuleEnabled(this, keyType, valueType, name);
}
protected void addFlag(String name) {
entry.addFlag(name);
}
protected void addKeyFlag(String name) {
entry.addFlag(name);
entry.addFlag(keyType.getCapType()+"_"+name);
}
protected void addBiRequirement(String fileName) {
entry.addRequirement(fileName, RequiredType.BI_CLASS);
entry.addSplitter(fileName, "%1$s2%2$s");
@@ -8,11 +8,12 @@ public class CollectionModule extends BaseModule
@Override
public String getModuleName() { return "Collection"; }
@Override
protected void loadVariables() { loadBlockades(); }
protected void loadVariables() {}
@Override
protected void loadFlags() {}
private void loadBlockades()
@Override
protected void loadBlockades()
{
if(keyType.isObject()) {
addBlockedFiles("Stack");
@@ -8,13 +8,14 @@ public class FunctionModule extends BaseModule
@Override
public boolean isBiModule() { return true; }
@Override
protected void loadVariables() { loadBlockades(); }
protected void loadVariables() {}
@Override
protected void loadFlags() {}
@Override
protected void loadTestClasses() {}
private void loadBlockades()
@Override
protected void loadBlockades()
{
if(keyType.isObject()) addBlockedFiles("Consumer", "Comparator");
}
@@ -30,7 +30,9 @@ public class JavaModule extends BaseModule
@Override
protected void loadRemappers() {}
@Override
protected void loadBlockades() {}
@Override
protected void loadFunctions()
{
@@ -8,11 +8,14 @@ public class ListModule extends BaseModule
@Override
public String getModuleName() { return "List"; }
@Override
protected void loadVariables() { loadBlockedFiles(); }
protected void loadVariables() {}
@Override
protected void loadFlags() {}
protected void loadFlags() {
}
private void loadBlockedFiles()
@Override
protected void loadBlockades()
{
if(keyType.isObject()) {
addBlockedFiles("ListFillBufferTester");
@@ -52,7 +55,6 @@ public class ListModule extends BaseModule
//Implementation Classes
addClassMapper("ARRAY_LIST", "ArrayList");
addAbstractMapper("COPY_ON_WRITE_LIST", "CopyOnWrite%sArrayList");
addClassMapper("ASYNC_BUILDER", "AsyncBuilder");
addClassMapper("LINKED_LIST", "LinkedList");
addAbstractMapper("IMMUTABLE_LIST", "Immutable%sList");
@@ -10,11 +10,12 @@ public class MapModule extends BaseModule
@Override
public boolean isBiModule() { return true; }
@Override
protected void loadVariables() { loadBlockades(); }
protected void loadVariables() {}
@Override
protected void loadFlags() {}
private void loadBlockades()
@Override
protected void loadBlockades()
{
if(keyType == ClassType.BOOLEAN)
{
@@ -10,6 +10,8 @@ public class PairModule extends BaseModule
@Override
protected void loadVariables() {}
@Override
protected void loadBlockades() {}
@Override
protected void loadFlags() {}
@Override
protected void loadFunctions() {}
@@ -8,13 +8,14 @@ public class PrioQueueModule extends BaseModule
@Override
public String getModuleName() { return "PriorityQueue"; }
@Override
protected void loadVariables() { loadBlockades(); }
protected void loadVariables() {}
@Override
protected void loadFlags() {}
@Override
protected void loadFunctions() {}
private void loadBlockades()
@Override
protected void loadBlockades()
{
if(keyType == ClassType.BOOLEAN) {
addBlockedFiles("QueueTests");
@@ -8,11 +8,12 @@ public class SetModule extends BaseModule
@Override
public String getModuleName() { return "Set"; }
@Override
protected void loadVariables() { loadBlockades(); }
protected void loadVariables() {}
@Override
protected void loadFlags() {}
private void loadBlockades()
@Override
protected void loadBlockades()
{
if(keyType == ClassType.BOOLEAN)
{