org.electrocodeogram.cpc.core.api.provider.store
Interface IRemotableStoreProvider

All Superinterfaces:
IProvider, IStoreProvider

public interface IRemotableStoreProvider
extends IStoreProvider

Extension interface for IStoreProvider which contains additional internal methods which must not be used by normal CPC modules.

These methods are chiefly of interest to remote store providers.

Author:
vw
See Also:
IStoreProvider, IDebuggableStoreProvider

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.electrocodeogram.cpc.core.api.provider.store.IStoreProvider
IStoreProvider.LockMode, IStoreProvider.UpdateMode
 
Method Summary
 void addCloneFile(ICloneFile cloneFile)
          Adds a new ICloneFile instance to the data store.
 void updateCloneFile(ICloneFile cloneFile)
          Updates an existing ICloneFile instance in the data store.
 
Methods inherited from interface org.electrocodeogram.cpc.core.api.provider.store.IStoreProvider
acquireWriteLock, acquireWriteLockNonBlocking, addClone, addCloneGroup, addClones, getClonesByFile, getClonesByFile, getClonesByGroup, getFullCloneObjectExtension, getFullCloneObjectExtension, getPersistedCloneFileContent, getPersistedClonesForFile, hintPurgeCache, hintPurgeCache, holdingWriteLock, lookupClone, lookupCloneFile, lookupCloneFileByPath, lookupCloneGroup, moveCloneFile, persistData, purgeCache, purgeData, purgeData, releaseWriteLock, removeClone, removeCloneGroup, removeClones, revertData, setWriteLockHook, updateClone, updateCloneGroup, updateClones
 
Methods inherited from interface org.electrocodeogram.cpc.core.api.provider.IProvider
getProviderName, toString
 

Method Detail

addCloneFile

void addCloneFile(ICloneFile cloneFile)
                  throws StoreLockingException
Adds a new ICloneFile instance to the data store.

This method is used by remote store providers to synchronise local clone data with a remote location.

This method is not meant to be used to create/persist new ICloneFile instances for files. Look at IStoreProvider.lookupCloneFileByPath(String, String, boolean, boolean) for that.

An exclusive write lock is required before this method may be called.

Parameters:
cloneFile - clone file instance to add, never null.
Throws:
StoreLockingException - thrown if the current thread does not hold an exclusive write lock.
See Also:
IStoreProvider.lookupCloneFileByPath(String, String, boolean, boolean)

updateCloneFile

void updateCloneFile(ICloneFile cloneFile)
                     throws StoreLockingException
Updates an existing ICloneFile instance in the data store.

This method is used by remote store providers to synchronise local clone data with a remote location.

This method is not needed for the updating of ICloneFile values during normal, local operation. IStoreProvider.persistData(ICloneFile) and IStoreProvider.moveCloneFile(ICloneFile, String, String) update these values.

An exclusive write lock is required before this method may be called.

Parameters:
cloneFile - clone file instance to update, the instance should already exist in local storage, never null.
Throws:
StoreLockingException - thrown if the current thread does not hold an exclusive write lock.
See Also:
IStoreProvider.persistData(ICloneFile), IStoreProvider.moveCloneFile(ICloneFile, String, String)