use of org.jpl7.Term in project packages-jpl by SWI-Prolog.
the class TestJUnit method testHasMoreElements1.
@SuppressWarnings("unchecked")
public void testHasMoreElements1() {
StringBuffer sb = new StringBuffer();
Query q = new Query("atom_chars(prolog, Cs), member(C, Cs)");
Map<String, Term> soln;
q.open();
while (q.hasMoreElements()) {
soln = (Map<String, Term>) q.nextElement();
sb.append(((Atom) soln.get("C")).name());
}
q.close();
assertEquals("Query#hasMoreElements() + Query#nextElement() work as intended", "prolog", sb.toString());
}
use of org.jpl7.Term in project packages-jpl by SWI-Prolog.
the class TestJUnit method testVariableBinding1.
public void testVariableBinding1() {
Term lhs = new Compound("p", new Term[] { new Variable("X"), new Variable("Y") });
Term rhs = new Compound("p", new Term[] { new Atom("a"), new Atom("b") });
Term goal = new Compound("=", new Term[] { lhs, rhs });
Map<String, Term> soln = new Query(goal).oneSolution();
assertTrue("two Variables with different names can bind to distinct atoms", soln != null && (soln.get("X")).name().equals("a") && (soln.get("Y")).name().equals("b"));
}
use of org.jpl7.Term in project cassandra by apache.
the class SetType method fromJSONObject.
@Override
public Term fromJSONObject(Object parsed) throws MarshalException {
if (parsed instanceof String)
parsed = Json.decodeJson((String) parsed);
if (!(parsed instanceof List))
throw new MarshalException(String.format("Expected a list (representing a set), but got a %s: %s", parsed.getClass().getSimpleName(), parsed));
List list = (List) parsed;
Set<Term> terms = new HashSet<>(list.size());
for (Object element : list) {
if (element == null)
throw new MarshalException("Invalid null element in set");
terms.add(elements.fromJSONObject(element));
}
return new Sets.DelayedValue(elements, terms);
}
use of org.jpl7.Term in project cassandra by apache.
the class ListType method fromJSONObject.
@Override
public Term fromJSONObject(Object parsed) throws MarshalException {
if (parsed instanceof String)
parsed = Json.decodeJson((String) parsed);
if (!(parsed instanceof List))
throw new MarshalException(String.format("Expected a list, but got a %s: %s", parsed.getClass().getSimpleName(), parsed));
List list = (List) parsed;
List<Term> terms = new ArrayList<>(list.size());
for (Object element : list) {
if (element == null)
throw new MarshalException("Invalid null element in list");
terms.add(elements.fromJSONObject(element));
}
return new Lists.DelayedValue(terms);
}
use of org.jpl7.Term in project cassandra by apache.
the class MapType method fromJSONObject.
@Override
public Term fromJSONObject(Object parsed) throws MarshalException {
if (parsed instanceof String)
parsed = Json.decodeJson((String) parsed);
if (!(parsed instanceof Map))
throw new MarshalException(String.format("Expected a map, but got a %s: %s", parsed.getClass().getSimpleName(), parsed));
Map<Object, Object> map = (Map<Object, Object>) parsed;
Map<Term, Term> terms = new HashMap<>(map.size());
for (Map.Entry<Object, Object> entry : map.entrySet()) {
if (entry.getKey() == null)
throw new MarshalException("Invalid null key in map");
if (entry.getValue() == null)
throw new MarshalException("Invalid null value in map");
terms.put(keys.fromJSONObject(entry.getKey()), values.fromJSONObject(entry.getValue()));
}
return new Maps.DelayedValue(keys, terms);
}
Aggregations