1
0
mirror of https://github.com/DanilaFe/abacus synced 2024-12-22 07:20:09 -08:00

Make reloads go through the Abacus core.

This commit is contained in:
Danila Fedorin 2017-09-06 22:03:54 -07:00
parent 91986112a1
commit 924849bd8b
6 changed files with 13 additions and 25 deletions

View File

@ -220,12 +220,4 @@ public abstract class Plugin {
*/
public abstract void onDisable();
/**
* Get the variable database.
* @return the variable database.
*/
public final VariableDatabase getVariableDatabase(){
return manager.getVariableDatabase();
}
}

View File

@ -422,12 +422,5 @@ public class PluginManager {
public Set<Class<?>> getLoadedPluginClasses() {
return loadedPluginClasses;
}
/**
* Gets the variable database.
* @return the database.
*/
public VariableDatabase getVariableDatabase(){
return abacus.getVariableDatabase();
}
}

View File

@ -46,10 +46,6 @@ class Abacus(val configuration: Configuration) {
* The promotion manager used to convert between number implementations.
*/
val promotionManager = PromotionManager(this)
/**
* The database of variable definitions.
*/
val variableDatabase = VariableDatabase(this)
/**
* The hidden, mutable implementation of the context.
@ -65,9 +61,16 @@ class Abacus(val configuration: Configuration) {
pluginManager.addListener(tokenizer)
pluginManager.addListener(parser)
pluginManager.addListener(promotionManager)
pluginManager.addListener(variableDatabase)
}
fun reload(){
pluginManager.reload()
with(mutableContext) {
numberImplementation = pluginManager.numberImplementationFor(configuration.numberImplementation)
clearVariables()
clearDefinitions()
}
}
/**
* Parses a string into a tree structure using the main
* tree builder.

View File

@ -17,7 +17,7 @@ public class CalculationTests {
@BeforeClass
public static void prepareTests() {
abacus.getPluginManager().addInstantiated(new StandardPlugin(abacus.getPluginManager()));
abacus.getPluginManager().load();
abacus.reload();
}
private void testOutput(String input, String parseOutput, String output) {

View File

@ -82,7 +82,7 @@ public class TokenizerTests {
public static void prepareTests() {
abacus.getPluginManager().addListener(lexerTokenizer);
abacus.getPluginManager().addInstantiated(testPlugin);
abacus.getPluginManager().load();
abacus.reload();
}
@Test

View File

@ -320,13 +320,13 @@ public class AbacusController implements PluginListener {
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
abacusPluginManager.reload();
abacus.reload();
}
@FXML
public void performReload() {
alertIfApplyNeeded(true);
abacus.getPluginManager().reload();
abacus.reload();
}
@FXML