From e80818607c79eb7fcf71a336317136cb810d7418 Mon Sep 17 00:00:00 2001 From: Fedor Isakov Date: Thu, 22 Dec 2016 12:39:28 +0100 Subject: [PATCH] Introduce the Handler API. --- .../mps/logic/reactor/program/Handler.java | 14 ++++++++++++++ .../mps/logic/reactor/program/Program.java | 6 ++++++ reactor/Test/src/program/MemProgram.kt | 2 ++ 3 files changed, 22 insertions(+) create mode 100644 reactor/API/src/jetbrains/mps/logic/reactor/program/Handler.java diff --git a/reactor/API/src/jetbrains/mps/logic/reactor/program/Handler.java b/reactor/API/src/jetbrains/mps/logic/reactor/program/Handler.java new file mode 100644 index 00000000..8942af80 --- /dev/null +++ b/reactor/API/src/jetbrains/mps/logic/reactor/program/Handler.java @@ -0,0 +1,14 @@ +package jetbrains.mps.logic.reactor.program; + +/** + * @author Fedor Isakov + */ +public abstract class Handler { + + public abstract String name(); + + public abstract ConstraintSymbol primarySymbol(); + + public abstract Iterable rules(); + +} diff --git a/reactor/API/src/jetbrains/mps/logic/reactor/program/Program.java b/reactor/API/src/jetbrains/mps/logic/reactor/program/Program.java index a97cd8b8..a6376a0d 100644 --- a/reactor/API/src/jetbrains/mps/logic/reactor/program/Program.java +++ b/reactor/API/src/jetbrains/mps/logic/reactor/program/Program.java @@ -14,7 +14,13 @@ public abstract class Program { public abstract Iterable predicateSymbols(); + /** + * @deprecated use handlers().foreach{ yieldAll it.rules() } + * @return + */ + @Deprecated public abstract Iterable rules(); + public abstract Iterable handlers(); } diff --git a/reactor/Test/src/program/MemProgram.kt b/reactor/Test/src/program/MemProgram.kt index d5c2a484..117b0d8c 100644 --- a/reactor/Test/src/program/MemProgram.kt +++ b/reactor/Test/src/program/MemProgram.kt @@ -88,6 +88,8 @@ class MemProgram(val name: String, val myRules : List, val registry: Const registry.predicateSymbols() override fun rules(): Iterable = unmodifiableCollection(myRules) + + override fun handlers(): MutableIterable = TODO() }