public boolean containsPlaceholder() { return containsPlaceholder(pattern); }
protected static boolean containsPlaceholder(ATerm term) { switch (term.getType()) { case ATerm.PLACEHOLDER : return true;  case ATerm.LIST : { ATermList list = (ATermList) term; if (list.isEmpty()) { return false; } return containsPlaceholder(list.getFirst()) || containsPlaceholder(list.getNext()); }  case ATerm.APPL : { ATermAppl appl = (ATermAppl) term; int arity = appl.getArity(); for (int i = 0; i < arity; i++) { if (containsPlaceholder(appl.getArgument(i))) { return true; } } return false; }  default : return false; } }
    public boolean containsPlaceholder() {        return containsPlaceholder(pattern);    }