How to get custom attribute of type enumeration server side
Hello All,
Can some one suggest how to get (read) the story point enumeration value to make use in a server side plug-in ?
Below code works for standard attribute like duration, but not for enumeration type.
------------
--------------
Thank you.
Can some one suggest how to get (read) the story point enumeration value to make use in a server side plug-in ?
Below code works for standard attribute like duration, but not for enumeration type.
------------
private long getDuration(IWorkItem child, IAttribute attribute, IProgressMonitor monitor) throws TeamRepositoryException {
long duration = 0;
if(attribute!=null && child.hasAttribute(attribute)){
Long tempDuration = (Long)child.getValue(attribute);
if(tempDuration!=null&& tempDuration.longValue()>0)
return tempDuration.longValue();
}
return duration;
}
--------------
Thank you.
Accepted answer
See https://rsjazz.wordpress.com/2012/08/20/manipulationg-work-item-enumeration-values/
More details:
private String calculateEnumerationLiteralAsString(Object value,
IAttribute attribute) throws TeamRepositoryException {
if (value == null) {
return CONSTANT_NO_VALUE;
}
if (!(value instanceof Identifier<?>)) {
return "Value not an enumeration literal";
}
IEnumeration<? extends ILiteral> enumeration = getWorkItemCommon()
.resolveEnumeration(attribute, getMonitor());
@SuppressWarnings("unchecked")
Identifier<? extends ILiteral> currentIdentifier = (Identifier<? extends ILiteral>) value;
ILiteral literal = enumeration
.findEnumerationLiteral(currentIdentifier);
return literal.getName();
}
More details:
private String calculateEnumerationLiteralAsString(Object value,
IAttribute attribute) throws TeamRepositoryException {
if (value == null) {
return CONSTANT_NO_VALUE;
}
if (!(value instanceof Identifier<?>)) {
return "Value not an enumeration literal";
}
IEnumeration<? extends ILiteral> enumeration = getWorkItemCommon()
.resolveEnumeration(attribute, getMonitor());
@SuppressWarnings("unchecked")
Identifier<? extends ILiteral> currentIdentifier = (Identifier<? extends ILiteral>) value;
ILiteral literal = enumeration
.findEnumerationLiteral(currentIdentifier);
return literal.getName();
}
Comments
One other answer
Please carefully read https://jazz.net/forum/questions/203755/how-should-i-ask-a-question-in-the-forum-if-i-want-to-receive-useful-answers
The error you show is not an error in the code. It is an error in setting up the plugin and deploying it.
Before you even get to this point, you should have already followed https://rsjazz.wordpress.com/2013/02/28/setting-up-rational-team-concert-for-api-development/ and debugged your code on Jetty. Once the debugging works, it is easy enough to very fy the code works and if it does, then you deploy on the server and know that the code works and your problems are due to deployment problems.
Why do you run two threads with the same question? Can't you coordinate with your colleague?
The error you show is not an error in the code. It is an error in setting up the plugin and deploying it.
Before you even get to this point, you should have already followed https://rsjazz.wordpress.com/2013/02/28/setting-up-rational-team-concert-for-api-development/ and debugged your code on Jetty. Once the debugging works, it is easy enough to very fy the code works and if it does, then you deploy on the server and know that the code works and your problems are due to deployment problems.
Why do you run two threads with the same question? Can't you coordinate with your colleague?