public synchronized T acquire ( final DataSource source ) throws DataSourceException { if ( object == null ) { if ( getReference ( ) == null ) { throw new IllegalStateException ( "No reference or object present" ) ; } else { object = source . getObject ( getReference ( ) , objectClass ) ; } } return object ; }
Return the referenced object potentially performing a remote DataStore lookup and deserialisation . If the object is already present or has been previously acquired it is immediately returned .