I have a custom attribute enumerated value. This attribute contains two labels called True and False with two values 1 and 0, respectively.
I think, the problem is that the client’s response and subsequent treatment to take the entity as a requirement class does not return the correct structure of this requirement. But i´m mot sure.
My code is:
private static boolean getAttributeLinks(String url, JazzRootServicesHelper helper, JazzFormAuthClient client, String projectArea) {
boolean isValid = false;
try {
/* Get the URL of the OSLC QualityManagement catalog */
String catalogUrl = helper.getCatalogUrl();
/* Find the OSLC Service Provider for the project area we want to work with */
String serviceProviderUrl = client.lookupServiceProviderUrl(catalogUrl, projectArea);
//STEP 6: Get the Query Capabilities URL so that we can run some OSLC queries
String queryCapability = client.lookupQueryCapability(serviceProviderUrl,
OSLCConstants.OSLC_RM_V2,
OSLCConstants.RM_REQUIREMENT_TYPE);
//Get Feature Requirement Type URL
ResourceShape featureInstanceShape = RmUtil.lookupRequirementsInstanceShapes(
serviceProviderUrl, OSLCConstants.OSLC_RM_V2,
OSLCConstants.RM_REQUIREMENT_TYPE, client, "Requirement");
// We need to use Resource shapes to properly handle date attributes,
// so they aren't interpreted as dateTime.
// The following 4 lines will enable the logic to properly handle date attributes
List < ResourceShape > shapes = new ArrayList < ResourceShape > ();
shapes.add(featureInstanceShape);
OSLC4JUtils.setShapes(shapes);
OSLC4JUtils.setInferTypeFromShape("true");
ClientResponse getResponse = client.getResource(url, OslcMediaType.APPLICATION_RDF_XML);
Requirement requirement = getResponse.getEntity(Requirement.class);
// Display attributes based on the Resource shape
Map < QName, Object > requestExtProperties = requirement.getExtendedProperties();
for (QName qname: requestExtProperties.keySet()) {
Property attr = featureInstanceShape.getProperty(new URI(qname.getNamespaceURI() + qname.getLocalPart()));
String name = null;
if (attr != null) {
name = attr.getTitle();
if (name != null) {
if (name.equals("CUSTOM_ATTR")) {
if (requirement.getExtendedProperties().get(qname).toString().equals("True"))
return true;
}
}
}
}
} catch (Exception e) {
logger.log(Level.SEVERE, e.getMessage(), e);
}
return isValid;
}
This code works fine if CUSTOM_ATTR is boolen type, but it do not work whether it´s enumerated value attribute.
Any suggestions on how to get the value from this enumerated attribute?
Thanks in advance.