private void addPredicate(Predicate<? super T> predicate) {
        requireNonNull(predicate);
        if (!(predicate instanceof FieldPredicate || predicate instanceof CombinedPredicate)) {
            throw new IllegalArgumentException(
                "The predicate " + predicate + " for join stage "
                + stageBeans.size() + " does not implement "
                + FieldPredicate.class.getName()
                + " or "
                + CombinedPredicate.class.getName()
                + ". Only Speedment predicates can be used for join operations"
                + " (and thus no anonymous lambdas)."
            );
        }
        stageBean.getPredicates().add(predicate);
    }
Returns a mutable list of mutable StageBean objects.

@return a mutable list of mutable StageBean objects
runtime-parent/runtime-join/src/main/java/com/speedment/runtime/join/internal/component/join/AbstractJoinBuilder.java