@ Override public boolean supports ( TherianContext context , Copy < ? extends SOURCE , ? extends TARGET > copy ) { if ( context . eval ( ImmutableCheck . of ( copy . getTargetPosition ( ) ) ) . booleanValue ( ) && isRejectImmutable ( ) ) { return false ; } return TypeUtils . isAssignable ( copy . getSourceType ( ) . getType ( ) , getSourceBound ( ) ) && TypeUtils . isAssignable ( copy . getTargetType ( ) . getType ( ) , getTargetBound ( ) ) ; }
By default rejects immutable target positions and ensures that type parameters are compatible .