Paket | mx.data |
Klasse | public class ConflictDetector |
Vererbung | ConflictDetector Object |
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.
Methode | Definiert von | ||
---|---|---|---|
ConflictDetector(dataService:ConcreteDataService)
Erstellt eine Instanz des Standardkonflikterkennungsmechanismus. | ConflictDetector | ||
Vom DataService aufgerufen, wenn ein Erstellungsvorgang vom Remote-Ziel ausgegeben/verarbeitet wird. | ConflictDetector | ||
Vom DataService aufgerufen, wenn ein Löschvorgang vom Remote-Ziel ausgegeben/verarbeitet wird. | ConflictDetector | ||
Vom DataService aufgerufen, wenn der Vorgang zum Entfernen aus einer Füllung vom Remote-Ziel ausgegeben/verarbeitet wird. | ConflictDetector | ||
Vom DataService aufgerufen, wenn ein Aktualisierungsvorgang vom Remote-Ziel ausgegeben/verarbeitet wird. | ConflictDetector | ||
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 |
ConflictDetector | () | Konstruktor |
public function ConflictDetector(dataService:ConcreteDataService)
Sprachversion: | ActionScript 3.0 |
Produktversion: | Adobe Digital Enterprise Platform Data Services für Java EE 3 |
Laufzeitversionen: | Flash Player 9, AIR 1.1 |
Erstellt eine Instanz des Standardkonflikterkennungsmechanismus.
ParameterdataService:ConcreteDataService — ConcreteDataService-Verweis zum Datendienst, der diese Konflikterkennung verwenden soll.
|
checkCreate | () | Methode |
public function checkCreate(remoteChange:IChangeObject, localChange:IChangeObject):void
Sprachversion: | ActionScript 3.0 |
Produktversion: | Adobe Digital Enterprise Platform Data Services für Java EE 3 |
Laufzeitversionen: | Flash Player 9, AIR 1.1 |
Vom DataService aufgerufen, wenn ein Erstellungsvorgang vom Remote-Ziel ausgegeben/verarbeitet wird.
Parameter
remoteChange:IChangeObject — IChangeObject, das die verarbeitete Remote-Änderung darstellt.
| |
localChange:IChangeObject — IChangeObject, das alle lokalen Änderungen am gleichen Objekt darstellt, auf das vom remoteChange -Parameter verwiesen wird. Dieser Wert kann null sein, wenn keine lokalen Änderungen am Element durchgeführt wurden, das durch den remoteChange -Parameter dargestellt wird.
|
checkDelete | () | Methode |
public function checkDelete(remoteChange:IChangeObject, localChange:IChangeObject):void
Sprachversion: | ActionScript 3.0 |
Produktversion: | Adobe Digital Enterprise Platform Data Services für Java EE 3 |
Laufzeitversionen: | Flash Player 9, AIR 1.1 |
Vom DataService aufgerufen, wenn ein Löschvorgang vom Remote-Ziel ausgegeben/verarbeitet wird.
Parameter
remoteChange:IChangeObject — IChangeObject, das die verarbeitete Remote-Änderung darstellt.
| |
localChange:IChangeObject — IChangeObject, das alle lokalen Änderungen am gleichen Objekt darstellt, auf das vom remoteChange -Parameter verwiesen wird. Dieser Wert kann null sein, wenn keine lokalen Änderungen am Element durchgeführt wurden, das durch den remoteChange -Parameter dargestellt wird.
|
checkRemoveFromFill | () | Methode |
public function checkRemoveFromFill(localChange:IChangeObject, fillParameters:Object):void
Sprachversion: | ActionScript 3.0 |
Produktversion: | Adobe Digital Enterprise Platform Data Services für Java EE 3 |
Laufzeitversionen: | Flash Player 9, AIR 1.1 |
Vom DataService aufgerufen, wenn der Vorgang zum Entfernen aus einer Füllung vom Remote-Ziel ausgegeben/verarbeitet wird.
Parameter
localChange:IChangeObject — IChangeObject, das die lokale Version des Elements darstellt, das entsprechend der Serveraufforderung aus der angegebenen Füllung entfernt werden soll.
| |
fillParameters:Object — Füllparameter, welche die Füllung angeben, aus der das Element entfernt werden soll.
|
checkUpdate | () | Methode |
public function checkUpdate(remoteChange:IChangeObject, localChange:IChangeObject):void
Sprachversion: | ActionScript 3.0 |
Produktversion: | Adobe Digital Enterprise Platform Data Services für Java EE 3 |
Laufzeitversionen: | Flash Player 9, AIR 1.1 |
Vom DataService aufgerufen, wenn ein Aktualisierungsvorgang vom Remote-Ziel ausgegeben/verarbeitet wird.
Parameter
remoteChange:IChangeObject — IChangeObject, das die verarbeitete Remote-Änderung darstellt.
| |
localChange:IChangeObject — IChangeObject, das alle lokalen Änderungen am gleichen Objekt darstellt, auf das vom remoteChange -Parameter verwiesen wird. Dieser Wert kann null sein, wenn keine lokalen Änderungen am Element durchgeführt wurden, das durch den remoteChange -Parameter dargestellt wird.
|
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