[Mulgara-svn] r1610 - in branches/consistency/src/jar/content-rlog/java/org/mulgara/krule/rlog: . ast
pag at mulgara.org
pag at mulgara.org
Fri Mar 13 01:32:04 UTC 2009
Author: pag
Date: 2009-03-12 18:32:03 -0700 (Thu, 12 Mar 2009)
New Revision: 1610
Modified:
branches/consistency/src/jar/content-rlog/java/org/mulgara/krule/rlog/Program.java
branches/consistency/src/jar/content-rlog/java/org/mulgara/krule/rlog/ast/Axiom.java
branches/consistency/src/jar/content-rlog/java/org/mulgara/krule/rlog/ast/CanonicalPredicate.java
branches/consistency/src/jar/content-rlog/java/org/mulgara/krule/rlog/ast/Rule.java
branches/consistency/src/jar/content-rlog/java/org/mulgara/krule/rlog/ast/Statement.java
Log:
Updated to use CanonicalStatement instead of a raw list of Canonical Predicates.
Modified: branches/consistency/src/jar/content-rlog/java/org/mulgara/krule/rlog/Program.java
===================================================================
--- branches/consistency/src/jar/content-rlog/java/org/mulgara/krule/rlog/Program.java 2009-03-13 01:31:24 UTC (rev 1609)
+++ branches/consistency/src/jar/content-rlog/java/org/mulgara/krule/rlog/Program.java 2009-03-13 01:32:03 UTC (rev 1610)
@@ -18,7 +18,7 @@
import java.util.List;
import org.apache.log4j.Logger;
-import org.mulgara.krule.rlog.ast.CanonicalPredicate;
+import org.mulgara.krule.rlog.ast.CanonicalStatement;
import org.mulgara.krule.rlog.ast.Statement;
/**
@@ -40,7 +40,7 @@
private List<Statement> statements;
/** The canonical forms of the statements that make up the program */
- private List<List<CanonicalPredicate>> canonicalStatements;
+ private List<CanonicalStatement> canonicalStatements;
/** The list of imports */
private List<URL> imports;
@@ -50,7 +50,7 @@
*/
public Program() {
statements = new ArrayList<Statement>();
- canonicalStatements = new ArrayList<List<CanonicalPredicate>>();
+ canonicalStatements = new ArrayList<CanonicalStatement>();
}
/**
@@ -76,7 +76,7 @@
* @param s The statement to add.
*/
public void add(Statement s) {
- List<CanonicalPredicate> canonical = s.getCanonical();
+ CanonicalStatement canonical = s.getCanonical();
if (!statementPresent(s, canonical)) {
statements.add(s);
canonicalStatements.add(canonical);
@@ -116,9 +116,9 @@
* @param canonical The canonicalized form of the statement to look for.
* @return <code>true</code> if an equivalent statement is found, <code>false</code> otherwise.
*/
- private boolean statementPresent(Statement stmt, List<CanonicalPredicate> canonical) {
+ private boolean statementPresent(Statement stmt, CanonicalStatement canonical) {
if (logger.isDebugEnabled()) logger.debug("Testing for presence of: " + stmt);
- for (List<CanonicalPredicate> s: canonicalStatements) {
+ for (CanonicalStatement s: canonicalStatements) {
if (canonical.equals(s)) {
if (logger.isDebugEnabled()) logger.debug(canonical.toString() + " == " + s);
return true;
Modified: branches/consistency/src/jar/content-rlog/java/org/mulgara/krule/rlog/ast/Axiom.java
===================================================================
--- branches/consistency/src/jar/content-rlog/java/org/mulgara/krule/rlog/ast/Axiom.java 2009-03-13 01:31:24 UTC (rev 1609)
+++ branches/consistency/src/jar/content-rlog/java/org/mulgara/krule/rlog/ast/Axiom.java 2009-03-13 01:32:03 UTC (rev 1610)
@@ -16,8 +16,6 @@
package org.mulgara.krule.rlog.ast;
-import java.util.Collections;
-import java.util.List;
import java.util.Set;
import org.mulgara.krule.rlog.ParseContext;
@@ -108,8 +106,8 @@
}
@Override
- public List<CanonicalPredicate> getCanonical() {
- return Collections.singletonList(predicate.getCanonical());
+ public CanonicalStatement getCanonical() {
+ return new CanonicalStatement(predicate.getCanonical());
}
/** @see java.lang.Object#toString() */
Modified: branches/consistency/src/jar/content-rlog/java/org/mulgara/krule/rlog/ast/CanonicalPredicate.java
===================================================================
--- branches/consistency/src/jar/content-rlog/java/org/mulgara/krule/rlog/ast/CanonicalPredicate.java 2009-03-13 01:31:24 UTC (rev 1609)
+++ branches/consistency/src/jar/content-rlog/java/org/mulgara/krule/rlog/ast/CanonicalPredicate.java 2009-03-13 01:32:03 UTC (rev 1610)
@@ -12,8 +12,6 @@
package org.mulgara.krule.rlog.ast;
-import java.util.Arrays;
-
/**
* Represents a canonicalization of a predicate.
*
@@ -117,7 +115,25 @@
* @see java.lang.Object#toString()
*/
public String toString() {
- return (invertFlag ? "~" : "") + Arrays.asList(elements).toString();
+ StringBuilder s = new StringBuilder();
+ if (invertFlag) s.append("~");
+ switch (elements.length) {
+ case NULL_LENGTH:
+ s.append("<<null>>");
+ break;
+ case UNARY_LENGTH:
+ s.append(elements[0]);
+ s.append("(").append(elements[1]).append(")");
+ break;
+ case BINARY_LENGTH:
+ s.append(elements[1]);
+ s.append("(").append(elements[0]).append(", ");
+ s.append(elements[2]).append(")");
+ break;
+ default:
+ throw new IllegalStateException("Illegal predicate structure. Length = " + elements.length);
+ }
+ return s.toString();
}
Modified: branches/consistency/src/jar/content-rlog/java/org/mulgara/krule/rlog/ast/Rule.java
===================================================================
--- branches/consistency/src/jar/content-rlog/java/org/mulgara/krule/rlog/ast/Rule.java 2009-03-13 01:31:24 UTC (rev 1609)
+++ branches/consistency/src/jar/content-rlog/java/org/mulgara/krule/rlog/ast/Rule.java 2009-03-13 01:32:03 UTC (rev 1610)
@@ -212,15 +212,11 @@
}
@Override
- public List<CanonicalPredicate> getCanonical() {
+ public CanonicalStatement getCanonical() {
List<CanonicalPredicate> list = new ArrayList<CanonicalPredicate>(body.size() + 1);
// reorder the predicates
for (Predicate p: body) C.ascendingInsert(list, p.getCanonical());
- list.add(head.getCanonical());
- // rename the variables
- VariableCanonicalizer vc = new VariableCanonicalizer();
- for (CanonicalPredicate p: list) p.renameVariables(vc);
- return list;
+ return new CanonicalStatement(head.getCanonical(), list);
}
Modified: branches/consistency/src/jar/content-rlog/java/org/mulgara/krule/rlog/ast/Statement.java
===================================================================
--- branches/consistency/src/jar/content-rlog/java/org/mulgara/krule/rlog/ast/Statement.java 2009-03-13 01:31:24 UTC (rev 1609)
+++ branches/consistency/src/jar/content-rlog/java/org/mulgara/krule/rlog/ast/Statement.java 2009-03-13 01:32:03 UTC (rev 1610)
@@ -16,8 +16,6 @@
package org.mulgara.krule.rlog.ast;
-import java.util.List;
-
import org.mulgara.krule.rlog.ParseContext;
/**
@@ -42,6 +40,6 @@
* statement must be sorted, but if a head exists then it must be at the end.
* @return A list containing the statement in canonical form.
*/
- public abstract List<CanonicalPredicate> getCanonical();
+ public abstract CanonicalStatement getCanonical();
}
More information about the Mulgara-svn
mailing list