package com.baidu.tts.aop; import com.baidu.tts.chainofresponsibility.logger.LoggerProxy; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import java.util.ArrayList; import java.util.List; public abstract class AInterceptorHandler implements IInterceptorHandler { public static final Object DEFAULT = 0; public static final Object END = 1; protected List<IInterceptor> a; protected Object b; protected List<String> c = new ArrayList(); @Override // com.baidu.tts.aop.IInterceptorHandler public Object bind(Object obj, List<IInterceptor> list) { this.b = obj; this.a = list; Class<?> cls = this.b.getClass(); Object newProxyInstance = Proxy.newProxyInstance(cls.getClassLoader(), cls.getInterfaces(), this); LoggerProxy.d("AInterceptorHandler", "proxy=" + newProxyInstance); return newProxyInstance; } @Override // java.lang.reflect.InvocationHandler public Object invoke(Object obj, Method method, Object[] objArr) throws Throwable { if (!canIntercept(method.getName())) { return method.invoke(this.b, objArr); } if (a(this.b, method, objArr).equals(END)) { return null; } Object invoke = method.invoke(this.b, objArr); Object a2 = a(this.b, method, objArr, invoke); LoggerProxy.d("AInterceptorHandler", "afterResult=" + a2); return invoke; } @Override // com.baidu.tts.aop.IInterceptorHandler public void registerMethod(String str) { if (str != null) { this.c.add(str); } } @Override // com.baidu.tts.aop.IInterceptorHandler public void unregisterMethod(String str) { if (str != null) { this.c.remove(str); } } @Override // com.baidu.tts.aop.IInterceptorHandler public boolean canIntercept(String str) { return this.c.contains(str); } /* access modifiers changed from: protected */ public Object a(Object obj, Method method, Object[] objArr) { Object obj2 = DEFAULT; int size = this.a.size(); for (int i = 0; i < size; i++) { obj2 = this.a.get(i).before(obj, method, objArr); if (obj2.equals(END)) { return obj2; } } return obj2; } /* access modifiers changed from: protected */ public Object a(Object obj, Method method, Object[] objArr, Object obj2) { Object obj3 = DEFAULT; for (int size = this.a.size() - 1; size >= 0; size--) { obj3 = this.a.get(size).after(obj, method, objArr, obj2); } return obj3; } }