@ Override public DOWriter getWriter ( boolean cachedObjectRequired , Context context , String pid ) throws ServerException , ObjectLockedException { if ( cachedObjectRequired ) { throw new InvalidContextException ( "A DOWriter is unavailable in a cached context." ) ; } else { BasicDigitalObject obj = new BasicDigitalObject ( ) ; getWriteLock ( pid ) ; boolean clean = false ; try { m_translator . deserialize ( m_permanentStore . retrieveObject ( pid ) , obj , m_defaultStorageFormat , m_storageCharacterEncoding , DOTranslationUtility . DESERIALIZE_INSTANCE ) ; DOWriter w = new SimpleDOWriter ( context , this , m_translator , m_defaultStorageFormat , m_storageCharacterEncoding , obj ) ; clean = true ; return w ; } finally { if ( ! clean ) { releaseWriteLock ( pid ) ; } } } }
Gets a writer on an existing object .