use of org.orcid.jaxb.model.record_v2.GroupableActivity in project ORCID-Source by ORCID.
the class Api2_0_rc4_LastModifiedDatesHelper method calculateLastModified.
public static void calculateLastModified(Group group) {
Collection<? extends GroupableActivity> activities = group.getActivities();
if (activities != null && !activities.isEmpty()) {
Iterator<? extends GroupableActivity> activitiesIterator = activities.iterator();
LastModifiedDate latest = null;
while (activitiesIterator.hasNext()) {
GroupableActivity activity = activitiesIterator.next();
if (activity.getLastModifiedDate() != null && activity.getLastModifiedDate().after(latest)) {
latest = activity.getLastModifiedDate();
}
}
group.setLastModifiedDate(latest);
}
}
use of org.orcid.jaxb.model.record_v2.GroupableActivity in project ORCID-Source by ORCID.
the class Api2_0_LastModifiedDatesHelper method calculateLastModified.
public static void calculateLastModified(Group group) {
Collection<? extends GroupableActivity> activities = group.getActivities();
if (activities != null && !activities.isEmpty()) {
Iterator<? extends GroupableActivity> activitiesIterator = activities.iterator();
LastModifiedDate latest = null;
while (activitiesIterator.hasNext()) {
GroupableActivity activity = activitiesIterator.next();
if (activity.getLastModifiedDate() != null && activity.getLastModifiedDate().after(latest)) {
latest = activity.getLastModifiedDate();
}
}
group.setLastModifiedDate(latest);
}
}
use of org.orcid.jaxb.model.record_v2.GroupableActivity in project ORCID-Source by ORCID.
the class PeerReviewManagerReadOnlyImpl method groupPeerReviews.
/**
* Generate a grouped list of peer reviews with the given list of peer reviews
*
* @param peerReviews
* The list of peer reviews to group
* @param justPublic
* Specify if we want to group only the public elements in the given list
* @return PeerReviews element with the PeerReviewSummary elements grouped
*/
@Override
public PeerReviews groupPeerReviews(List<PeerReviewSummary> peerReviews, boolean justPublic) {
ActivitiesGroupGenerator groupGenerator = new ActivitiesGroupGenerator();
PeerReviews result = new PeerReviews();
for (PeerReviewSummary peerReview : peerReviews) {
if (justPublic && !peerReview.getVisibility().equals(org.orcid.jaxb.model.common_v2.Visibility.PUBLIC)) {
// If it is just public and the funding is not public, just
// ignore it
} else {
groupGenerator.group(peerReview);
}
}
List<ActivitiesGroup> groups = groupGenerator.getGroups();
for (ActivitiesGroup group : groups) {
Set<GroupAble> groupKeys = group.getGroupKeys();
Set<GroupableActivity> activities = group.getActivities();
PeerReviewGroup peerReviewGroup = new PeerReviewGroup();
// Fill the peer review groups with the external identifiers
if (groupKeys == null || groupKeys.isEmpty()) {
// Initialize the ids as an empty list
peerReviewGroup.getIdentifiers().getExternalIdentifier();
} else {
for (GroupAble groupKey : groupKeys) {
PeerReviewGroupKey key = (PeerReviewGroupKey) groupKey;
ExternalID id = new ExternalID();
// TODO: this is not nice
id.setType(PeerReviewGroupKey.KEY_NAME);
id.setValue(key.getGroupId());
peerReviewGroup.getIdentifiers().getExternalIdentifier().add(id);
}
}
// Fill the peer review group with the list of activities
for (GroupableActivity activity : activities) {
PeerReviewSummary peerReviewSummary = (PeerReviewSummary) activity;
peerReviewGroup.getPeerReviewSummary().add(peerReviewSummary);
}
// Sort the peer reviews
Collections.sort(peerReviewGroup.getPeerReviewSummary(), new GroupableActivityComparator());
result.getPeerReviewGroup().add(peerReviewGroup);
}
return result;
}
use of org.orcid.jaxb.model.record_v2.GroupableActivity in project ORCID-Source by ORCID.
the class ProfileFundingManagerReadOnlyImpl method groupFundings.
/**
* Generate a grouped list of funding with the given list of funding
*
* @param fundings
* The list of fundings to group
* @param justPublic
* Specify if we want to group only the public elements in the given list
* @return Fundings element with the FundingSummary elements grouped
*/
@Override
public Fundings groupFundings(List<FundingSummary> fundings, boolean justPublic) {
ActivitiesGroupGenerator groupGenerator = new ActivitiesGroupGenerator();
Fundings result = new Fundings();
for (FundingSummary funding : fundings) {
if (justPublic && !funding.getVisibility().equals(org.orcid.jaxb.model.common_v2.Visibility.PUBLIC)) {
// If it is just public and the funding is not public, just
// ignore it
} else {
groupGenerator.group(funding);
}
}
List<ActivitiesGroup> groups = groupGenerator.getGroups();
for (ActivitiesGroup group : groups) {
Set<GroupAble> externalIdentifiers = group.getGroupKeys();
Set<GroupableActivity> activities = group.getActivities();
FundingGroup fundingGroup = new FundingGroup();
// Fill the funding groups with the external identifiers
if (externalIdentifiers == null || externalIdentifiers.isEmpty()) {
// Initialize the ids as an empty list
fundingGroup.getIdentifiers().getExternalIdentifier();
} else {
for (GroupAble extId : externalIdentifiers) {
ExternalID fundingExtId = (ExternalID) extId;
fundingGroup.getIdentifiers().getExternalIdentifier().add(fundingExtId.clone());
}
}
// Fill the funding group with the list of activities
for (GroupableActivity activity : activities) {
FundingSummary fundingSummary = (FundingSummary) activity;
fundingGroup.getFundingSummary().add(fundingSummary);
}
// Sort the fundings
Collections.sort(fundingGroup.getFundingSummary(), new GroupableActivityComparator());
result.getFundingGroup().add(fundingGroup);
}
return result;
}
use of org.orcid.jaxb.model.record_v2.GroupableActivity in project ORCID-Source by ORCID.
the class OrcidSecurityManagerImpl method filterExternalIdentifiers.
/**
* Filter the group external identifiers to match the external identifiers
* that belongs to the activities it have after filtering
*
* @param group
* The group we want to filter the external identifiers
*/
private void filterExternalIdentifiers(Group group) {
// Iterate over every external identifier and check if it is still
// present in the list of filtered elements
ExternalIDs extIds = group.getIdentifiers();
Iterator<ExternalID> extIdsIt = extIds.getExternalIdentifier().iterator();
while (extIdsIt.hasNext()) {
ExternalID extId = extIdsIt.next();
boolean found = false;
for (GroupableActivity summary : group.getActivities()) {
if (summary.getExternalIdentifiers() != null) {
if (summary.getExternalIdentifiers().getExternalIdentifier().contains(extId)) {
found = true;
break;
}
}
}
// If the ext id is not found, remove it from the list of ext ids
if (!found) {
extIdsIt.remove();
}
}
}
Aggregations