Paket | mx.data |
Klasse | public class ConflictDetector |
Vererbung | ConflictDetector ![]() |
Sprachversion: | ActionScript 3.0 |
Produktversion: | Adobe Digital Enterprise Platform Data Services für Java EE 3 |
Laufzeitversionen: | Flash Player 9, AIR 1.1 |
Es sind drei Methoden vorhanden, die dazu verwendet werden, einen bestehenden Konflikt zu ermitteln, wenn ein ausgegebener Vorgang verarbeitet wird: checkCreate()
, checkDelete()
und checkUpdate()
. Jede dieser Methoden wird für den entsprechenden Vorgang mit zwei Parametern, der Lokal- und der Remote-Änderung, aufgerufen.
Wenn Sie anpassen möchten, wie Konflikte auf dem Client erkannt werden, können Sie diese Klasse erweitern und das Verhalten nach Bedarf ergänzen, um eine Übereinstimmung mit der Remote-Assemblerlogik zu erreichen.
Der folgende Code stellt Beispiele für die Verwendung dieser Methoden bereit, um anzuzeigen, dass ein Konflikt aufgetreten ist. Konflikte werden immer in der remoteChange angezeigt.
Öffentliche Eigenschaften
Öffentliche Methoden
Methode | Definiert von | ||
---|---|---|---|
![]() |
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde. | Object | |
![]() |
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde. | Object | |
![]() |
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann. | Object | |
![]() |
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest. | Object | |
![]() |
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas. | Object | |
![]() |
Gibt das angegebene Objekt als String zurück. | Object | |
![]() |
Gibt den Grundwert des angegebenen Objekts zurück. | Object |
Konstruktordetails
Methodendetails
Beispiele Verwendung dieses Beispiels
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, 10:04 AM Z