package com.foundation.application; /** * The interface into the Amaranthine Defic Algorithm service that manages distributed locks and distribution of logical object change sets. */ public interface IAdaService { public void register(IAdaClient client); //TODO: Some way to register/unregister for notifications for certain types of logical object updates. /** * * Never blocks? Returns an update ID so the locker knows to ensure that the latest updates are applied before alterations are made? * @param type * @param key */ public void lockLogicalObject(String type, Object key); /** * * Blocks? How are failures handled? * @param type * @param key * @param changeSet */ public void applyLogicalObjectChanges(String type, Object key, Object changeSet); }//IAdaService//