Lors de la spécification de nouvelles valeurs dans une méthode set, les valeurs sont stockées dans le proxy. Les valeurs ne sont pas écrites sur la ressource elle-même dans son référentiel tant que l'application client n'appelle pas une méthode do telle que la méthode doWriteProperties sur l'objet proxy.
Vous devez appeler une méthode do telle que la méthode doWriteProperties pour mettre à jour la ressource sous-jacente dans le référentiel produit. La méthode écrit les propriétés mises à jour dans le proxy sur la ressource produit, le tout en une seule transaction. Les échecs ne se produisent pas lorsque les valeurs de propriété sont définies dans le proxy, mais ils peuvent se produire lorsque la méthode do est appelée. A ce moment, une exception peut être générée.
PropertyRequest requestComment = new PropertyRequest (Resource.COMMENT ); Location location = myProvider.location(...); Resource myResource = myProvider.resource(location); myResource = myResource.doReadProperties(requestComment); String comment = myResource.getComment(); myResource.setComment(comment + "addition to comment"); myResource.doWriteProperties(null);La méthode doWriteProperties() prend un paramètre PropertyRequest.
Il n'est pas nécessaire d'appeler doReadProperties() avant d'appeler doWriteProperties() si vous savez quelle valeur de propriété écrire sans lire au préalable la valeur en cours. Dans l'exemple suivant, la zone de Défaut Auteur SAMPL00000005 dans l'exemple de base de données est définie sur user = admin.
cq.record:<record-type>/<record-id>@<db-set-name>/<database-name>Dans cet exemple, la chapine d'emplacement de l'enregistrement est :
"cq.record:Defect/SAMPL00000005@7.0.0/SAMPL"où :
CqRecord myRecord = myCqProvider.cqRecord(myProvider.stpLocation("cq.record:Defect/SAMPL00000005@7.0.0/SAMPL")); PropertyName<CqRecord> OWNER = new FieldName<CqRecord>("Owner"); myRecord.setProperty(OWNER, myProvider.buildProxy(CqRecord.class, "cq.record:users/admin@7.0.0/SAMPL")); myRecord.doWriteProperties(null);
Consultez Syntaxe de l'emplacement pour plus d'informations.