Пакет | mx.data |
Класс | public class ConflictDetector |
Наследование | ConflictDetector ![]() |
Язык версии: | ActionScript 3.0 |
Версия продукта: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
Версии среды выполнения: | Flash Player 9, AIR 1.1 |
Существуют три метода определения наличия конфликта при обработке инициированной операции: checkCreate()
, checkDelete()
и checkUpdate()
. Каждый из этих методов вызывается для соответствующей операции с предоставлением двух параметров: локальное и удаленное изменения.
Если необходимо указать способ обнаружения конфликтов в клиенте, можно расширить этот класс и дополнить поведение требуемым образом для соответствия логике удаленного ассемблера.
Приведенный ниже код предоставляет примеры использования этих методов для указания наличия конфликта. Конфликты всегда указываются в remoteChange.
Общедоступные свойства
Общедоступные методы
Метод | Определено | ||
---|---|---|---|
![]() |
Показывает, определено ли заданное свойство для объекта. | Object | |
![]() |
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | |
![]() |
Показывает наличие заданного свойства и его перечисляемость. | Object | |
![]() |
Задает доступность динамического свойства для операций цикла. | Object | |
![]() |
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | |
![]() |
Возвращает строковое представление заданного объекта. | Object | |
![]() |
Возвращает элементарное значение заданного объекта. | Object |
Сведения о конструкторе
Сведения о методе
Примеры Использование этого примера
override public function checkCreate(remoteChange:IChangeObject, localChange:IChangeObject):void { // if we have created a local item that is the same item as the remote // change then we have a conflict if (localChange != null && ObjectUtil.compare(remoteChange.identity, localChange.identity) == 0) { remoteChange.conflict("Local created item is in conflict with remotely created item", localChange.changedPropertyNames); } } override public function checkDelete(remoteChange:IChangeObject, localChange:IChangeObject):void { // if we have an update locally for an item that was deleted remotely // that is considered a conflict. if (localChange != null) { if (localChange.isUpdate()) { remoteChange.conflict("Local item was updated and is in conflict with pushed delete.", localChange.changedPropertyNames); } } } override public function checkUpdate(remoteChange:IChangeObject, localChange:IChangeObject):void { // get a list of all of the changed properties var changes:Array = remoteChange.changedPropertyNames; // get the remote state of the item's properties var newVersion:Object = remoteChange.newVersion; var prevVersion:Object = localChange.previousVersion; // properties will be in conflict if the old value of a property on the // local item is different from the same property value of the new version // of the remote item. var conflictingProps:Array = []; for (var i:int=0; i<changes.length; i++) { var prop:Object = changes[i]; // could be a String or QName if (ObjectUtil.compare(prevVersion[prop], newVersion[prop]) != 0) { conflictingProps.push(prop); } } if (conflictingProps.length > 0) { remoteChange.conflict("Local item has changes to properties that conflict with remote change.", conflictingProps); } }
Tue Jun 12 2018, 11:34 AM Z