ConditionalParameterizableFactory generic parameter extends constraint