initialized = ( ( this.initialization & CONTENT_INITIALIZED ) != 0 );
}
if( ! initialized || ! onlyIfNotInitialized )
{
final ElementPropertyBinding binding = binding();
final Resource resourceAfter = binding.read();
final boolean proceed;
synchronized( this )
{
final Resource resourceBefore = ( this.content == null ? null : this.content.resource() );
initialized = ( ( this.initialization & CONTENT_INITIALIZED ) != 0 );
proceed = ( ! initialized || resourceBefore != resourceAfter );
}
if( proceed )
{
T contentBefore;
T contentAfter = null;
if( resourceAfter != null )
{
final ElementType type = binding.type( resourceAfter );
contentAfter = type.instantiate( this, resourceAfter );
}
PropertyContentEvent event = null;