Querying a Requirement

Querying the Requirement

Once you have instantiated an OSLC client, you can use the GetRequirement class to request the content of a DOORS Next Requirement:

	OslcClient client = OslcClients.jazzForm(new UsernamePasswordCredentials("myUser", "myPassword")).create();
	
	URI requirementUri = URI.create("https://myServer:9443/rm/myRequirement");
	DngRequirement requirement = new GetRequirement(client, requirementUri).get();
	
	System.out.println("Title: " + requirement.getTitle());
	System.out.println("Identifier: " + requirement.getIdentifier());
	System.out.println("Primary Text: " + requirement.getPrimaryText());

Querying its resource shape

The Requirement resource is described by its resource shape. The resource shape provides a collection of properties that define the attributes and links available for the requirement. The resource shape is useful to dynamically discover the content of the requirement.

	ResourceShape shape =  new GetResourceShape(client, requirement.getInstanceShape()).get();
	for (Property property : shape.getProperties()) {
		System.out.println("Property: " + property.getTitle() + " - " + property.getPropertyDefinition());
		
		Object value = ResourceProperties.getObject(requirement, property);
		System.out.println("Value: " + value);
	}

Querying the attribute types

Some properties of the resource shape may reference custom attribute types, defined by the project administrator in DOORS Next. An attribute type may be an enumeration defining literals.

	// custom type?
	URI[] range = property.getRange();
	if (range.length == 1 && range[0].toString().contains("/types/")) {
	
		// query type and prints the enumeration literals (if any)
		AttributeType type = new GetAttributeType(client, range[0]).call().getEntity();
		for (EnumEntry literal : type.getEnumEntries()) {
			System.out.println("Literal: " + literal.getTitle());
		}
	}

Related concepts
Requirement

Related tasks
Creating an OSLC client
Querying OSLC Resources
Using OSLC Configurations
Updating a Requirement

Related reference
API Reference