Package | mx.data |
Classe | public class ConflictDetector |
Héritage | ConflictDetector Object |
Version du langage: | ActionScript 3.0 |
Version du produit: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Trois méthodes permettent de déterminer s’il y a conflit lors du traitement d’une opération transférée : checkCreate()
, checkDelete()
et checkUpdate()
. Chacune de ces méthodes est appelée pour l’opération correspondante en utilisant deux paramètres, la modification locale et la modification distante.
Si vous souhaitez personnaliser la manière dont les conflits sont détectés sur le client, vous pouvez étendre cette classe et améliorer le comportement en fonction de vos besoins, de manière à ce qu’il correspondre à la logique de l’assembleur distant.
Le code ci-dessous montre comment ces méthodes peuvent être utilisées pour indiquer qu’un conflit est survenu. Les conflits sont systématiquement indiqués dans le paramètre remoteChange.
Méthode | Défini par | ||
---|---|---|---|
ConflictDetector(dataService:ConcreteDataService)
Crée une instance du mécanisme par défaut de détection des conflits. | ConflictDetector | ||
Appelée par l’instance DataService lorsqu’une opération de création est transférée/traitée à partir de la destination distante. | ConflictDetector | ||
Appelée par l’instance DataService lorsqu’une opération de suppression est transférée/traitée à partir de la destination distante. | ConflictDetector | ||
Appelée par l’instance DataService lorsqu’une opération de suppression du remplissage est transférée/traitée à partir de la destination distante. | ConflictDetector | ||
Appelée par l’instance DataService lorsqu’une opération de mise à jour est transférée/traitée à partir de la destination distante. | ConflictDetector | ||
Indique si la propriété spécifiée d’un objet est définie. | Object | ||
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l’objet spécifié en tant que paramètre. | Object | ||
Indique si la propriété spécifiée existe et est énumérable. | Object | ||
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle. | Object | ||
Renvoie la représentation de chaîne de cet objet, formatée selon les paramètres régionaux en vigueur. | Object | ||
Renvoie la représentation sous forme de chaîne de l’objet spécifié. | Object | ||
Renvoie la valeur primitive de l’objet spécifié. | Object |
ConflictDetector | () | Constructeur |
public function ConflictDetector(dataService:ConcreteDataService)
Version du langage: | ActionScript 3.0 |
Version du produit: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Crée une instance du mécanisme par défaut de détection des conflits.
ParamètresdataService:ConcreteDataService — Référence ConcreteDataService au service de données qui utilisera ce détecteur de conflit.
|
checkCreate | () | méthode |
public function checkCreate(remoteChange:IChangeObject, localChange:IChangeObject):void
Version du langage: | ActionScript 3.0 |
Version du produit: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Appelée par l’instance DataService lorsqu’une opération de création est transférée/traitée à partir de la destination distante.
Paramètres
remoteChange:IChangeObject — Interface IChangeObject représentant la modification distante avant le traitement.
| |
localChange:IChangeObject — Interface IChangeObject représentant les modifications locales apportées à l’objet référencé par le paramètre remoteChange . Cette valeur peut être null si aucune modification locale n’a été apportée à l’élément représenté par le paramètre remoteChange .
|
checkDelete | () | méthode |
public function checkDelete(remoteChange:IChangeObject, localChange:IChangeObject):void
Version du langage: | ActionScript 3.0 |
Version du produit: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Appelée par l’instance DataService lorsqu’une opération de suppression est transférée/traitée à partir de la destination distante.
Paramètres
remoteChange:IChangeObject — Interface IChangeObject représentant la modification distante avant le traitement.
| |
localChange:IChangeObject — Interface IChangeObject représentant les modifications locales apportées à l’objet référencé par le paramètre remoteChange . Cette valeur peut être null si aucune modification locale n’a été apportée à l’élément représenté par le paramètre remoteChange .
|
checkRemoveFromFill | () | méthode |
public function checkRemoveFromFill(localChange:IChangeObject, fillParameters:Object):void
Version du langage: | ActionScript 3.0 |
Version du produit: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Appelée par l’instance DataService lorsqu’une opération de suppression du remplissage est transférée/traitée à partir de la destination distante.
Paramètres
localChange:IChangeObject — Objet IChangeObject représentant la version locale de l’élément que le serveur demande de supprimer du remplissage spécifié
| |
fillParameters:Object — paramètres de remplissage identifiant le remplissage duquel l’élément doit être supprimé.
|
checkUpdate | () | méthode |
public function checkUpdate(remoteChange:IChangeObject, localChange:IChangeObject):void
Version du langage: | ActionScript 3.0 |
Version du produit: | Adobe Digital Enterprise Platform Data Services for Java EE 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Appelée par l’instance DataService lorsqu’une opération de mise à jour est transférée/traitée à partir de la destination distante.
Paramètres
remoteChange:IChangeObject — Interface IChangeObject représentant la modification distante avant le traitement.
| |
localChange:IChangeObject — Interface IChangeObject représentant les modifications locales apportées à l’objet référencé par le paramètre remoteChange . Cette valeur peut être null si aucune modification locale n’a été apportée à l’élément représenté par le paramètre remoteChange .
|
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, 09:30 AM Z