Grabación de propiedades

Puede establecer un valor nuevo para una propiedad mediante el método set específico de la propiedad para establecer el valor de propiedad en el objeto proxy. (Las propiedades sin método set no pueden establecerse mediante la API de Rational CM.) Al especificar valores nuevos en un método set, los valores se almacenan en el proxy. Los valores no se graban en el recurso real de su repositorio hasta que la aplicación cliente llama a un método do, como, por ejemplo, el método doWriteProperties en el objeto del proxy.

Debe llamar a un método do como, por ejemplo, el método doWriteProperties para actualizar el recurso subyacentes en el repositorio del producto. El método graba las propiedades actualizadas en el proxy para el recurso del producto en forma de una sola transacción. No se producen anomalías cuando los valores de la propiedad se establecen en el proxy, pero pueden producirse cuando se llama al método do. En dicho momento, es posible que se lance una excepción.

El ejemplo siguiente añade texto a la propiedad Comment de un recurso:
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);
El método doWriteProperties() utiliza un parámetro PropertyRequest.

No es necesario llamar a doReadProperties() antes de llamar a doWriteProperties() si sabe qué valor de propiedad debe grabarse sin leer primero el valor actual. En el ejemplo siguiente, el campo Owner de Defect SAMPL00000005 de la base de datos de muestra se establece en user = admin.

Ésta es la sintaxis de una serie de ubicación de registro:
cq.record:<tipo-registro>/<id-registro>@<nombre-conjunto-base-datos>/<nombre-base-datos>
En este ejemplo, la serie de la ubicación del registro es:
"cq.record:Defect/SAMPL00000005@7.0.0/SAMPL"
donde: El método Resource.setProperty se utiliza como alternativa a los métodos set específicos de interfaz.
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);

Consulte Sintaxis de ubicación para obtener más información.


Comentarios