It's all about the answers!

Ask a question

Copying comments from one work item to a new one


Dave Draeger (4172) | asked Jul 14 '08, 2:06 p.m.
I'm trying to make a copy of a work item and part of that is making an exact
copy of the associated comments (preserving owner/dates/etc). I'm using the
following code:

// Add existing comments to new work item
IComments comments = wi.getComments();
if (comments.getContents().length > 0) {
for (IComment comment: comments.getContents()) {
IContributorHandle creator = comment.getCreator();
IComment newComment = workItem.getComments().createComment(creator,
comment.getHTMLContent());
((Comment) newComment).setCreationDate(comment.getCreationDate());
workItem.getComments().append(newComment);
}
}

The problem I run into is with setting the creator (IContributorHandle).
When I use the above code, it all compiles and runs fine but when I try to
view the new work item in RTC, it just hangs trying to display it. If I
replace the "creator" variable in createComment(creator,
comment.getHTMLContent()) with createComment(repoNew.loggedInContributor(),
comment.getHTMLContent()) (which returns an IContributor object instead of
the handle), then it all works fine, except it isn't the actual user who
created the original comment.

So the ultimate question is, given an IContributorHandle, how do I get the
full object (IContributor) that the handle represents? I was looking at
some of the fetch/resolve methods but couldn't find one off hand that looked
right.

Thanks!

--
Dave Draeger
IBM WebSphere Serviceability Development

4 answers



permanent link
Christof Marti (681) | answered Jul 15 '08, 2:42 a.m.
Are you copying between different repositories? This would be unsupported because the editor has no hint that the comment creator on the new work item would have to be resolved in a different repository than the work item. Otherwise the code should work as expected and it would be interesting to know why the UI hangs when you try to open it. (You could resolve the contributor using ITeamRepository.itemManager().fetchCompleteItem(handle, IItemManager.DEFAULT, monitor).)

Christof
Jazz Work Item team


Dave Draeger wrote:
I'm trying to make a copy of a work item and part of that is making an exact
copy of the associated comments (preserving owner/dates/etc). I'm using the
following code:

// Add existing comments to new work item
IComments comments = wi.getComments();
if (comments.getContents().length > 0) {
for (IComment comment: comments.getContents()) {
IContributorHandle creator = comment.getCreator();
IComment newComment = workItem.getComments().createComment(creator,
comment.getHTMLContent());
((Comment) newComment).setCreationDate(comment.getCreationDate());
workItem.getComments().append(newComment);
}
}

The problem I run into is with setting the creator (IContributorHandle).
When I use the above code, it all compiles and runs fine but when I try to
view the new work item in RTC, it just hangs trying to display it. If I
replace the "creator" variable in createComment(creator,
comment.getHTMLContent()) with createComment(repoNew.loggedInContributor(),
comment.getHTMLContent()) (which returns an IContributor object instead of
the handle), then it all works fine, except it isn't the actual user who
created the original comment.

So the ultimate question is, given an IContributorHandle, how do I get the
full object (IContributor) that the handle represents? I was looking at
some of the fetch/resolve methods but couldn't find one off hand that looked
right.

Thanks!

permanent link
Aaron Wolfson (11) | answered Oct 05 '10, 2:31 p.m.
I am attempting to follow the directions for resolving an IContributorHandle to an IContributor as specified in the oiriginal post:

So the ultimate question is, given an IContributorHandle, how do I get the full object (IContributor) that the handle represents?


I tried the method suggested:

You could resolve the contributor using ITeamRepository.itemManager().fetchCompleteItem(handle, IItemManager.DEFAULT, monitor).


However, this returns an IItem rather than an IContributor. I need to obtain IContributor because I am attempting to extract the raw data from my repository, and as far as I can tell, IContributor is the only object that has the necessary methods to do this -- I would like to obtain the name of the user as a simple String using getName().

Thanks in advance for any help!

Aaron

permanent link
Atlantica Online (6) | answered Oct 07 '10, 5:13 a.m.
For me it is bad to read a copy work..Specially copying the comments of others.

Atlantica Online

permanent link
Megan Katysovas (7665) | answered Apr 20 '11, 4:42 p.m.
Have you tried using the fetch Contributor by user id call? This returns an IContributor. There is also the contributorManager.fetchAllContributors in which you could search for the user you are looking for.


repo.contributorManager().fetchContributorByUserId(user.proposedUserId, monitor);



I am attempting to follow the directions for resolving an IContributorHandle to an IContributor as specified in the oiriginal post:

So the ultimate question is, given an IContributorHandle, how do I get the full object (IContributor) that the handle represents?


I tried the method suggested:

You could resolve the contributor using ITeamRepository.itemManager().fetchCompleteItem(handle, IItemManager.DEFAULT, monitor).


However, this returns an IItem rather than an IContributor. I need to obtain IContributor because I am attempting to extract the raw data from my repository, and as far as I can tell, IContributor is the only object that has the necessary methods to do this -- I would like to obtain the name of the user as a simple String using getName().

Thanks in advance for any help!

Aaron

Your answer


Register or to post your answer.