private boolean validate(Object target, Object[] args) {
        if (ArrayUtils.getLength(args) < 4) {
            return false;
        }
        if (!(target instanceof ChannelGetter)) {
            if (isDebug) {
                logger.debug("Invalid target object. Need field accessor({}).", ChannelGetter.class.getName());
            }
            return false;
        }
        if (!(args[2] instanceof Envelope)) {
            if (isDebug) {
                String args2 = args[2] == null ? "null" : args[2].getClass().getName();
                logger.debug("Expected args[2] to be an instance of {}, but was {}", Envelope.class.getName(), args2);
            }
            return false;
        }
        // args[3] may be null
        if (args[3] != null && !(args[3] instanceof AMQP.BasicProperties)) {
            if (isDebug) {
                String args3 = args[3].getClass().getName();
                logger.debug("Expected args[3] to be an instance of {}, but was {}", AMQP.BasicProperties.class.getName(), args3);
            }
            return false;
        }
        return true;
    }
Consumer entry point interceptor for basic deliveries where messages will be delivered to a <tt>Consumer</tt>.

@author Jinkai.Ma
@author Jiaqi Feng
@author HyunGil Jeong
agent-module/plugins/rabbitmq/src/main/java/com/navercorp/pinpoint/plugin/rabbitmq/client/interceptor/RabbitMQConsumerDispatchInterceptor.java