package org.jerlang.erts.erlang;
import org.jerlang.type.Atom;
import org.jerlang.type.Boolean;
import org.jerlang.type.List;
import org.jerlang.type.Term;
import org.jerlang.type.Tuple;
public class ErlangIsRecord {
private ErlangIsRecord() {
}
public static Term dispatch(List params) {
switch (params.length()) {
case 2:
Term term = params.head();
params = params.tail();
Term recordTag = params.head();
return is_record_2(term, recordTag);
default:
throw Error.badarg;
}
}
/**
* http://www.erlang.org/doc/man/erlang.html#is_record-2
*/
public static Term is_record_2(Term term, Term recordTag) {
return Boolean.of((term instanceof Tuple)
&& (recordTag instanceof Atom)
&& recordTag.equals(term.toTuple().element(1)));
}
}