question: returns a spec that selects the union of those items selected by the provided spec . selects everything when no specs provided . concode_field_sep Spec<Object> SATISFIES_ALL concode_elem_sep Spec<Object> SATISFIES_NONE concode_field_sep NotSpec<T> not concode_elem_sep OrSpec<T> or concode_elem_sep OrSpec<T> or concode_elem_sep Spec<T> or concode_elem_sep Spec<T> intersect concode_elem_sep Spec<T> intersect concode_elem_sep AndSpec<T> and concode_elem_sep AndSpec<T> and concode_elem_sep Spec<T> negate concode_elem_sep boolean isSatisfiedBy concode_elem_sep boolean isSatisfiedBy concode_elem_sep Spec<T> satisfyAll concode_elem_sep Spec<T> satisfyNone concode_elem_sep Spec<T> convertClosureToSpec concode_elem_sep Spec<T> doUnion concode_elem_sep Spec<T> doIntersect
target: Spec < T > function ( Spec < ? super T > ... arg0 ) { if ( arg0 . length == 0 ) { return satisfyAll ( ) ; } if ( arg0 . length == 1 ) { return Cast . uncheckedCast ( arg0 [ 0 ] ) ; } return doUnion ( Arrays . asList ( arg0 ) ) ; }