From f4154e552bef7335c7807192a65612dba1a3ddfb Mon Sep 17 00:00:00 2001 From: Patrick Hammer <patham9@gmail.com> Date: Mon, 26 Mar 2018 21:00:40 -0400 Subject: [PATCH] Project structure improvement. --- nars_core/nars/control/ConceptProcessing.java | 4 +- nars_core/nars/control/DerivationContext.java | 4 +- .../nars/control/GeneralInferenceControl.java | 2 +- .../control/TemporalInferenceControl.java | 2 +- nars_core/nars/entity/BudgetValue.java | 2 +- nars_core/nars/entity/Concept.java | 10 +- nars_core/nars/entity/Sentence.java | 2 +- nars_core/nars/entity/TruthValue.java | 2 +- nars_core/nars/inference/LocalRules.java | 6 +- nars_core/nars/inference/RuleTables.java | 2 +- nars_core/nars/io/Narsese.java | 1 - nars_core/nars/io/Symbols.java | 6 +- nars_core/nars/{util => io}/Texts.java | 2 +- .../{handlers => events}/AnswerHandler.java | 6 +- .../{util => io/events}/EventEmitter.java | 2 +- .../io/{handlers => events}/EventHandler.java | 3 +- .../nars/{util => io/events}/Events.java | 414 +++++++------- .../{handlers => events}/OutputHandler.java | 7 +- .../TextOutputHandler.java | 18 +- nars_core/nars/language/Term.java | 2 +- nars_core/nars/language/Variable.java | 2 +- nars_core/nars/main/NAR.java | 16 +- nars_core/nars/main/Shell.java | 2 +- nars_core/nars/operator/Operator.java | 4 +- .../nars/operator/mental/Anticipate.java | 12 +- .../nars/operator/misc/MathExpression.java | 4 +- nars_core/nars/{util => plugin}/Plugin.java | 2 +- .../nars/plugin/mental/Abbreviation.java | 6 +- nars_core/nars/plugin/mental/Counting.java | 6 +- nars_core/nars/plugin/mental/Emotions.java | 2 +- .../plugin/mental/InternalExperience.java | 6 +- .../nars/plugin/misc/RuntimeNARSettings.java | 2 +- nars_core/nars/storage/Memory.java | 14 +- nars_gui/nars/gui/InferenceLogger.java | 6 +- nars_gui/nars/gui/NARControls.java | 12 +- nars_gui/nars/gui/NARSwing.java | 2 +- nars_gui/nars/gui/graph/SentenceGraph.java | 514 +++++++++--------- .../nars/gui/input/KeyboardInputPanel.java | 4 +- nars_gui/nars/gui/input/TextInputPanel.java | 2 +- nars_gui/nars/gui/output/ConceptsPanel.java | 6 +- nars_gui/nars/gui/output/LogPanel.java | 10 +- nars_gui/nars/gui/output/PluginPanel.java | 6 +- nars_gui/nars/gui/output/SwingLogPanel.java | 2 +- nars_gui/nars/gui/output/SwingLogText.java | 2 +- nars_gui/nars/gui/output/TablePanel.java | 2 +- nars_gui/nars/gui/output/TaskTree.java | 8 +- .../nars/gui/output/graph/NARGraphVis.java | 6 +- nars_gui/nars/gui/util/MemoryObserver.java | 10 +- .../nars/lab/grid2d/main/TestChamber.java | 4 +- nars_lab/nars/lab/language/LanguageGUI.java | 2 +- nars_lab/nars/lab/launcher/NARGame.java | 4 +- .../lab/microworld/SupervisedRecognition.java | 2 +- .../plugin/app/farg/FluidAnalogiesAgents.java | 2 +- .../nars/lab/plugin/app/farg/Workspace.java | 4 +- .../lab/plugin/input/PerceptionAccel.java | 6 +- .../lab/plugin/mental/GlobalAnticipation.java | 6 +- .../nars/lab/predict/Predict_NARS_Core.java | 4 +- .../nars/lab/testutils/OutputCondition.java | 2 +- .../testutils/OutputContainsCondition.java | 2 +- nars_lab/nars/lab/testutils/TuneTuffy.java | 6 +- .../nars/lab/tictactoe/GridButtonPanel.java | 4 +- nars_lab/nars/lab/tictactoe/TicTacToe.java | 6 +- nars_lab/nars/lab/vision/SymRecognizer.java | 2 +- .../SymRecognizerWithVisionChannel.java | 2 +- nars_test/nars/core/NALTest.java | 2 +- nars_test/nars/core/TermTest.java | 2 +- nars_test/nars/core/TestMultistepEdited.java | 2 +- nars_test/nars/core/VariableTest.java | 4 +- nars_test/nars/perf/BagFairness.java | 6 +- nars_test/nars/util/TextsTest.java | 1 + nars_web/src/nars/web/NARConnection.java | 4 +- 71 files changed, 622 insertions(+), 624 deletions(-) rename nars_core/nars/{util => io}/Texts.java (96%) rename nars_core/nars/io/{handlers => events}/AnswerHandler.java (86%) rename nars_core/nars/{util => io/events}/EventEmitter.java (99%) rename nars_core/nars/io/{handlers => events}/EventHandler.java (89%) rename nars_core/nars/{util => io/events}/Events.java (95%) rename nars_core/nars/io/{handlers => events}/OutputHandler.java (88%) rename nars_core/nars/io/{handlers => events}/TextOutputHandler.java (93%) rename nars_core/nars/{util => plugin}/Plugin.java (94%) diff --git a/nars_core/nars/control/ConceptProcessing.java b/nars_core/nars/control/ConceptProcessing.java index e46d58afeb..37bc769771 100644 --- a/nars_core/nars/control/ConceptProcessing.java +++ b/nars_core/nars/control/ConceptProcessing.java @@ -7,12 +7,12 @@ import nars.main.Parameters; import nars.entity.*; import nars.inference.TemporalRules; import nars.inference.TruthFunctions; -import nars.io.handlers.OutputHandler; +import nars.io.events.OutputHandler; import nars.io.Symbols; import nars.language.*; import nars.operator.Operation; import nars.plugin.mental.InternalExperience; -import nars.util.Events; +import nars.io.events.Events; import nars.storage.LevelBag; import static nars.inference.LocalRules.revisible; diff --git a/nars_core/nars/control/DerivationContext.java b/nars_core/nars/control/DerivationContext.java index 8183dc9cb4..47b9e0b4d2 100644 --- a/nars_core/nars/control/DerivationContext.java +++ b/nars_core/nars/control/DerivationContext.java @@ -6,11 +6,11 @@ package nars.control; import java.util.ArrayList; import java.util.List; -import nars.util.Events; +import nars.io.events.Events; import nars.storage.Memory; import nars.main.NAR; import nars.main.Parameters; -import nars.util.Plugin; +import nars.plugin.Plugin; import nars.entity.BudgetValue; import nars.entity.Concept; import nars.entity.Sentence; diff --git a/nars_core/nars/control/GeneralInferenceControl.java b/nars_core/nars/control/GeneralInferenceControl.java index 1647eb9125..04396291f2 100644 --- a/nars_core/nars/control/GeneralInferenceControl.java +++ b/nars_core/nars/control/GeneralInferenceControl.java @@ -6,7 +6,7 @@ package nars.control; import nars.main.Parameters; import nars.entity.Concept; -import nars.util.Events; +import nars.io.events.Events; import nars.entity.Task; import nars.entity.TermLink; import nars.inference.BudgetFunctions; diff --git a/nars_core/nars/control/TemporalInferenceControl.java b/nars_core/nars/control/TemporalInferenceControl.java index 099a6b7eff..9d522bb074 100644 --- a/nars_core/nars/control/TemporalInferenceControl.java +++ b/nars_core/nars/control/TemporalInferenceControl.java @@ -20,7 +20,7 @@ import nars.language.CompoundTerm; import nars.operator.Operation; import nars.storage.LevelBag; import nars.storage.Memory; -import nars.util.Events; +import nars.io.events.Events; /** * diff --git a/nars_core/nars/entity/BudgetValue.java b/nars_core/nars/entity/BudgetValue.java index 02ade69a96..88393f2290 100644 --- a/nars_core/nars/entity/BudgetValue.java +++ b/nars_core/nars/entity/BudgetValue.java @@ -25,7 +25,7 @@ import nars.main.Parameters; import static nars.main.Parameters.TRUTH_EPSILON; import nars.inference.BudgetFunctions; import nars.io.Symbols; -import nars.util.Texts; +import nars.io.Texts; import static nars.inference.UtilityFunctions.and; import static nars.inference.UtilityFunctions.aveGeo; import static nars.inference.UtilityFunctions.or; diff --git a/nars_core/nars/entity/Concept.java b/nars_core/nars/entity/Concept.java index 505a8b84f9..2d26e2d7c6 100644 --- a/nars_core/nars/entity/Concept.java +++ b/nars_core/nars/entity/Concept.java @@ -26,11 +26,11 @@ import java.util.Collections; import java.util.List; import nars.control.ConceptProcessing; -import nars.util.Events.BeliefSelect; -import nars.util.Events.TaskLinkAdd; -import nars.util.Events.TaskLinkRemove; -import nars.util.Events.TermLinkAdd; -import nars.util.Events.TermLinkRemove; +import nars.io.events.Events.BeliefSelect; +import nars.io.events.Events.TaskLinkAdd; +import nars.io.events.Events.TaskLinkRemove; +import nars.io.events.Events.TermLinkAdd; +import nars.io.events.Events.TermLinkRemove; import nars.storage.Memory; import nars.main.Shell; import nars.main.Parameters; diff --git a/nars_core/nars/entity/Sentence.java b/nars_core/nars/entity/Sentence.java index 0f0111c95e..ba18665a14 100644 --- a/nars_core/nars/entity/Sentence.java +++ b/nars_core/nars/entity/Sentence.java @@ -32,7 +32,7 @@ import nars.inference.TemporalRules; import nars.inference.TruthFunctions; import nars.inference.TruthFunctions.EternalizedTruthValue; import nars.io.Symbols; -import nars.util.Texts; +import nars.io.Texts; import nars.language.CompoundTerm; import nars.language.Conjunction; import nars.language.Equivalence; diff --git a/nars_core/nars/entity/TruthValue.java b/nars_core/nars/entity/TruthValue.java index f7ef3cb3bb..474a8ae7d4 100644 --- a/nars_core/nars/entity/TruthValue.java +++ b/nars_core/nars/entity/TruthValue.java @@ -24,7 +24,7 @@ import java.io.Serializable; import nars.main.Parameters; import static nars.main.Parameters.TRUTH_EPSILON; import nars.io.Symbols; -import nars.util.Texts; +import nars.io.Texts; import nars.language.Term; diff --git a/nars_core/nars/inference/LocalRules.java b/nars_core/nars/inference/LocalRules.java index e4807a05a1..5c35773165 100644 --- a/nars_core/nars/inference/LocalRules.java +++ b/nars_core/nars/inference/LocalRules.java @@ -22,8 +22,8 @@ package nars.inference; import java.util.ArrayList; import nars.main.Parameters; -import nars.util.Events.Answer; -import nars.util.Events.Unsolved; +import nars.io.events.Events.Answer; +import nars.io.events.Events.Unsolved; import nars.storage.Memory; import nars.control.DerivationContext; import nars.entity.BudgetValue; @@ -37,7 +37,7 @@ import nars.entity.TruthValue; import static nars.inference.TemporalRules.matchingOrder; import static nars.inference.TemporalRules.reverseOrder; import static nars.inference.TruthFunctions.temporalProjection; -import nars.io.handlers.OutputHandler; +import nars.io.events.OutputHandler; import nars.io.Symbols; import nars.language.CompoundTerm; import static nars.language.CompoundTerm.extractIntervals; diff --git a/nars_core/nars/inference/RuleTables.java b/nars_core/nars/inference/RuleTables.java index 50fc899711..454ed74e04 100644 --- a/nars_core/nars/inference/RuleTables.java +++ b/nars_core/nars/inference/RuleTables.java @@ -20,7 +20,7 @@ */ package nars.inference; -import nars.util.Events; +import nars.io.events.Events; import nars.storage.Memory; import nars.main.Parameters; import nars.control.DerivationContext; diff --git a/nars_core/nars/io/Narsese.java b/nars_core/nars/io/Narsese.java index 96873b1f03..1ef8d8d9b6 100644 --- a/nars_core/nars/io/Narsese.java +++ b/nars_core/nars/io/Narsese.java @@ -12,7 +12,6 @@ import nars.entity.Sentence; import nars.entity.Stamp; import nars.entity.Task; import nars.entity.TruthValue; -import nars.util.Texts; import static nars.inference.BudgetFunctions.truthToQuality; import static nars.io.Symbols.ARGUMENT_SEPARATOR; import static nars.io.Symbols.BUDGET_VALUE_MARK; diff --git a/nars_core/nars/io/Symbols.java b/nars_core/nars/io/Symbols.java index cf5ac61f0f..8a15821c1c 100644 --- a/nars_core/nars/io/Symbols.java +++ b/nars_core/nars/io/Symbols.java @@ -22,9 +22,9 @@ package nars.io; import java.util.HashMap; import java.util.Map; -import nars.io.handlers.OutputHandler.ERR; -import nars.io.handlers.OutputHandler.IN; -import nars.io.handlers.OutputHandler.OUT; +import nars.io.events.OutputHandler.ERR; +import nars.io.events.OutputHandler.IN; +import nars.io.events.OutputHandler.OUT; public class Symbols { diff --git a/nars_core/nars/util/Texts.java b/nars_core/nars/io/Texts.java similarity index 96% rename from nars_core/nars/util/Texts.java rename to nars_core/nars/io/Texts.java index 29ebc47bd2..c9ead4d3d4 100644 --- a/nars_core/nars/util/Texts.java +++ b/nars_core/nars/io/Texts.java @@ -1,4 +1,4 @@ -package nars.util; +package nars.io; import nars.io.Symbols; import java.nio.CharBuffer; diff --git a/nars_core/nars/io/handlers/AnswerHandler.java b/nars_core/nars/io/events/AnswerHandler.java similarity index 86% rename from nars_core/nars/io/handlers/AnswerHandler.java rename to nars_core/nars/io/events/AnswerHandler.java index af16a585bd..a19457aa6b 100644 --- a/nars_core/nars/io/handlers/AnswerHandler.java +++ b/nars_core/nars/io/events/AnswerHandler.java @@ -2,10 +2,10 @@ * Here comes the text of your license * Each line should be prefixed with * */ -package nars.io.handlers; +package nars.io.events; -import nars.util.EventEmitter.EventObserver; -import nars.util.Events.Answer; +import nars.io.events.EventEmitter.EventObserver; +import nars.io.events.Events.Answer; import nars.main.NAR; import nars.entity.Sentence; import nars.entity.Task; diff --git a/nars_core/nars/util/EventEmitter.java b/nars_core/nars/io/events/EventEmitter.java similarity index 99% rename from nars_core/nars/util/EventEmitter.java rename to nars_core/nars/io/events/EventEmitter.java index c8d3039474..ce89c39130 100644 --- a/nars_core/nars/util/EventEmitter.java +++ b/nars_core/nars/io/events/EventEmitter.java @@ -1,5 +1,5 @@ -package nars.util; +package nars.io.events; import java.util.ArrayDeque; import java.util.ArrayList; diff --git a/nars_core/nars/io/handlers/EventHandler.java b/nars_core/nars/io/events/EventHandler.java similarity index 89% rename from nars_core/nars/io/handlers/EventHandler.java rename to nars_core/nars/io/events/EventHandler.java index ad96546224..012bde3857 100644 --- a/nars_core/nars/io/handlers/EventHandler.java +++ b/nars_core/nars/io/events/EventHandler.java @@ -1,7 +1,6 @@ -package nars.io.handlers; +package nars.io.events; import nars.main.NAR; -import nars.util.EventEmitter; /** * diff --git a/nars_core/nars/util/Events.java b/nars_core/nars/io/events/Events.java similarity index 95% rename from nars_core/nars/util/Events.java rename to nars_core/nars/io/events/Events.java index dd522149e0..8cb1063464 100644 --- a/nars_core/nars/util/Events.java +++ b/nars_core/nars/io/events/Events.java @@ -1,207 +1,207 @@ -package nars.util; - -import java.util.Arrays; -import java.util.List; -import nars.util.EventEmitter.EventObserver; -import nars.control.GeneralInferenceControl; -import nars.control.DerivationContext; -import nars.entity.Concept; -import nars.entity.Sentence; -import nars.entity.Task; - -/** empty event classes for use with EventEmitter */ -public class Events { - - - /** fired at the beginning of each NAR multi-cycle execution*/ - public static class CyclesStart { } - - /** fired at the end of each NAR multi-cycle execution */ - public static class CyclesEnd { } - - /** fired at the beginning of each memory cycle */ - public static class CycleStart { } - - /** fired at the end of each memory cycle */ - public static class CycleEnd { } - - /** fired at the beginning of each individual Memory work cycle */ - public static class WorkCycleStart { - } - - /** fired at the end of each Memory individual cycle */ - public static class WorkCycleEnd { - } - - /** called before memory.reset() proceeds */ - public static class ResetStart { - } - - /** called after memory.reset() proceeds */ - public static class ResetEnd { - } - - - public static class ConceptNew extends ParametricInferenceEvent<Concept> { - public ConceptNew(Concept c, long when) { - super(c, when); - } - - @Override public String toString() { - return "Concept Created: " + object; - } - } - - public static class Perceive { } - - public static class ConceptForget { } - - public static class EnactableExplainationAdd { } - public static class EnactableExplainationRemove { } - - abstract public static class ConceptBeliefAdd implements EventObserver { - - abstract public void onBeliefAdd(Concept c, Task t, Object[] extra); - - @Override public void event(Class event, Object[] args) { - onBeliefAdd( (Concept)args[0], (Task)args[1], (Object[])args[2]); - } - - } - - abstract public static class ConceptBeliefRemove implements EventObserver { - - abstract public void onBeliefRemove(Concept c, Sentence removed, Task t, Object[] extra); - - @Override public void event(Class event, Object[] args) { - onBeliefRemove( (Concept)args[0], (Sentence)args[1], (Task)args[2], (Object[])args[3]); - } - - } - - public static class ConceptGoalAdd { } - public static class ConceptGoalRemove { } - public static class ConceptQuestionAdd { } - public static class ConceptQuestionRemove { } - - - //Executive & Planning - public static class UnexecutableGoal { } - public static class UnexecutableOperation { } - public static class NewTaskExecution { } - public static class InduceSucceedingEvent { } - - - public static class TermLinkAdd { } - public static class TermLinkRemove { } - public static class TaskLinkAdd { } - public static class TaskLinkRemove { } - - public static class Answer { } - public static class Unsolved { } - - - - abstract public static class ConceptFire implements EventObserver { - - /** - * use: - * Concept n.getCurrentConcept() - * TaskLink n.getCurrentTaskLink() - */ - abstract public void onFire(GeneralInferenceControl n); - - @Override public void event(Class event, Object[] args) { - onFire((GeneralInferenceControl)args[0]); - } - - } - abstract public static class TaskImmediateProcess implements EventObserver { - - abstract public void onProcessed(Task t, DerivationContext n); - - @Override public void event(Class event, Object[] args) { - onProcessed((Task)args[0], (DerivationContext)args[1]); - } - - } - public static class TermLinkSelect { } - public static class BeliefSelect { } - - /** called from RuleTables.reason for a given Belief */ - public static class BeliefReason { } - - public static class ConceptUnification { } //2nd level unification in CompositionalRules - - abstract public static class TaskAdd implements EventObserver { - - abstract public void onTaskAdd(Task t, String reason); - - @Override public void event(Class event, Object[] args) { - onTaskAdd((Task)args[0], (String)args[1]); - } - } - public static class TaskRemove { } - public static class TaskDerive { } - - public static class PluginsChange { } - - //public static class UnExecutedGoal { } - - public static class ConceptDirectProcessedTask { } - - abstract public static class InferenceEvent { - - public final long when; - public final List<StackTraceElement> stack; - - //how many stack frames down to record from; we don't need to include the current and the previous (InferenceEvent subclass's constructor - int STACK_PREFIX = 4; - - protected InferenceEvent(long when) { - this(when, 0); - } - - protected InferenceEvent(long when, int stackFrames) { - this.when = when; - - if (stackFrames > 0) { - List<StackTraceElement> sl = Arrays.asList(Thread.currentThread().getStackTrace()); - - int frame = 0; - - for (StackTraceElement e : sl) { - frame++; - if (e.getClassName().equals("nars.core.NAR")) { - break; - } - } - if (frame - STACK_PREFIX > stackFrames) - frame = STACK_PREFIX + stackFrames; - this.stack = sl.subList(STACK_PREFIX, frame); - } - else { - this.stack = null; - } - } - - public Class getType() { - return getClass(); - } - - } - - abstract public static class ParametricInferenceEvent<O> extends InferenceEvent { - public final O object; - - public ParametricInferenceEvent(O object, long when) { - super(when); - this.object = object; - } - - - - } - - -} +package nars.io.events; + +import java.util.Arrays; +import java.util.List; +import nars.io.events.EventEmitter.EventObserver; +import nars.control.GeneralInferenceControl; +import nars.control.DerivationContext; +import nars.entity.Concept; +import nars.entity.Sentence; +import nars.entity.Task; + +/** empty event classes for use with EventEmitter */ +public class Events { + + + /** fired at the beginning of each NAR multi-cycle execution*/ + public static class CyclesStart { } + + /** fired at the end of each NAR multi-cycle execution */ + public static class CyclesEnd { } + + /** fired at the beginning of each memory cycle */ + public static class CycleStart { } + + /** fired at the end of each memory cycle */ + public static class CycleEnd { } + + /** fired at the beginning of each individual Memory work cycle */ + public static class WorkCycleStart { + } + + /** fired at the end of each Memory individual cycle */ + public static class WorkCycleEnd { + } + + /** called before memory.reset() proceeds */ + public static class ResetStart { + } + + /** called after memory.reset() proceeds */ + public static class ResetEnd { + } + + + public static class ConceptNew extends ParametricInferenceEvent<Concept> { + public ConceptNew(Concept c, long when) { + super(c, when); + } + + @Override public String toString() { + return "Concept Created: " + object; + } + } + + public static class Perceive { } + + public static class ConceptForget { } + + public static class EnactableExplainationAdd { } + public static class EnactableExplainationRemove { } + + abstract public static class ConceptBeliefAdd implements EventObserver { + + abstract public void onBeliefAdd(Concept c, Task t, Object[] extra); + + @Override public void event(Class event, Object[] args) { + onBeliefAdd( (Concept)args[0], (Task)args[1], (Object[])args[2]); + } + + } + + abstract public static class ConceptBeliefRemove implements EventObserver { + + abstract public void onBeliefRemove(Concept c, Sentence removed, Task t, Object[] extra); + + @Override public void event(Class event, Object[] args) { + onBeliefRemove( (Concept)args[0], (Sentence)args[1], (Task)args[2], (Object[])args[3]); + } + + } + + public static class ConceptGoalAdd { } + public static class ConceptGoalRemove { } + public static class ConceptQuestionAdd { } + public static class ConceptQuestionRemove { } + + + //Executive & Planning + public static class UnexecutableGoal { } + public static class UnexecutableOperation { } + public static class NewTaskExecution { } + public static class InduceSucceedingEvent { } + + + public static class TermLinkAdd { } + public static class TermLinkRemove { } + public static class TaskLinkAdd { } + public static class TaskLinkRemove { } + + public static class Answer { } + public static class Unsolved { } + + + + abstract public static class ConceptFire implements EventObserver { + + /** + * use: + * Concept n.getCurrentConcept() + * TaskLink n.getCurrentTaskLink() + */ + abstract public void onFire(GeneralInferenceControl n); + + @Override public void event(Class event, Object[] args) { + onFire((GeneralInferenceControl)args[0]); + } + + } + abstract public static class TaskImmediateProcess implements EventObserver { + + abstract public void onProcessed(Task t, DerivationContext n); + + @Override public void event(Class event, Object[] args) { + onProcessed((Task)args[0], (DerivationContext)args[1]); + } + + } + public static class TermLinkSelect { } + public static class BeliefSelect { } + + /** called from RuleTables.reason for a given Belief */ + public static class BeliefReason { } + + public static class ConceptUnification { } //2nd level unification in CompositionalRules + + abstract public static class TaskAdd implements EventObserver { + + abstract public void onTaskAdd(Task t, String reason); + + @Override public void event(Class event, Object[] args) { + onTaskAdd((Task)args[0], (String)args[1]); + } + } + public static class TaskRemove { } + public static class TaskDerive { } + + public static class PluginsChange { } + + //public static class UnExecutedGoal { } + + public static class ConceptDirectProcessedTask { } + + abstract public static class InferenceEvent { + + public final long when; + public final List<StackTraceElement> stack; + + //how many stack frames down to record from; we don't need to include the current and the previous (InferenceEvent subclass's constructor + int STACK_PREFIX = 4; + + protected InferenceEvent(long when) { + this(when, 0); + } + + protected InferenceEvent(long when, int stackFrames) { + this.when = when; + + if (stackFrames > 0) { + List<StackTraceElement> sl = Arrays.asList(Thread.currentThread().getStackTrace()); + + int frame = 0; + + for (StackTraceElement e : sl) { + frame++; + if (e.getClassName().equals("nars.core.NAR")) { + break; + } + } + if (frame - STACK_PREFIX > stackFrames) + frame = STACK_PREFIX + stackFrames; + this.stack = sl.subList(STACK_PREFIX, frame); + } + else { + this.stack = null; + } + } + + public Class getType() { + return getClass(); + } + + } + + abstract public static class ParametricInferenceEvent<O> extends InferenceEvent { + public final O object; + + public ParametricInferenceEvent(O object, long when) { + super(when); + this.object = object; + } + + + + } + + +} diff --git a/nars_core/nars/io/handlers/OutputHandler.java b/nars_core/nars/io/events/OutputHandler.java similarity index 88% rename from nars_core/nars/io/handlers/OutputHandler.java rename to nars_core/nars/io/events/OutputHandler.java index ec4110ba1e..11241ecc01 100644 --- a/nars_core/nars/io/handlers/OutputHandler.java +++ b/nars_core/nars/io/events/OutputHandler.java @@ -1,8 +1,7 @@ -package nars.io.handlers; +package nars.io.events; -import nars.io.handlers.EventHandler; -import nars.util.EventEmitter; -import nars.util.Events.Answer; +import nars.io.events.EventHandler; +import nars.io.events.Events.Answer; import nars.storage.Memory; import nars.main.NAR; diff --git a/nars_core/nars/io/handlers/TextOutputHandler.java b/nars_core/nars/io/events/TextOutputHandler.java similarity index 93% rename from nars_core/nars/io/handlers/TextOutputHandler.java rename to nars_core/nars/io/events/TextOutputHandler.java index 0d7d0efbf1..af5aae2412 100644 --- a/nars_core/nars/io/handlers/TextOutputHandler.java +++ b/nars_core/nars/io/events/TextOutputHandler.java @@ -18,10 +18,10 @@ * You should have received a copy of the GNU General Public License * along with Open-NARS. If not, see <http://www.gnu.org/licenses/>. */ -package nars.io.handlers; +package nars.io.events; -import nars.io.handlers.OutputHandler; -import nars.util.Texts; +import nars.io.events.OutputHandler; +import nars.io.Texts; import java.io.FileWriter; import java.io.IOException; import java.io.PrintStream; @@ -29,15 +29,15 @@ import java.io.PrintWriter; import java.io.Serializable; import java.io.StringWriter; import java.util.Arrays; -import nars.util.Events.Answer; +import nars.io.events.Events.Answer; import nars.main.NAR; import nars.entity.Sentence; import nars.entity.Task; -import nars.io.handlers.OutputHandler.ECHO; -import nars.io.handlers.OutputHandler.ERR; -import nars.io.handlers.OutputHandler.EXE; -import nars.io.handlers.OutputHandler.IN; -import nars.io.handlers.OutputHandler.OUT; +import nars.io.events.OutputHandler.ECHO; +import nars.io.events.OutputHandler.ERR; +import nars.io.events.OutputHandler.EXE; +import nars.io.events.OutputHandler.IN; +import nars.io.events.OutputHandler.OUT; /** * To read and write experience as Task streams diff --git a/nars_core/nars/language/Term.java b/nars_core/nars/language/Term.java index 3e3e06070f..5d4b571859 100644 --- a/nars_core/nars/language/Term.java +++ b/nars_core/nars/language/Term.java @@ -29,7 +29,7 @@ import nars.operator.ImaginationSpace; import nars.inference.TemporalRules; import nars.io.Symbols; import nars.io.Symbols.NativeOperator; -import nars.util.Texts; +import nars.io.Texts; import nars.operator.Operation; import nars.operator.Operator; //import nars.util.sort.SortedList; diff --git a/nars_core/nars/language/Variable.java b/nars_core/nars/language/Variable.java index a19136d4ab..a26c400a10 100644 --- a/nars_core/nars/language/Variable.java +++ b/nars_core/nars/language/Variable.java @@ -25,7 +25,7 @@ import nars.main.Parameters; import static nars.io.Symbols.VAR_DEPENDENT; import static nars.io.Symbols.VAR_INDEPENDENT; import static nars.io.Symbols.VAR_QUERY; -import nars.util.Texts; +import nars.io.Texts; import static nars.language.Variable.newName; /** diff --git a/nars_core/nars/main/NAR.java b/nars_core/nars/main/NAR.java index 214446d19c..0df55f506e 100644 --- a/nars_core/nars/main/NAR.java +++ b/nars_core/nars/main/NAR.java @@ -1,10 +1,10 @@ package nars.main; import java.io.BufferedReader; -import nars.util.Plugin; +import nars.plugin.Plugin; import nars.storage.Memory; -import nars.util.Events; -import nars.util.EventEmitter; +import nars.io.events.Events; +import nars.io.events.EventEmitter; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; @@ -20,15 +20,15 @@ import java.util.List; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; -import nars.util.EventEmitter.EventObserver; +import nars.io.events.EventEmitter.EventObserver; import nars.entity.BudgetValue; import nars.entity.Concept; import nars.entity.Sentence; import nars.entity.Stamp; import nars.entity.Task; import nars.language.Interval; -import nars.io.handlers.AnswerHandler; -import nars.io.handlers.OutputHandler.ERR; +import nars.io.events.AnswerHandler; +import nars.io.events.OutputHandler.ERR; import nars.io.Symbols; import nars.io.Narsese; import nars.io.Narsese.InvalidInputException; @@ -37,8 +37,8 @@ import nars.operator.Operator; import nars.perception.SensoryChannel; import nars.language.Term; import nars.storage.LevelBag; -import nars.util.Events.CyclesEnd; -import nars.util.Events.CyclesStart; +import nars.io.events.Events.CyclesEnd; +import nars.io.events.Events.CyclesStart; /** diff --git a/nars_core/nars/main/Shell.java b/nars_core/nars/main/Shell.java index 6a67b37884..9ea4c11d12 100644 --- a/nars_core/nars/main/Shell.java +++ b/nars_core/nars/main/Shell.java @@ -26,7 +26,7 @@ import java.io.PrintWriter; import java.util.logging.Level; import java.util.logging.Logger; import nars.main.NAR; -import nars.io.handlers.TextOutputHandler; +import nars.io.events.TextOutputHandler; /** * Run Reasoner diff --git a/nars_core/nars/operator/Operator.java b/nars_core/nars/operator/Operator.java index 90c409ca51..399a4fcf9f 100644 --- a/nars_core/nars/operator/Operator.java +++ b/nars_core/nars/operator/Operator.java @@ -21,7 +21,7 @@ package nars.operator; -import nars.util.Plugin; +import nars.plugin.Plugin; import java.util.Arrays; import java.util.List; import nars.storage.Memory; @@ -30,7 +30,7 @@ import nars.main.Parameters; import nars.entity.BudgetValue; import nars.entity.Task; import nars.entity.TruthValue; -import nars.io.handlers.OutputHandler.EXE; +import nars.io.events.OutputHandler.EXE; import nars.language.Product; import nars.language.Statement; import nars.language.Term; diff --git a/nars_core/nars/operator/mental/Anticipate.java b/nars_core/nars/operator/mental/Anticipate.java index 382139ee1b..3833fa8d6f 100644 --- a/nars_core/nars/operator/mental/Anticipate.java +++ b/nars_core/nars/operator/mental/Anticipate.java @@ -28,9 +28,9 @@ import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.Map; import java.util.Set; -import nars.util.EventEmitter.EventObserver; -import nars.util.Events; -import nars.util.Events.CycleEnd; +import nars.io.events.EventEmitter.EventObserver; +import nars.io.events.Events; +import nars.io.events.Events.CycleEnd; import nars.storage.Memory; import nars.main.NAR; import nars.main.Parameters; @@ -41,9 +41,9 @@ import nars.entity.Stamp; import nars.entity.Task; import nars.entity.TruthValue; import nars.inference.BudgetFunctions; -import nars.io.handlers.OutputHandler.ANTICIPATE; -import nars.io.handlers.OutputHandler.CONFIRM; -import nars.io.handlers.OutputHandler.DISAPPOINT; +import nars.io.events.OutputHandler.ANTICIPATE; +import nars.io.events.OutputHandler.CONFIRM; +import nars.io.events.OutputHandler.DISAPPOINT; import nars.io.Symbols; import nars.language.Interval; import nars.language.Product; diff --git a/nars_core/nars/operator/misc/MathExpression.java b/nars_core/nars/operator/misc/MathExpression.java index d6a4edfcc6..ea4c296d0d 100644 --- a/nars_core/nars/operator/misc/MathExpression.java +++ b/nars_core/nars/operator/misc/MathExpression.java @@ -2,8 +2,8 @@ package nars.operator.misc; import java.util.List; import nars.storage.Memory; -import nars.util.Texts; -import static nars.util.Texts.unescape; +import nars.io.Texts; +import static nars.io.Texts.unescape; import nars.language.Inheritance; import nars.language.Product; import nars.language.Term; diff --git a/nars_core/nars/util/Plugin.java b/nars_core/nars/plugin/Plugin.java similarity index 94% rename from nars_core/nars/util/Plugin.java rename to nars_core/nars/plugin/Plugin.java index bad436e65b..3daf93723d 100644 --- a/nars_core/nars/util/Plugin.java +++ b/nars_core/nars/plugin/Plugin.java @@ -1,4 +1,4 @@ -package nars.util; +package nars.plugin; import java.io.Serializable; import nars.main.NAR; diff --git a/nars_core/nars/plugin/mental/Abbreviation.java b/nars_core/nars/plugin/mental/Abbreviation.java index 5ddd47ac4b..a09710b545 100644 --- a/nars_core/nars/plugin/mental/Abbreviation.java +++ b/nars_core/nars/plugin/mental/Abbreviation.java @@ -1,10 +1,10 @@ package nars.plugin.mental; -import nars.util.Plugin; +import nars.plugin.Plugin; import com.google.common.collect.Lists; import java.util.ArrayList; -import nars.util.EventEmitter.EventObserver; -import nars.util.Events.TaskDerive; +import nars.io.events.EventEmitter.EventObserver; +import nars.io.events.Events.TaskDerive; import nars.storage.Memory; import nars.main.NAR; import nars.main.Parameters; diff --git a/nars_core/nars/plugin/mental/Counting.java b/nars_core/nars/plugin/mental/Counting.java index b678b9b614..f77542cdfc 100644 --- a/nars_core/nars/plugin/mental/Counting.java +++ b/nars_core/nars/plugin/mental/Counting.java @@ -1,10 +1,10 @@ package nars.plugin.mental; -import nars.util.EventEmitter.EventObserver; -import nars.util.Events; +import nars.io.events.EventEmitter.EventObserver; +import nars.io.events.Events; import nars.storage.Memory; import nars.main.NAR; -import nars.util.Plugin; +import nars.plugin.Plugin; import nars.entity.BudgetValue; import nars.entity.Sentence; import nars.entity.Stamp; diff --git a/nars_core/nars/plugin/mental/Emotions.java b/nars_core/nars/plugin/mental/Emotions.java index edb6f3f335..e09213e8b6 100644 --- a/nars_core/nars/plugin/mental/Emotions.java +++ b/nars_core/nars/plugin/mental/Emotions.java @@ -13,7 +13,7 @@ import nars.io.Symbols; import nars.language.Inheritance; import nars.language.SetInt; import nars.language.Term; -import nars.util.Plugin; +import nars.plugin.Plugin; /** emotional value; self-felt internal mental states; variables used to record emotional values */ public class Emotions implements Plugin { diff --git a/nars_core/nars/plugin/mental/InternalExperience.java b/nars_core/nars/plugin/mental/InternalExperience.java index eed934de62..17b15c545e 100644 --- a/nars_core/nars/plugin/mental/InternalExperience.java +++ b/nars_core/nars/plugin/mental/InternalExperience.java @@ -1,9 +1,9 @@ package nars.plugin.mental; -import nars.util.Plugin; +import nars.plugin.Plugin; import java.util.Arrays; -import nars.util.EventEmitter.EventObserver; -import nars.util.Events; +import nars.io.events.EventEmitter.EventObserver; +import nars.io.events.Events; import nars.storage.Memory; import nars.main.NAR; import nars.main.Parameters; diff --git a/nars_core/nars/plugin/misc/RuntimeNARSettings.java b/nars_core/nars/plugin/misc/RuntimeNARSettings.java index 0cc6a2f921..8f655327eb 100644 --- a/nars_core/nars/plugin/misc/RuntimeNARSettings.java +++ b/nars_core/nars/plugin/misc/RuntimeNARSettings.java @@ -5,7 +5,7 @@ package nars.plugin.misc; -import nars.util.Plugin; +import nars.plugin.Plugin; import nars.main.NAR; import nars.main.Parameters; diff --git a/nars_core/nars/storage/Memory.java b/nars_core/nars/storage/Memory.java index 0cd2b0bad1..e02eb0f832 100644 --- a/nars_core/nars/storage/Memory.java +++ b/nars_core/nars/storage/Memory.java @@ -21,8 +21,8 @@ package nars.storage; import nars.control.ConceptProcessing; -import nars.util.Events; -import nars.util.EventEmitter; +import nars.io.events.Events; +import nars.io.events.EventEmitter; import java.io.Serializable; import java.util.ArrayDeque; import java.util.Arrays; @@ -34,9 +34,9 @@ import java.util.Random; import nars.main.NAR; import nars.main.NAR.RuntimeParameters; import nars.main.Parameters; -import nars.util.Events.ResetEnd; -import nars.util.Events.ResetStart; -import nars.util.Events.TaskRemove; +import nars.io.events.Events.ResetEnd; +import nars.io.events.Events.ResetStart; +import nars.io.events.Events.TaskRemove; import nars.control.DerivationContext; import nars.control.GeneralInferenceControl; import nars.control.TemporalInferenceControl; @@ -50,8 +50,8 @@ import nars.entity.Task; import nars.entity.TruthValue; import nars.inference.BudgetFunctions; import static nars.inference.BudgetFunctions.truthToQuality; -import nars.io.handlers.OutputHandler.IN; -import nars.io.handlers.OutputHandler.OUT; +import nars.io.events.OutputHandler.IN; +import nars.io.events.OutputHandler.OUT; import nars.io.Symbols; import nars.language.Tense; import nars.language.Term; diff --git a/nars_gui/nars/gui/InferenceLogger.java b/nars_gui/nars/gui/InferenceLogger.java index 33bb5a1fda..080d05bc99 100644 --- a/nars_gui/nars/gui/InferenceLogger.java +++ b/nars_gui/nars/gui/InferenceLogger.java @@ -24,9 +24,9 @@ import java.io.PrintStream; import java.util.Arrays; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; -import nars.util.Events.ConceptNew; -import nars.util.Events.TaskAdd; -import nars.util.Events.TaskRemove; +import nars.io.events.Events.ConceptNew; +import nars.io.events.Events.TaskAdd; +import nars.io.events.Events.TaskRemove; import nars.main.NAR; import nars.entity.Concept; import nars.entity.Task; diff --git a/nars_gui/nars/gui/NARControls.java b/nars_gui/nars/gui/NARControls.java index 370b92181b..ce9e93b0ee 100644 --- a/nars_gui/nars/gui/NARControls.java +++ b/nars_gui/nars/gui/NARControls.java @@ -45,8 +45,8 @@ import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.SwingUtilities; -import nars.util.EventEmitter.EventObserver; -import nars.util.Events; +import nars.io.events.EventEmitter.EventObserver; +import nars.io.events.Events; import nars.storage.Memory; import nars.main.NAR; import nars.main.Parameters; @@ -56,11 +56,11 @@ import nars.gui.output.SentenceTablePanel; import nars.gui.output.SwingLogPanel; import nars.gui.output.TaskTree; import nars.gui.output.graph.NARGraphPanel; -import nars.io.handlers.OutputHandler; -import nars.io.handlers.TextOutputHandler; +import nars.io.events.OutputHandler; +import nars.io.events.TextOutputHandler; import nars.language.Interval.PortableInteger; -import nars.util.Events.CycleEnd; -import nars.util.Events.CyclesEnd; +import nars.io.events.Events.CycleEnd; +import nars.io.events.Events.CyclesEnd; public class NARControls extends JPanel implements ActionListener, EventObserver { diff --git a/nars_gui/nars/gui/NARSwing.java b/nars_gui/nars/gui/NARSwing.java index 51a9ddf06f..f73eba1c91 100644 --- a/nars_gui/nars/gui/NARSwing.java +++ b/nars_gui/nars/gui/NARSwing.java @@ -30,7 +30,7 @@ import javax.swing.JFrame; import javax.swing.UIManager; import javax.swing.border.EmptyBorder; import nars.main.NAR; -import nars.io.handlers.TextOutputHandler; +import nars.io.events.TextOutputHandler; /** * The main Swing GUI class of the open-nars project. diff --git a/nars_gui/nars/gui/graph/SentenceGraph.java b/nars_gui/nars/gui/graph/SentenceGraph.java index 99411d506b..52c2594132 100644 --- a/nars_gui/nars/gui/graph/SentenceGraph.java +++ b/nars_gui/nars/gui/graph/SentenceGraph.java @@ -1,257 +1,257 @@ -package nars.gui.graph; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.NoSuchElementException; -import nars.util.EventEmitter; -import nars.util.EventEmitter.EventObserver; -import nars.util.Events; -import nars.storage.Memory; -import nars.entity.Concept; -import nars.entity.Item; -import nars.entity.Sentence; -import nars.entity.Task; -import nars.language.CompoundTerm; -import nars.language.Interval.PortableDouble; -import nars.language.Statement; -import nars.language.Term; -import org.jgrapht.EdgeFactory; -import org.jgrapht.graph.DirectedMultigraph; - - - -abstract public class SentenceGraph<E> extends DirectedMultigraph<Term, E> implements EventObserver { - public final Memory memory; - - public static class GraphChange { } - - private boolean needInitialConcepts; - private boolean started; - - public final Map<Sentence, List<E>> components = new HashMap(); - - public final EventEmitter event = new EventEmitter( GraphChange.class ); - PortableDouble minConceptPri; - - public SentenceGraph(Memory memory, PortableDouble minConceptPri) { - super(/*null*/new EdgeFactory() { - - @Override public Object createEdge(Object v, Object v1) { - return null; - } - - }); - this.minConceptPri = minConceptPri; - this.memory = memory; - - reset(); - - start(); - - } - - private void setEvents(boolean n) { - if (memory!=null) { - memory.event.set(this, n, - Events.CyclesEnd.class, - Events.ConceptForget.class, - Events.ConceptBeliefAdd.class, - Events.ConceptBeliefRemove.class, - Events.ConceptGoalAdd.class, - Events.ConceptGoalRemove.class, - Events.ResetEnd.class - ); - } - } - - public void start() { - if (started) return; - started = true; - setEvents(true); - } - - public void stop() { - if (!started) return; - started = false; - setEvents(false); - } - - - @Override - public void event(final Class event, final Object[] a) { -// if (event!=FrameEnd.class) -// System.out.println(event + " " + Arrays.toString(a)); - - if (event == Events.ConceptForget.class) { - //remove all associated beliefs - Concept c = (Concept)a[0]; - - //create a clone of the list for thread safety - for (Task b : new ArrayList<Task>(c.beliefs)) { - remove(b.sentence); - } - } - else if (event == Events.ConceptBeliefAdd.class) { - Concept c = (Concept)a[0]; - Sentence s = ((Task)a[1]).sentence; - if(c.getPriority() > minConceptPri.get()) { - add(s, c); - } - } - else if (event == Events.ConceptBeliefRemove.class) { - Concept c = (Concept)a[0]; - Sentence s = (Sentence)a[1]; - remove(s); - } - /*else if (event == Events.ConceptGoalAdd.class) { - Concept c = (Concept)a[0]; - Sentence s = ((Task)a[1]).sentence; - add(s, c); - } - else if (event == Events.ConceptGoalRemove.class) { - Concept c = (Concept)a[0]; - Sentence s = (Sentence)a[1]; - remove(s); - }*/ - else if (event == Events.CyclesEnd.class) { - if (needInitialConcepts) - getInitialConcepts(); - } - else if (event == Events.ResetEnd.class) { - reset(); - } - } - - - - - protected boolean remove(Sentence s) { - List<E> componentList = components.get(s); - if (componentList!=null) { - for (E e : componentList) { - if (!containsEdge(e)) - continue; - Term source = getEdgeSource(e); - Term target = getEdgeTarget(e); - removeEdge(e); - ensureTermConnected(source); - ensureTermConnected(target); - } - componentList.clear(); - components.remove(s); - return true; - } - return false; - } - - public void reset() { - try { - this.removeAllEdges( new ArrayList(edgeSet()) ); - } - catch (Exception e) { - System.err.println(e); - } - - try { - this.removeAllVertices( new ArrayList(vertexSet()) ); - } - catch (Exception e) { - System.err.println(e); - } - - if (!edgeSet().isEmpty()) { - System.err.println(this + " edges not empty after reset()"); - System.exit(1); - } - if (!vertexSet().isEmpty()) { - System.err.println(this + " vertices not empty after reset()"); - System.exit(1); - } - - needInitialConcepts = true; - } - - private void getInitialConcepts() { - needInitialConcepts = false; - - try { - for (final Concept c : memory) { - for (final Task ts : c.beliefs) { - add(ts.sentence, c); - } - } - } - catch (NoSuchElementException e) { } - } - - protected final void ensureTermConnected(final Term t) { - if (inDegreeOf(t)+outDegreeOf(t) == 0) removeVertex(t); - } - - - abstract public boolean allow(Sentence s); - - abstract public boolean allow(CompoundTerm st); - - public boolean remove(final E s) { - if (!containsEdge(s)) - return false; - - Term from = getEdgeSource(s); - Term to = getEdgeTarget(s); - - - boolean r = removeEdge(s); - - - ensureTermConnected(from); - ensureTermConnected(to); - - if (r) - event.emit(GraphChange.class, null, s); - return true; - } - - - protected void addComponents(final Sentence parentSentence, final E edge) { - List<E> componentList = components.get(parentSentence); - if (componentList == null) { - componentList = new ArrayList(1); - components.put(parentSentence, componentList); - } - componentList.add(edge); - } - - public boolean add(final Sentence s, final Item c) { - - if (!allow(s)) - return false; - - if (s.term instanceof CompoundTerm) { - CompoundTerm cs = (CompoundTerm)s.term; - - if (cs instanceof Statement) { - - - Statement st = (Statement)cs; - if (allow(st)) { - - if (add(s, st, c)) { - event.emit(GraphChange.class, st, null); - return true; - } - } - } - - } - - return false; - } - - /** default behavior, may override in subclass */ - abstract public boolean add(final Sentence s, final CompoundTerm ct, final Item c); - - -} +package nars.gui.graph; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.NoSuchElementException; +import nars.io.events.EventEmitter; +import nars.io.events.EventEmitter.EventObserver; +import nars.io.events.Events; +import nars.storage.Memory; +import nars.entity.Concept; +import nars.entity.Item; +import nars.entity.Sentence; +import nars.entity.Task; +import nars.language.CompoundTerm; +import nars.language.Interval.PortableDouble; +import nars.language.Statement; +import nars.language.Term; +import org.jgrapht.EdgeFactory; +import org.jgrapht.graph.DirectedMultigraph; + + + +abstract public class SentenceGraph<E> extends DirectedMultigraph<Term, E> implements EventObserver { + public final Memory memory; + + public static class GraphChange { } + + private boolean needInitialConcepts; + private boolean started; + + public final Map<Sentence, List<E>> components = new HashMap(); + + public final EventEmitter event = new EventEmitter( GraphChange.class ); + PortableDouble minConceptPri; + + public SentenceGraph(Memory memory, PortableDouble minConceptPri) { + super(/*null*/new EdgeFactory() { + + @Override public Object createEdge(Object v, Object v1) { + return null; + } + + }); + this.minConceptPri = minConceptPri; + this.memory = memory; + + reset(); + + start(); + + } + + private void setEvents(boolean n) { + if (memory!=null) { + memory.event.set(this, n, + Events.CyclesEnd.class, + Events.ConceptForget.class, + Events.ConceptBeliefAdd.class, + Events.ConceptBeliefRemove.class, + Events.ConceptGoalAdd.class, + Events.ConceptGoalRemove.class, + Events.ResetEnd.class + ); + } + } + + public void start() { + if (started) return; + started = true; + setEvents(true); + } + + public void stop() { + if (!started) return; + started = false; + setEvents(false); + } + + + @Override + public void event(final Class event, final Object[] a) { +// if (event!=FrameEnd.class) +// System.out.println(event + " " + Arrays.toString(a)); + + if (event == Events.ConceptForget.class) { + //remove all associated beliefs + Concept c = (Concept)a[0]; + + //create a clone of the list for thread safety + for (Task b : new ArrayList<Task>(c.beliefs)) { + remove(b.sentence); + } + } + else if (event == Events.ConceptBeliefAdd.class) { + Concept c = (Concept)a[0]; + Sentence s = ((Task)a[1]).sentence; + if(c.getPriority() > minConceptPri.get()) { + add(s, c); + } + } + else if (event == Events.ConceptBeliefRemove.class) { + Concept c = (Concept)a[0]; + Sentence s = (Sentence)a[1]; + remove(s); + } + /*else if (event == Events.ConceptGoalAdd.class) { + Concept c = (Concept)a[0]; + Sentence s = ((Task)a[1]).sentence; + add(s, c); + } + else if (event == Events.ConceptGoalRemove.class) { + Concept c = (Concept)a[0]; + Sentence s = (Sentence)a[1]; + remove(s); + }*/ + else if (event == Events.CyclesEnd.class) { + if (needInitialConcepts) + getInitialConcepts(); + } + else if (event == Events.ResetEnd.class) { + reset(); + } + } + + + + + protected boolean remove(Sentence s) { + List<E> componentList = components.get(s); + if (componentList!=null) { + for (E e : componentList) { + if (!containsEdge(e)) + continue; + Term source = getEdgeSource(e); + Term target = getEdgeTarget(e); + removeEdge(e); + ensureTermConnected(source); + ensureTermConnected(target); + } + componentList.clear(); + components.remove(s); + return true; + } + return false; + } + + public void reset() { + try { + this.removeAllEdges( new ArrayList(edgeSet()) ); + } + catch (Exception e) { + System.err.println(e); + } + + try { + this.removeAllVertices( new ArrayList(vertexSet()) ); + } + catch (Exception e) { + System.err.println(e); + } + + if (!edgeSet().isEmpty()) { + System.err.println(this + " edges not empty after reset()"); + System.exit(1); + } + if (!vertexSet().isEmpty()) { + System.err.println(this + " vertices not empty after reset()"); + System.exit(1); + } + + needInitialConcepts = true; + } + + private void getInitialConcepts() { + needInitialConcepts = false; + + try { + for (final Concept c : memory) { + for (final Task ts : c.beliefs) { + add(ts.sentence, c); + } + } + } + catch (NoSuchElementException e) { } + } + + protected final void ensureTermConnected(final Term t) { + if (inDegreeOf(t)+outDegreeOf(t) == 0) removeVertex(t); + } + + + abstract public boolean allow(Sentence s); + + abstract public boolean allow(CompoundTerm st); + + public boolean remove(final E s) { + if (!containsEdge(s)) + return false; + + Term from = getEdgeSource(s); + Term to = getEdgeTarget(s); + + + boolean r = removeEdge(s); + + + ensureTermConnected(from); + ensureTermConnected(to); + + if (r) + event.emit(GraphChange.class, null, s); + return true; + } + + + protected void addComponents(final Sentence parentSentence, final E edge) { + List<E> componentList = components.get(parentSentence); + if (componentList == null) { + componentList = new ArrayList(1); + components.put(parentSentence, componentList); + } + componentList.add(edge); + } + + public boolean add(final Sentence s, final Item c) { + + if (!allow(s)) + return false; + + if (s.term instanceof CompoundTerm) { + CompoundTerm cs = (CompoundTerm)s.term; + + if (cs instanceof Statement) { + + + Statement st = (Statement)cs; + if (allow(st)) { + + if (add(s, st, c)) { + event.emit(GraphChange.class, st, null); + return true; + } + } + } + + } + + return false; + } + + /** default behavior, may override in subclass */ + abstract public boolean add(final Sentence s, final CompoundTerm ct, final Item c); + + +} diff --git a/nars_gui/nars/gui/input/KeyboardInputPanel.java b/nars_gui/nars/gui/input/KeyboardInputPanel.java index 4e22a0a0ce..6a6a68de99 100644 --- a/nars_gui/nars/gui/input/KeyboardInputPanel.java +++ b/nars_gui/nars/gui/input/KeyboardInputPanel.java @@ -14,8 +14,8 @@ import static java.awt.event.KeyEvent.CHAR_UNDEFINED; import java.awt.event.KeyListener; import javax.swing.JTextArea; import nars.main.NAR; -import nars.util.Texts; -import static nars.util.Texts.n2; +import nars.io.Texts; +import static nars.io.Texts.n2; /** * Direct keyboard input diff --git a/nars_gui/nars/gui/input/TextInputPanel.java b/nars_gui/nars/gui/input/TextInputPanel.java index 30d84ad1dc..82a6b74eac 100644 --- a/nars_gui/nars/gui/input/TextInputPanel.java +++ b/nars_gui/nars/gui/input/TextInputPanel.java @@ -53,7 +53,7 @@ import nars.gui.FileTreeModel; import nars.gui.input.TextInputPanel.InputAction; import nars.gui.input.TextInputPanel.TextInputMode; import static nars.gui.output.SwingLogPanel.setConsoleFont; -import nars.io.handlers.OutputHandler.OUT; +import nars.io.events.OutputHandler.OUT; public class TextInputPanel extends NPanel /*implements ActionListener*/ { diff --git a/nars_gui/nars/gui/output/ConceptsPanel.java b/nars_gui/nars/gui/output/ConceptsPanel.java index 5d86808d66..e8113fdb8b 100644 --- a/nars_gui/nars/gui/output/ConceptsPanel.java +++ b/nars_gui/nars/gui/output/ConceptsPanel.java @@ -28,9 +28,9 @@ import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField; -import nars.util.EventEmitter.EventObserver; -import nars.util.Events; -import nars.util.Events.CyclesEnd; +import nars.io.events.EventEmitter.EventObserver; +import nars.io.events.Events; +import nars.io.events.Events.CyclesEnd; import nars.main.NAR; import nars.entity.Concept; import nars.entity.Sentence; diff --git a/nars_gui/nars/gui/output/LogPanel.java b/nars_gui/nars/gui/output/LogPanel.java index 66755f704e..d4fb51f750 100644 --- a/nars_gui/nars/gui/output/LogPanel.java +++ b/nars_gui/nars/gui/output/LogPanel.java @@ -32,11 +32,11 @@ import nars.gui.InferenceLogger; import nars.gui.InferenceLogger.LogOutput; import nars.gui.NARControls; import nars.gui.WrapLayout; -import nars.io.handlers.EventHandler; -import nars.io.handlers.OutputHandler; -import nars.io.handlers.OutputHandler.ERR; -import nars.io.handlers.OutputHandler.EXE; -import nars.io.handlers.TextOutputHandler; +import nars.io.events.EventHandler; +import nars.io.events.OutputHandler; +import nars.io.events.OutputHandler.ERR; +import nars.io.events.OutputHandler.EXE; +import nars.io.events.TextOutputHandler; abstract public class LogPanel extends NPanel implements LogOutput { diff --git a/nars_gui/nars/gui/output/PluginPanel.java b/nars_gui/nars/gui/output/PluginPanel.java index 0ed66f9cbf..663698fe74 100644 --- a/nars_gui/nars/gui/output/PluginPanel.java +++ b/nars_gui/nars/gui/output/PluginPanel.java @@ -24,11 +24,11 @@ import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.SwingUtilities; import javax.swing.border.BevelBorder; -import nars.util.EventEmitter.EventObserver; -import nars.util.Events; +import nars.io.events.EventEmitter.EventObserver; +import nars.io.events.Events; import nars.main.NAR; import nars.main.NAR.PluginState; -import nars.util.Plugin; +import nars.plugin.Plugin; import nars.gui.util.PackageUtility; /** diff --git a/nars_gui/nars/gui/output/SwingLogPanel.java b/nars_gui/nars/gui/output/SwingLogPanel.java index ad744b9978..0d1ce0a5f7 100644 --- a/nars_gui/nars/gui/output/SwingLogPanel.java +++ b/nars_gui/nars/gui/output/SwingLogPanel.java @@ -17,7 +17,7 @@ import javax.swing.text.DefaultEditorKit; import javax.swing.text.JTextComponent; import nars.gui.NARControls; import nars.gui.output.SwingLogText.LogLine; -import nars.io.handlers.TextOutputHandler; +import nars.io.events.TextOutputHandler; public class SwingLogPanel extends LogPanel { diff --git a/nars_gui/nars/gui/output/SwingLogText.java b/nars_gui/nars/gui/output/SwingLogText.java index aaa97c3d19..a8398399fc 100644 --- a/nars_gui/nars/gui/output/SwingLogText.java +++ b/nars_gui/nars/gui/output/SwingLogText.java @@ -15,7 +15,7 @@ import nars.entity.Task; import nars.entity.TruthValue; import nars.inference.TruthFunctions; import nars.inference.UtilityFunctions; -import nars.io.handlers.OutputHandler.OUT; +import nars.io.events.OutputHandler.OUT; public class SwingLogText extends SwingText { diff --git a/nars_gui/nars/gui/output/TablePanel.java b/nars_gui/nars/gui/output/TablePanel.java index 2d14db0272..a21621ceab 100644 --- a/nars_gui/nars/gui/output/TablePanel.java +++ b/nars_gui/nars/gui/output/TablePanel.java @@ -9,7 +9,7 @@ import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; import nars.main.NAR; -import nars.io.handlers.OutputHandler; +import nars.io.events.OutputHandler; public abstract class TablePanel extends NPanel { diff --git a/nars_gui/nars/gui/output/TaskTree.java b/nars_gui/nars/gui/output/TaskTree.java index ac408bee9b..8d105ede5b 100644 --- a/nars_gui/nars/gui/output/TaskTree.java +++ b/nars_gui/nars/gui/output/TaskTree.java @@ -27,10 +27,10 @@ import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeCellRenderer; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreeNode; -import nars.util.EventEmitter.EventObserver; -import nars.util.Events.CyclesEnd; -import nars.util.Events.TaskAdd; -import nars.util.Events.TaskRemove; +import nars.io.events.EventEmitter.EventObserver; +import nars.io.events.Events.CyclesEnd; +import nars.io.events.Events.TaskAdd; +import nars.io.events.Events.TaskRemove; import nars.main.NAR; import nars.entity.Concept; import nars.entity.Task; diff --git a/nars_gui/nars/gui/output/graph/NARGraphVis.java b/nars_gui/nars/gui/output/graph/NARGraphVis.java index 7743c86e1e..a3c93bea03 100644 --- a/nars_gui/nars/gui/output/graph/NARGraphVis.java +++ b/nars_gui/nars/gui/output/graph/NARGraphVis.java @@ -24,9 +24,9 @@ import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JPanel; import javax.swing.JTextField; -import nars.util.EventEmitter.EventObserver; -import nars.util.Events.CyclesEnd; -import nars.util.Events.ResetEnd; +import nars.io.events.EventEmitter.EventObserver; +import nars.io.events.Events.CyclesEnd; +import nars.io.events.Events.ResetEnd; import nars.main.NAR; import nars.gui.output.graph.layout.CircleLayout; import nars.gui.util.DefaultGraphizer; diff --git a/nars_gui/nars/gui/util/MemoryObserver.java b/nars_gui/nars/gui/util/MemoryObserver.java index 9e687decf5..f86f5b9cdc 100644 --- a/nars_gui/nars/gui/util/MemoryObserver.java +++ b/nars_gui/nars/gui/util/MemoryObserver.java @@ -1,14 +1,14 @@ package nars.gui.util; -import nars.io.handlers.EventHandler; -import nars.util.Events; -import nars.util.Events.CycleEnd; -import nars.util.Events.CycleStart; +import nars.io.events.EventHandler; +import nars.io.events.Events; +import nars.io.events.Events.CycleEnd; +import nars.io.events.Events.CycleStart; import nars.storage.Memory; import nars.main.NAR; import nars.entity.Concept; import nars.entity.Task; -import nars.io.handlers.OutputHandler; +import nars.io.events.OutputHandler; public abstract class MemoryObserver extends EventHandler { diff --git a/nars_lab/nars/lab/grid2d/main/TestChamber.java b/nars_lab/nars/lab/grid2d/main/TestChamber.java index 0fba94d10c..c6d9a384ea 100644 --- a/nars_lab/nars/lab/grid2d/main/TestChamber.java +++ b/nars_lab/nars/lab/grid2d/main/TestChamber.java @@ -1,8 +1,8 @@ package nars.lab.grid2d.main; import java.util.List; -import nars.util.EventEmitter.EventObserver; -import nars.util.Events; +import nars.io.events.EventEmitter.EventObserver; +import nars.io.events.Events; import nars.main.NAR; import nars.main.Parameters; import nars.lab.grid2d.main.Cell.Logic; diff --git a/nars_lab/nars/lab/language/LanguageGUI.java b/nars_lab/nars/lab/language/LanguageGUI.java index 931f796550..280a25bb88 100644 --- a/nars_lab/nars/lab/language/LanguageGUI.java +++ b/nars_lab/nars/lab/language/LanguageGUI.java @@ -18,7 +18,7 @@ import java.util.logging.Logger; import nars.main.NAR; import nars.entity.Sentence; import nars.gui.NARSwing; -import nars.io.handlers.AnswerHandler; +import nars.io.events.AnswerHandler; /** * diff --git a/nars_lab/nars/lab/launcher/NARGame.java b/nars_lab/nars/lab/launcher/NARGame.java index 097933f5b5..792bae2d25 100644 --- a/nars_lab/nars/lab/launcher/NARGame.java +++ b/nars_lab/nars/lab/launcher/NARGame.java @@ -1,7 +1,7 @@ package nars.lab.launcher; -import nars.util.EventEmitter.EventObserver; -import nars.util.Events; +import nars.io.events.EventEmitter.EventObserver; +import nars.io.events.Events; import nars.storage.Memory; import nars.main.NAR; import nars.gui.NARSwing; diff --git a/nars_lab/nars/lab/microworld/SupervisedRecognition.java b/nars_lab/nars/lab/microworld/SupervisedRecognition.java index 2ed76a7704..a8f66dbb70 100644 --- a/nars_lab/nars/lab/microworld/SupervisedRecognition.java +++ b/nars_lab/nars/lab/microworld/SupervisedRecognition.java @@ -9,7 +9,7 @@ import nars.main.NAR; import nars.entity.Sentence; import nars.entity.Task; import nars.gui.NARSwing; -import nars.io.handlers.AnswerHandler; +import nars.io.events.AnswerHandler; import nars.io.Narsese; /** diff --git a/nars_lab/nars/lab/plugin/app/farg/FluidAnalogiesAgents.java b/nars_lab/nars/lab/plugin/app/farg/FluidAnalogiesAgents.java index db8666460e..a14838ef58 100644 --- a/nars_lab/nars/lab/plugin/app/farg/FluidAnalogiesAgents.java +++ b/nars_lab/nars/lab/plugin/app/farg/FluidAnalogiesAgents.java @@ -6,7 +6,7 @@ package nars.lab.plugin.app.farg; import nars.main.NAR; -import nars.util.Plugin; +import nars.plugin.Plugin; import nars.language.Term; import nars.storage.LevelBag; diff --git a/nars_lab/nars/lab/plugin/app/farg/Workspace.java b/nars_lab/nars/lab/plugin/app/farg/Workspace.java index 2b9e39daac..dc6e48f149 100644 --- a/nars_lab/nars/lab/plugin/app/farg/Workspace.java +++ b/nars_lab/nars/lab/plugin/app/farg/Workspace.java @@ -5,8 +5,8 @@ package nars.lab.plugin.app.farg; -import nars.util.EventEmitter.EventObserver; -import nars.util.Events.CycleEnd; +import nars.io.events.EventEmitter.EventObserver; +import nars.io.events.Events.CycleEnd; import nars.main.NAR; import nars.entity.Concept; import nars.storage.LevelBag; diff --git a/nars_lab/nars/lab/plugin/input/PerceptionAccel.java b/nars_lab/nars/lab/plugin/input/PerceptionAccel.java index 980618f8a4..3d1b0c3308 100644 --- a/nars_lab/nars/lab/plugin/input/PerceptionAccel.java +++ b/nars_lab/nars/lab/plugin/input/PerceptionAccel.java @@ -5,11 +5,11 @@ package nars.lab.plugin.input; import java.util.ArrayList; -import nars.util.EventEmitter; -import nars.util.Events; +import nars.io.events.EventEmitter; +import nars.io.events.Events; import nars.main.NAR; import nars.main.Parameters; -import nars.util.Plugin; +import nars.plugin.Plugin; import nars.control.DerivationContext; import nars.entity.BudgetValue; import nars.entity.Concept; diff --git a/nars_lab/nars/lab/plugin/mental/GlobalAnticipation.java b/nars_lab/nars/lab/plugin/mental/GlobalAnticipation.java index 577dfc76a6..ab1cc7ceae 100644 --- a/nars_lab/nars/lab/plugin/mental/GlobalAnticipation.java +++ b/nars_lab/nars/lab/plugin/mental/GlobalAnticipation.java @@ -8,12 +8,12 @@ package nars.lab.plugin.mental; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.List; -import nars.util.EventEmitter; -import nars.util.Events; +import nars.io.events.EventEmitter; +import nars.io.events.Events; import nars.main.NAR; import nars.main.NAR.PluginState; import nars.main.Parameters; -import nars.util.Plugin; +import nars.plugin.Plugin; import nars.control.DerivationContext; import nars.entity.BudgetValue; import nars.entity.Concept; diff --git a/nars_lab/nars/lab/predict/Predict_NARS_Core.java b/nars_lab/nars/lab/predict/Predict_NARS_Core.java index ceb359c97e..8a3a925969 100644 --- a/nars_lab/nars/lab/predict/Predict_NARS_Core.java +++ b/nars_lab/nars/lab/predict/Predict_NARS_Core.java @@ -16,7 +16,7 @@ import java.util.Random; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.ImageIcon; -import nars.util.Events.TaskImmediateProcess; +import nars.io.events.Events.TaskImmediateProcess; import nars.main.NAR; import nars.main.Parameters; import nars.control.DerivationContext; @@ -24,7 +24,7 @@ import nars.entity.Sentence; import nars.entity.Task; import nars.gui.NARSwing; import nars.inference.TruthFunctions; -import nars.io.handlers.AnswerHandler; +import nars.io.events.AnswerHandler; import nars.lab.ioutils.ChangedTextInput; import nars.io.Narsese; import nars.language.Term; diff --git a/nars_lab/nars/lab/testutils/OutputCondition.java b/nars_lab/nars/lab/testutils/OutputCondition.java index 97d860b62d..586867d5f9 100644 --- a/nars_lab/nars/lab/testutils/OutputCondition.java +++ b/nars_lab/nars/lab/testutils/OutputCondition.java @@ -8,7 +8,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; import nars.main.NAR; -import nars.io.handlers.OutputHandler; +import nars.io.events.OutputHandler; /** * Monitors an output stream for certain conditions. Used in testing and diff --git a/nars_lab/nars/lab/testutils/OutputContainsCondition.java b/nars_lab/nars/lab/testutils/OutputContainsCondition.java index 331d2cbeae..d30477a4cf 100644 --- a/nars_lab/nars/lab/testutils/OutputContainsCondition.java +++ b/nars_lab/nars/lab/testutils/OutputContainsCondition.java @@ -11,7 +11,7 @@ import java.util.TreeSet; import nars.main.NAR; import nars.entity.Sentence; import nars.entity.Task; -import nars.io.handlers.TextOutputHandler; +import nars.io.events.TextOutputHandler; import nars.operator.Operator.ExecutionResult; /** diff --git a/nars_lab/nars/lab/testutils/TuneTuffy.java b/nars_lab/nars/lab/testutils/TuneTuffy.java index 35c76c5282..542cb99fc7 100644 --- a/nars_lab/nars/lab/testutils/TuneTuffy.java +++ b/nars_lab/nars/lab/testutils/TuneTuffy.java @@ -6,12 +6,12 @@ package nars.lab.testutils; import java.io.File; import java.io.FileNotFoundException; -import nars.util.Events.Answer; +import nars.io.events.Events.Answer; import nars.main.NAR; import nars.entity.Sentence; import nars.entity.Task; -import nars.io.handlers.EventHandler; -import nars.io.handlers.OutputHandler.OUT; +import nars.io.events.EventHandler; +import nars.io.events.OutputHandler.OUT; import nars.io.Narsese; import nars.language.Term; diff --git a/nars_lab/nars/lab/tictactoe/GridButtonPanel.java b/nars_lab/nars/lab/tictactoe/GridButtonPanel.java index 6daf7e962d..994f92ce39 100644 --- a/nars_lab/nars/lab/tictactoe/GridButtonPanel.java +++ b/nars_lab/nars/lab/tictactoe/GridButtonPanel.java @@ -15,8 +15,8 @@ import java.awt.event.MouseWheelListener; import java.lang.reflect.Array; import javax.swing.JButton; import javax.swing.SwingUtilities; -import nars.util.EventEmitter.EventObserver; -import nars.util.Events.CyclesEnd; +import nars.io.events.EventEmitter.EventObserver; +import nars.io.events.Events.CyclesEnd; import nars.main.NAR; import nars.entity.Concept; diff --git a/nars_lab/nars/lab/tictactoe/TicTacToe.java b/nars_lab/nars/lab/tictactoe/TicTacToe.java index bac779e3d3..3f41324bc4 100644 --- a/nars_lab/nars/lab/tictactoe/TicTacToe.java +++ b/nars_lab/nars/lab/tictactoe/TicTacToe.java @@ -37,18 +37,18 @@ import java.util.Set; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; -import nars.util.EventEmitter.EventObserver; +import nars.io.events.EventEmitter.EventObserver; import nars.storage.Memory; import nars.main.NAR; import nars.entity.BudgetValue; import nars.entity.Concept; import nars.entity.Task; import nars.gui.NARSwing; -import nars.io.handlers.OutputHandler.OUT; +import nars.io.events.OutputHandler.OUT; import nars.language.Term; import nars.operator.Operation; import nars.operator.Operator; -import nars.util.Events.CyclesEnd; +import nars.io.events.Events.CyclesEnd; /** * diff --git a/nars_lab/nars/lab/vision/SymRecognizer.java b/nars_lab/nars/lab/vision/SymRecognizer.java index 7408c9debf..4693dc4e9c 100644 --- a/nars_lab/nars/lab/vision/SymRecognizer.java +++ b/nars_lab/nars/lab/vision/SymRecognizer.java @@ -20,7 +20,7 @@ import javax.swing.*; import nars.main.NAR; import nars.main.Parameters; import nars.entity.Sentence; -import nars.io.handlers.AnswerHandler; +import nars.io.events.AnswerHandler; import nars.io.Narsese; diff --git a/nars_lab/nars/lab/vision/SymRecognizerWithVisionChannel.java b/nars_lab/nars/lab/vision/SymRecognizerWithVisionChannel.java index 78f4f07c87..d984b92fc0 100644 --- a/nars_lab/nars/lab/vision/SymRecognizerWithVisionChannel.java +++ b/nars_lab/nars/lab/vision/SymRecognizerWithVisionChannel.java @@ -18,7 +18,7 @@ import javax.swing.*; import nars.main.NAR; import nars.main.Parameters; import nars.entity.Sentence; -import nars.io.handlers.AnswerHandler; +import nars.io.events.AnswerHandler; import nars.io.Narsese; diff --git a/nars_test/nars/core/NALTest.java b/nars_test/nars/core/NALTest.java index 210e59e412..5f305d0b8b 100644 --- a/nars_test/nars/core/NALTest.java +++ b/nars_test/nars/core/NALTest.java @@ -12,7 +12,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import nars.gui.InferenceLogger; -import nars.io.handlers.TextOutputHandler; +import nars.io.events.TextOutputHandler; import static org.junit.Assert.assertTrue; import org.junit.Test; import org.junit.experimental.ParallelComputer; diff --git a/nars_test/nars/core/TermTest.java b/nars_test/nars/core/TermTest.java index c66c06333f..36f393ae1d 100644 --- a/nars_test/nars/core/TermTest.java +++ b/nars_test/nars/core/TermTest.java @@ -21,7 +21,7 @@ import nars.main.Parameters; import java.util.TreeSet; import nars.entity.Concept; import nars.io.Symbols.NativeOperator; -import nars.util.Texts; +import nars.io.Texts; import nars.io.Narsese; import nars.language.CompoundTerm; import nars.language.Inheritance; diff --git a/nars_test/nars/core/TestMultistepEdited.java b/nars_test/nars/core/TestMultistepEdited.java index ddb5465b15..01425f16a4 100644 --- a/nars_test/nars/core/TestMultistepEdited.java +++ b/nars_test/nars/core/TestMultistepEdited.java @@ -1,7 +1,7 @@ package nars.core; import nars.main.NAR; -import nars.io.handlers.TextOutputHandler; +import nars.io.events.TextOutputHandler; import org.junit.Test; /** diff --git a/nars_test/nars/core/VariableTest.java b/nars_test/nars/core/VariableTest.java index 68fd5bc8f3..3bc785b294 100644 --- a/nars_test/nars/core/VariableTest.java +++ b/nars_test/nars/core/VariableTest.java @@ -5,9 +5,9 @@ package nars.core; import java.util.concurrent.atomic.AtomicBoolean; -import nars.util.Events.Answer; +import nars.io.events.Events.Answer; import nars.main.NAR; -import nars.io.handlers.EventHandler; +import nars.io.events.EventHandler; import nars.lab.testutils.OutputContainsCondition; import static org.junit.Assert.assertTrue; import org.junit.Before; diff --git a/nars_test/nars/perf/BagFairness.java b/nars_test/nars/perf/BagFairness.java index da48d48dfc..f6dfea1035 100644 --- a/nars_test/nars/perf/BagFairness.java +++ b/nars_test/nars/perf/BagFairness.java @@ -3,13 +3,13 @@ package nars.perf; import automenta.vivisect.TreeMLData; import java.awt.Color; import java.util.ArrayList; -import nars.util.EventEmitter.EventObserver; -import nars.util.Events; +import nars.io.events.EventEmitter.EventObserver; +import nars.io.events.Events; import nars.main.NAR; import nars.main.Parameters; import automenta.vivisect.swing.NWindow; import automenta.vivisect.timeline.LineChart; -import nars.util.Texts; +import nars.io.Texts; import nars.storage.Bag; import automenta.vivisect.timeline.Chart; import automenta.vivisect.timeline.MultiTimeline; diff --git a/nars_test/nars/util/TextsTest.java b/nars_test/nars/util/TextsTest.java index 0cf2016ae4..f9d8fe7c0d 100644 --- a/nars_test/nars/util/TextsTest.java +++ b/nars_test/nars/util/TextsTest.java @@ -1,5 +1,6 @@ package nars.util; +import nars.io.Texts; import static org.junit.Assert.assertEquals; import org.junit.Test; diff --git a/nars_web/src/nars/web/NARConnection.java b/nars_web/src/nars/web/NARConnection.java index db8dba74fb..1e7f5e861d 100644 --- a/nars_web/src/nars/web/NARConnection.java +++ b/nars_web/src/nars/web/NARConnection.java @@ -7,8 +7,8 @@ package nars.web; import nars.main.NAR; -import nars.io.handlers.TextOutputHandler; -import nars.io.handlers.TextOutputHandler.LineOutput; +import nars.io.events.TextOutputHandler; +import nars.io.events.TextOutputHandler.LineOutput; /** * An instance of a web socket session to a NAR -- GitLab