public static ReasonerQueryImpl create ( Set < Atomic > as , TransactionOLTP tx ) { boolean isAtomic = as . stream ( ) . filter ( Atomic :: isSelectable ) . count ( ) == 1 ; return isAtomic ? new ReasonerAtomicQuery ( as , tx ) . inferTypes ( ) : new ReasonerQueryImpl ( as , tx ) . inferTypes ( ) ; }
create a reasoner query from provided set of atomics