PropertyPersistenceStrategy findStrategy(IComponent component,
String propertyName)
{
// So much for Law of Demeter!
IPropertySpecification propertySpecification = component
.getSpecification().getPropertySpecification(propertyName);
if (propertySpecification == null)
{
_log.error(RecordMessages.missingPropertySpecification(
propertyName, component), null, null);
return null;
}
String name = propertySpecification.getPersistence();
// Should check for nulls, but the architecture of the framework pretty
// much
// ensures that we won't get here unless there is a property
// and a persistence value for the property.
try
{
return _strategySource.getStrategy(name);
}
catch (ApplicationRuntimeException ex)
{
_log
.error(ex.getMessage(),
propertySpecification.getLocation(), ex);
return null;
}
}