Finishing Framework and making Async Module Optional.
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user