/** * This method resolves metadata based on the context of the invocation. * It iterates through its list of MetaDataResolvers to find out the * value of the metadata desired. * * This list usually is ThreadMetaData, InstanceAdvisor.getMetaData * ClassAdvisor.getMethodMetaData (or field, or constructor) * ClassAdvisor.getDefaultMetaData */ public Object getMetaData(Object group, Object attr) { Object val = super.getMetaData(group, attr); if (val != null) return val; if (getAdvisor() != null) { val = getAdvisor().getFieldMetaData().resolve(this, group, attr); if (val != null) return val; } if (getAdvisor() != null) { val = getAdvisor().getDefaultMetaData().resolve(this, group, attr); if (val != null) return val; } return null; }
if (advisor.getFieldMetaData().hasTag(fieldName, sub) || advisor.getDefaultMetaData().hasTag(sub))
if (!advisor.getFieldMetaData().hasTag(fieldName, sub))
public void bind(Advisor advisor, ClassMetaDataBinding data, Method[] methods, Field[] fields, Constructor<?>[] constructors) throws Exception { SimpleClassMetaDataBinding meta = (SimpleClassMetaDataBinding) data; SimpleMetaData defaultData = advisor.getDefaultMetaData(); defaultData.mergeIn(meta.getDefaultMetaData()); SimpleMetaData classData = advisor.getClassMetaData(); classData.mergeIn(meta.getClassMetaData()); if (methods != null) { MethodMetaData methodData = advisor.getMethodMetaData(); bindMethodMetaData(advisor, meta, methodData, methods); } if (fields != null) { FieldMetaData fieldData = advisor.getFieldMetaData(); bindFieldMetaData(meta, fieldData, fields); } if (constructors != null) { ConstructorMetaData condata = advisor.getConstructorMetaData(); bindConstructorMetaData(meta, condata, constructors); } }
public void bind(Advisor advisor, ClassMetaDataBinding data, CtMethod[] methods, CtField[] fields, CtConstructor[] constructors) throws Exception { SimpleClassMetaDataBinding meta = (SimpleClassMetaDataBinding) data; SimpleMetaData defaultData = advisor.getDefaultMetaData(); defaultData.mergeIn(meta.getDefaultMetaData()); SimpleMetaData classData = advisor.getClassMetaData(); classData.mergeIn(meta.getClassMetaData()); if (methods != null) { MethodMetaData methodData = advisor.getMethodMetaData(); bindMethodMetaData(meta, methodData, methods); } if (fields != null) { FieldMetaData fieldData = advisor.getFieldMetaData(); bindFieldMetaData(meta, fieldData, fields); } if (constructors != null) { ConstructorMetaData condata = advisor.getConstructorMetaData(); bindConstructorMetaData(meta, condata, constructors); } }