From 3efb0688c9cdd7be4fd329593706c4a150a3824c Mon Sep 17 00:00:00 2001 From: Fedor Isakov Date: Thu, 17 Dec 2015 17:28:44 +0100 Subject: [PATCH] Updated API sources from the latest version of Logic --- reactor/API/pom.xml | 19 +- .../constraint/AbstractConstraint.java | 12 +- .../reactor/constraint/AbstractPredicate.java | 4 +- .../mps/logic/reactor/constraint/AndItem.java | 4 +- .../reactor/constraint/ComputingTracer.java | 16 + .../constraint/ConstraintOccurrence.java | 4 +- .../reactor/constraint/SessionSolver.java | 12 +- .../mps/logic/reactor/constraint/trace.info | 414 ++++++++++-------- .../logic/reactor/logical/ILogicalVar.java | 10 - .../logical/{ILogical.java => Logical.java} | 6 +- .../logic/reactor/logical/LogicalPattern.java | 16 + .../reactor/logical/MultiLogicalPattern.java | 14 + .../logic/reactor/logical/NamingContext.java | 18 +- .../mps/logic/reactor/logical/trace.info | 106 +++-- 14 files changed, 393 insertions(+), 262 deletions(-) delete mode 100644 reactor/API/src/jetbrains/mps/logic/reactor/logical/ILogicalVar.java rename reactor/API/src/jetbrains/mps/logic/reactor/logical/{ILogical.java => Logical.java} (70%) create mode 100644 reactor/API/src/jetbrains/mps/logic/reactor/logical/LogicalPattern.java create mode 100644 reactor/API/src/jetbrains/mps/logic/reactor/logical/MultiLogicalPattern.java diff --git a/reactor/API/pom.xml b/reactor/API/pom.xml index 41aff01b..4cf73c2a 100644 --- a/reactor/API/pom.xml +++ b/reactor/API/pom.xml @@ -4,29 +4,18 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - api - jar - jetbrains.mps.logic.reactor main - ${reactor.version} + 0.1 .. + api + jar + ${basedir}/src/ - - - org.apache.maven.plugins - maven-compiler-plugin - ${maven.version} - - 1.6 - 1.6 - - - diff --git a/reactor/API/src/jetbrains/mps/logic/reactor/constraint/AbstractConstraint.java b/reactor/API/src/jetbrains/mps/logic/reactor/constraint/AbstractConstraint.java index ec2a3582..0e90337f 100644 --- a/reactor/API/src/jetbrains/mps/logic/reactor/constraint/AbstractConstraint.java +++ b/reactor/API/src/jetbrains/mps/logic/reactor/constraint/AbstractConstraint.java @@ -2,10 +2,12 @@ package jetbrains.mps.logic.reactor.constraint; /*Generated by MPS */ -import java.util.List; +import java.util.Collection; import java.util.Collections; import java.util.Arrays; +import java.util.List; import java.util.ArrayList; +import jetbrains.mps.logic.reactor.logical.LogicalPattern; public class AbstractConstraint implements Constraint { @@ -18,14 +20,18 @@ public class AbstractConstraint implements Constraint { return symbol; } - public List arguments() { + public Collection arguments() { return Collections.unmodifiableList(Arrays.asList(arguments)); } public List> argumentTypes() { ArrayList> types = new ArrayList>(arguments.length); for (Object arg : arguments) { - types.add(arg.getClass()); + if (arg instanceof LogicalPattern) { + types.add(((LogicalPattern) arg).type()); + } else { + types.add(arg.getClass()); + } } return types; } diff --git a/reactor/API/src/jetbrains/mps/logic/reactor/constraint/AbstractPredicate.java b/reactor/API/src/jetbrains/mps/logic/reactor/constraint/AbstractPredicate.java index 1a3a19b9..86204d78 100644 --- a/reactor/API/src/jetbrains/mps/logic/reactor/constraint/AbstractPredicate.java +++ b/reactor/API/src/jetbrains/mps/logic/reactor/constraint/AbstractPredicate.java @@ -2,7 +2,7 @@ package jetbrains.mps.logic.reactor.constraint; /*Generated by MPS */ -import java.util.List; +import java.util.Collection; import java.util.Collections; import java.util.Arrays; @@ -13,7 +13,7 @@ public abstract class AbstractPredicate implements Predicate { } @Override - public List arguments() { + public Collection arguments() { return Collections.unmodifiableList(Arrays.asList(arguments)); } diff --git a/reactor/API/src/jetbrains/mps/logic/reactor/constraint/AndItem.java b/reactor/API/src/jetbrains/mps/logic/reactor/constraint/AndItem.java index c26c080f..1eb01bcc 100644 --- a/reactor/API/src/jetbrains/mps/logic/reactor/constraint/AndItem.java +++ b/reactor/API/src/jetbrains/mps/logic/reactor/constraint/AndItem.java @@ -2,12 +2,12 @@ package jetbrains.mps.logic.reactor.constraint; /*Generated by MPS */ -import java.util.List; +import java.util.Collection; public interface AndItem { public Symbol symbol(); - public List arguments(); + public Collection arguments(); } diff --git a/reactor/API/src/jetbrains/mps/logic/reactor/constraint/ComputingTracer.java b/reactor/API/src/jetbrains/mps/logic/reactor/constraint/ComputingTracer.java index 54c949d1..45670cf4 100644 --- a/reactor/API/src/jetbrains/mps/logic/reactor/constraint/ComputingTracer.java +++ b/reactor/API/src/jetbrains/mps/logic/reactor/constraint/ComputingTracer.java @@ -9,6 +9,22 @@ public interface ComputingTracer { public void askFailure(PredicateSymbol predicateSymbol, Object... args); + public void ask(PredicateSymbol predicateSymbol, Object... args); + + public void tell(Symbol symbol, Object... args); + public void reportFailure(String message); + public static final ComputingTracer NULL = new ComputingTracer() { + public void askSuccess(PredicateSymbol predicateSymbol, Object... args) { + } + public void askFailure(PredicateSymbol predicateSymbol, Object... args) { + } + public void ask(PredicateSymbol predicateSymbol, Object... args) { + } + public void tell(Symbol symbol, Object... args) { + } + public void reportFailure(String message) { + } + }; } diff --git a/reactor/API/src/jetbrains/mps/logic/reactor/constraint/ConstraintOccurrence.java b/reactor/API/src/jetbrains/mps/logic/reactor/constraint/ConstraintOccurrence.java index 3147b931..88b677ea 100644 --- a/reactor/API/src/jetbrains/mps/logic/reactor/constraint/ConstraintOccurrence.java +++ b/reactor/API/src/jetbrains/mps/logic/reactor/constraint/ConstraintOccurrence.java @@ -2,12 +2,12 @@ package jetbrains.mps.logic.reactor.constraint; /*Generated by MPS */ -import java.util.List; +import java.util.Collection; public interface ConstraintOccurrence { public Constraint constraint(); - public List arguments(); + public Collection arguments(); } diff --git a/reactor/API/src/jetbrains/mps/logic/reactor/constraint/SessionSolver.java b/reactor/API/src/jetbrains/mps/logic/reactor/constraint/SessionSolver.java index 5b67c7cd..ca58b675 100644 --- a/reactor/API/src/jetbrains/mps/logic/reactor/constraint/SessionSolver.java +++ b/reactor/API/src/jetbrains/mps/logic/reactor/constraint/SessionSolver.java @@ -11,20 +11,23 @@ import java.util.HashMap; public abstract class SessionSolver implements Instructible, Queryable { public void init(PredicateSymbol... predicateSymbols) { - registerSymbols(null, predicateSymbols); + registerSymbols(predicateSymbols); } public void init(ComputingTracer computingTracer, PredicateSymbol... predicateSymbols) { - registerSymbols(computingTracer, predicateSymbols); + tracer = computingTracer; + init(predicateSymbols); } @Override public boolean ask(PredicateSymbol predicateSymbol, Object... arg) { + tracer.ask(predicateSymbol, arg); return solver(predicateSymbol).ask(predicateSymbol, arg); } @Override public void tell(Symbol symbol, Object... arg) { + tracer.tell(symbol, arg); handler(symbol).tell(symbol, arg); } @@ -50,9 +53,9 @@ public abstract class SessionSolver implements Instructible, Queryable { return solver((PredicateSymbol) symbol); } - private void registerSymbols(ComputingTracer computingTracer, PredicateSymbol... predicateSymbols) { + private void registerSymbols(PredicateSymbol... predicateSymbols) { for (PredicateSymbol symbol : predicateSymbols) { - registerSymbol(symbol, computingTracer); + registerSymbol(symbol, tracer); } } @@ -64,4 +67,5 @@ public abstract class SessionSolver implements Instructible, Queryable { } private Map solvers = new HashMap(); + private ComputingTracer tracer = ComputingTracer.NULL; } diff --git a/reactor/API/src/jetbrains/mps/logic/reactor/constraint/trace.info b/reactor/API/src/jetbrains/mps/logic/reactor/constraint/trace.info index 58ee54ff..57c07954 100644 --- a/reactor/API/src/jetbrains/mps/logic/reactor/constraint/trace.info +++ b/reactor/API/src/jetbrains/mps/logic/reactor/constraint/trace.info @@ -1,5 +1,6 @@ + @@ -15,9 +16,22 @@ - - - + + + + + + + + + + + + + + + + @@ -26,20 +40,48 @@ - + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + @@ -57,33 +99,33 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -112,10 +154,10 @@ - - - - + + + + @@ -128,8 +170,8 @@ - - + + @@ -137,13 +179,13 @@ - - - - - - - + + + + + + + @@ -153,8 +195,8 @@ - - + + @@ -162,52 +204,57 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + - - + + - - - - - - - - - - + + + + + + + + + + @@ -223,7 +270,7 @@ - + @@ -233,7 +280,7 @@ - + @@ -243,127 +290,130 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + + + + - - - - - + - + - + - - + + + + + + + + + + - + - - - - - - + - + - + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -392,8 +442,8 @@ - - + + @@ -401,7 +451,7 @@ - + diff --git a/reactor/API/src/jetbrains/mps/logic/reactor/logical/ILogicalVar.java b/reactor/API/src/jetbrains/mps/logic/reactor/logical/ILogicalVar.java deleted file mode 100644 index 907e48d4..00000000 --- a/reactor/API/src/jetbrains/mps/logic/reactor/logical/ILogicalVar.java +++ /dev/null @@ -1,10 +0,0 @@ -package jetbrains.mps.logic.reactor.logical; - -/*Generated by MPS */ - - -public interface ILogicalVar { - - public ILogical logical(); - -} diff --git a/reactor/API/src/jetbrains/mps/logic/reactor/logical/ILogical.java b/reactor/API/src/jetbrains/mps/logic/reactor/logical/Logical.java similarity index 70% rename from reactor/API/src/jetbrains/mps/logic/reactor/logical/ILogical.java rename to reactor/API/src/jetbrains/mps/logic/reactor/logical/Logical.java index 72bc7e5c..69aa78d1 100644 --- a/reactor/API/src/jetbrains/mps/logic/reactor/logical/ILogical.java +++ b/reactor/API/src/jetbrains/mps/logic/reactor/logical/Logical.java @@ -3,13 +3,13 @@ package jetbrains.mps.logic.reactor.logical; /*Generated by MPS */ -public interface ILogical { +public interface Logical { public String name(); public String name(NamingContext namingContext); - public ILogical findRoot(); + public Logical findRoot(); public T value(); @@ -17,4 +17,6 @@ public interface ILogical { public boolean isWildcard(); + public LogicalPattern pattern(); + } diff --git a/reactor/API/src/jetbrains/mps/logic/reactor/logical/LogicalPattern.java b/reactor/API/src/jetbrains/mps/logic/reactor/logical/LogicalPattern.java new file mode 100644 index 00000000..5f30cffb --- /dev/null +++ b/reactor/API/src/jetbrains/mps/logic/reactor/logical/LogicalPattern.java @@ -0,0 +1,16 @@ +package jetbrains.mps.logic.reactor.logical; + +/*Generated by MPS */ + + +public interface LogicalPattern { + + public String name(); + + public String name(NamingContext namingContext); + + public boolean isWildcard(); + + public Class type(); + +} diff --git a/reactor/API/src/jetbrains/mps/logic/reactor/logical/MultiLogicalPattern.java b/reactor/API/src/jetbrains/mps/logic/reactor/logical/MultiLogicalPattern.java new file mode 100644 index 00000000..f9ff2150 --- /dev/null +++ b/reactor/API/src/jetbrains/mps/logic/reactor/logical/MultiLogicalPattern.java @@ -0,0 +1,14 @@ +package jetbrains.mps.logic.reactor.logical; + +/*Generated by MPS */ + + +public interface MultiLogicalPattern extends LogicalPattern { + + public int cardinality(); + + public LogicalPattern patternAt(int idx); + + public LogicalPattern[] toArray(); + +} diff --git a/reactor/API/src/jetbrains/mps/logic/reactor/logical/NamingContext.java b/reactor/API/src/jetbrains/mps/logic/reactor/logical/NamingContext.java index 906831b9..7460e364 100644 --- a/reactor/API/src/jetbrains/mps/logic/reactor/logical/NamingContext.java +++ b/reactor/API/src/jetbrains/mps/logic/reactor/logical/NamingContext.java @@ -8,11 +8,19 @@ import java.util.IdentityHashMap; public class NamingContext { - public String uniqueName(ILogical logical) { - if (!(cachedUnique.containsKey(logical))) { - cachedUnique.put(logical, makeUnique(logical.name())); + public String uniqueName(Logical logical) { + return cachedOrMakeUnique(logical, logical.name()); + } + + public String uniqueName(LogicalPattern logical) { + return cachedOrMakeUnique(logical, logical.name()); + } + + private String cachedOrMakeUnique(Object named, String name) { + if (!(cachedUnique.containsKey(named))) { + cachedUnique.put(named, makeUnique(name)); } - return cachedUnique.get(logical); + return cachedUnique.get(named); } private String makeUnique(String name) { @@ -28,6 +36,6 @@ public class NamingContext { private Map uniqueCounters = new HashMap(); - private Map cachedUnique = new IdentityHashMap(); + private Map cachedUnique = new IdentityHashMap(); } diff --git a/reactor/API/src/jetbrains/mps/logic/reactor/logical/trace.info b/reactor/API/src/jetbrains/mps/logic/reactor/logical/trace.info index e4b5c5a6..9eaab8bd 100644 --- a/reactor/API/src/jetbrains/mps/logic/reactor/logical/trace.info +++ b/reactor/API/src/jetbrains/mps/logic/reactor/logical/trace.info @@ -7,13 +7,14 @@ - + - + + @@ -22,49 +23,84 @@ - + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + +