/** * The default constructor. * * @param functor * the function symbol name. It is defined the same as a * predicate. * @param terms * the list of arguments. */ protected FunctionalTermImpl(Predicate functor, Term... terms) { super(functor); EventGeneratingList<Term> eventlist = new EventGeneratingLinkedList<Term>(); Collections.addAll(eventlist, terms); this.terms = eventlist; registerListeners(eventlist); }
/** * The default constructor. * * @param functor * the function symbol name. It is defined the same as a * predicate. * @param terms * the list of arguments. */ protected FunctionalTermImpl(Predicate functor, Term... terms) { super(functor); EventGeneratingList<Term> eventlist = new EventGeneratingLinkedList<Term>(); Collections.addAll(eventlist, terms); this.terms = eventlist; registerListeners(eventlist); }
protected FunctionalTermImpl(Predicate functor, List<Term> terms) { super(functor); EventGeneratingList<Term> eventlist = new EventGeneratingLinkedList<Term>(); eventlist.addAll(terms); this.terms = eventlist; registerListeners(eventlist); }
protected FunctionalTermImpl(Predicate functor, List<Term> terms) { super(functor); EventGeneratingList<Term> eventlist = new EventGeneratingLinkedList<Term>(); eventlist.addAll(terms); this.terms = eventlist; registerListeners(eventlist); }
private void registerListeners(EventGeneratingList<? extends Term> functions) { functions.addListener(this); for (Object o : functions) { if (!(o instanceof Function)) { continue; } if (o instanceof ListenableFunction) { ListenableFunction f = (ListenableFunction) o; EventGeneratingList<Term> list = f.getTerms(); list.addListener(this); registerListeners(list); } else if (!(o instanceof ImmutableFunctionalTerm)) { throw new IllegalArgumentException("Unknown type of function: not listenable nor immutable: " + o); } } }
private void registerListeners(EventGeneratingList<? extends Term> functions) { functions.addListener(this); for (Object o : functions) { if (!(o instanceof Function)) { continue; } if (o instanceof ListenableFunction) { ListenableFunction f = (ListenableFunction) o; EventGeneratingList<Term> list = f.getTerms(); list.addListener(this); registerListeners(list); } else if (!(o instanceof ImmutableFunctionalTerm)) { throw new IllegalArgumentException("Unknown type of function: not listenable nor immutable: " + o); } } }