@Nullable private static String structType(OtpErlangMap map) { OtpErlangObject structValue = map.get(new OtpErlangAtom("__struct__")); if (structValue instanceof OtpErlangAtom) { return ElixirModulesUtil.INSTANCE.erlangModuleNameToElixir(((OtpErlangAtom) structValue).atomValue()); } else { return null; } }
@Override public <T> boolean match(final OtpErlangObject term, final T binds) { if (!(term instanceof OtpErlangMap)) { return false; } final OtpErlangMap t = (OtpErlangMap) term; final int a = arity(); if (a > t.arity()) { return false; } if (a == 0) { return true; } OtpErlangObject key, val; for (final Map.Entry<OtpErlangObject, OtpErlangObject> e : entrySet()) { key = e.getKey(); val = e.getValue(); final OtpErlangObject v = t.get(key); if (v == null || !val.match(v, binds)) { return false; } } return true; }
key = e.getKey(); val = e.getValue(); final OtpErlangObject v = t.get(key); if (v == null || !val.equals(v)) { return false;