// Internal class means getName will introduce an unwanted "$" sign
Logger logger = Logger.getLogger(operation.getClass().getCanonicalName());
if(logger.isLoggable(Level.FINE)) {
// just don't output anything for type or class collections, as they're special properties
if(!(TypeProperty.INSTANCE.equals(p) || new ClassCollectionProperty(getClass()).equals(p)))
logger.log(Level.FINE, "operation not performed on "+p.toGenericString()+" has no cascade "+cascade+" defined");
}
}
// We only perform operations on cascaded fields
if(used!=null) {
operation.operateOn(p, cascade);