{
String referenceName = reference.getName();
ClassAdvisor advisor = reference == clazz? clazzAdvisor:
manager.getTempClassAdvisor(reference);
final ClassLoader refCl = reference.getClassPool().getClassLoader();
InterceptionMarkers markers = manager.getInterceptionMarkers(refCl);
if (!markers.shouldSkipFieldAccess(referenceName) &&
!referenceName.equals(clazz.getName()))
{
List<CtField> fields = getAdvisableFields(reference);
if (fieldAccessTransformer.replaceFieldAccess(fields, reference, advisor))
{
markers.addFieldInterceptionMarker(referenceName);
converted = true;
}
else
{
markers.skipFieldAccess(referenceName);
}
}
if (!markers.shouldSkipConstruction(referenceName))
{
if (constructorExecutionTransformer.replaceConstructorAccess(advisor, reference))
{
markers.addConstructionInterceptionMarker(referenceName);
converted = true;
}
else
{
markers.skipConstruction(referenceName);
}
}
if (!converted)
{
markers.skipReference(referenceName);
}
}
return converted;
}