@Override protected int size1() { return actualVars().size() ; }
@Override protected Node get1(Var var) { if ( !accept(var) ) return null ; return binding.get(var) ; }
@Override protected boolean isEmpty1() { if ( binding.isEmpty() ) return true ; if ( size1() == 0 ) return true ; return false ; } }
private List<Var> actualVars() { if ( actualVars == null ) { actualVars = new ArrayList<>() ; Iterator<Var> iter = binding.vars() ; for ( ; iter.hasNext() ; ) { Var v = iter.next() ; if ( accept(v) ) actualVars.add(v) ; } } return actualVars ; }
@Override protected boolean contains1(Var var) { return accept(var) && binding.contains(var) ; }
@Override protected Iterator<Var> vars1() { return actualVars().iterator() ; }