use of org.orcid.jaxb.model.record_v2.Group in project ORCID-Source by ORCID.
the class Api2_0_rc3_LastModifiedDatesHelper method calculateLastModified.
public static void calculateLastModified(GroupsContainer groupsContainerRc3) {
if (groupsContainerRc3.retrieveGroups() != null && !groupsContainerRc3.retrieveGroups().isEmpty()) {
List<? extends Group> groupsRc1 = new ArrayList<>(groupsContainerRc3.retrieveGroups());
List<org.orcid.jaxb.model.record_rc3.Group> groupsRc3 = new ArrayList<>(groupsContainerRc3.retrieveGroups());
if (groupsRc1.get(0).getActivities() != null && !groupsRc1.get(0).getActivities().isEmpty()) {
LastModifiedDate latest = null;
for (Group group : groupsRc3) {
calculateLastModified(group);
if (group.getLastModifiedDate() != null && group.getLastModifiedDate().after(latest)) {
latest = group.getLastModifiedDate();
}
}
groupsContainerRc3.setLastModifiedDate(latest);
}
}
}
use of org.orcid.jaxb.model.record_v2.Group in project ORCID-Source by ORCID.
the class Api2_0_rc2_LastModifiedDatesHelper method calculateLatest.
public static Date calculateLatest(GroupsContainer groupsContainerRc2) {
Date latestGrp = null;
if (groupsContainerRc2.retrieveGroups() != null && !groupsContainerRc2.retrieveGroups().isEmpty()) {
List<? extends Group> groupsRc1 = new ArrayList<>(groupsContainerRc2.retrieveGroups());
List<org.orcid.jaxb.model.record_rc2.Group> groupsRc2 = new ArrayList<>(groupsContainerRc2.retrieveGroups());
if (groupsRc1.get(0).getActivities() != null && !groupsRc1.get(0).getActivities().isEmpty()) {
for (int index = 0; index < groupsRc2.size(); index++) {
latestGrp = calculateLatest(groupsRc2.get(index));
}
groupsContainerRc2.setLastModifiedDate(new LastModifiedDate(DateUtils.convertToXMLGregorianCalendarNoTimeZoneNoMillis(latestGrp)));
}
}
return latestGrp;
}
use of org.orcid.jaxb.model.record_v2.Group in project ORCID-Source by ORCID.
the class WorkManagerTest method testGroupWorksWithDisplayIndex.
@Test
public void testGroupWorksWithDisplayIndex() {
/**
* @formatter:off
* They should be grouped as
*
* Group 1: Work 3
* Group 2: Work 4 + Work 1
* Group 3: Work 5 + Work 2
* Group 4: Work 6
* @formatter:on
*/
WorkSummary s1 = getWorkSummary("Work 1", "ext-id-1", Visibility.PUBLIC, "0");
WorkSummary s2 = getWorkSummary("Work 2", "ext-id-2", Visibility.LIMITED, "1");
WorkSummary s3 = getWorkSummary("Work 3", "ext-id-3", Visibility.PRIVATE, "0");
WorkSummary s4 = getWorkSummary("Work 4", "ext-id-1", Visibility.PRIVATE, "1");
WorkSummary s5 = getWorkSummary("Work 5", "ext-id-2", Visibility.PUBLIC, "2");
WorkSummary s6 = getWorkSummary("Work 6", "ext-id-4", Visibility.PRIVATE, "0");
List<WorkSummary> workList1 = Arrays.asList(s1, s2, s3, s4, s5, s6);
Works works1 = workManager.groupWorks(workList1, false);
assertNotNull(works1);
assertEquals(4, works1.getWorkGroup().size());
// Group 1 have all with ext-id-3
assertEquals(1, works1.getWorkGroup().get(0).getWorkSummary().size());
assertEquals(1, works1.getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().size());
assertEquals("ext-id-3", works1.getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().get(0).getValue());
// Group 2 have all with ext-id-2
assertEquals(2, works1.getWorkGroup().get(1).getWorkSummary().size());
assertEquals(1, works1.getWorkGroup().get(1).getIdentifiers().getExternalIdentifier().size());
assertEquals("ext-id-1", works1.getWorkGroup().get(1).getIdentifiers().getExternalIdentifier().get(0).getValue());
// Group 3 have ext-id-3
assertEquals(2, works1.getWorkGroup().get(2).getWorkSummary().size());
assertEquals(1, works1.getWorkGroup().get(2).getIdentifiers().getExternalIdentifier().size());
assertEquals("ext-id-2", works1.getWorkGroup().get(2).getIdentifiers().getExternalIdentifier().get(0).getValue());
// Group 4 have ext-id-4
assertEquals(1, works1.getWorkGroup().get(3).getWorkSummary().size());
assertEquals(1, works1.getWorkGroup().get(3).getIdentifiers().getExternalIdentifier().size());
assertEquals("ext-id-4", works1.getWorkGroup().get(3).getIdentifiers().getExternalIdentifier().get(0).getValue());
WorkSummary s7 = getWorkSummary("Work 7", "ext-id-4", Visibility.PRIVATE, "0");
// Add ext-id-3 to work 7, so, it join group 3 and group 4 in a single
// group
ExternalID extId = new ExternalID();
extId.setRelationship(Relationship.SELF);
extId.setType("doi");
extId.setUrl(new Url("http://orcid.org"));
extId.setValue("ext-id-3");
s7.getExternalIdentifiers().getExternalIdentifier().add(extId);
/**
* @formatter:off
* Now, they should be grouped as
*
*
* Group 1: Work 3 + Work 6 + Work 7
* Group 2: Work 4 + Work 1
* Group 3: Work 5 + Work 2
* @formatter:on
*/
List<WorkSummary> workList2 = Arrays.asList(s1, s2, s3, s4, s5, s6, s7);
Works works2 = workManager.groupWorks(workList2, false);
assertNotNull(works2);
assertEquals(3, works2.getWorkGroup().size());
// Group 1 have all with ext-id-3 and ext-id-4
assertEquals(3, works2.getWorkGroup().get(0).getWorkSummary().size());
assertEquals(2, works2.getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().size());
assertThat(works2.getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().get(0).getValue(), anyOf(is("ext-id-3"), is("ext-id-4")));
assertThat(works2.getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().get(1).getValue(), anyOf(is("ext-id-3"), is("ext-id-4")));
// Group 2 have all with ext-id-1
assertEquals(2, works2.getWorkGroup().get(1).getWorkSummary().size());
assertEquals(1, works2.getWorkGroup().get(1).getIdentifiers().getExternalIdentifier().size());
assertEquals("ext-id-1", works2.getWorkGroup().get(1).getIdentifiers().getExternalIdentifier().get(0).getValue());
// Group 2 have all with ext-id-2
assertEquals(2, works2.getWorkGroup().get(2).getWorkSummary().size());
assertEquals(1, works2.getWorkGroup().get(2).getIdentifiers().getExternalIdentifier().size());
assertEquals("ext-id-2", works2.getWorkGroup().get(2).getIdentifiers().getExternalIdentifier().get(0).getValue());
}
use of org.orcid.jaxb.model.record_v2.Group in project ORCID-Source by ORCID.
the class WorkManagerTest method testGroupWorks.
@Test
public void testGroupWorks() {
/**
* @formatter:off
* They should be grouped as
*
* Group 1: Work 1 + Work 4
* Group 2: Work 2 + Work 5
* Group 3: Work 3
* Group 4: Work 6
* @formatter:on
*/
WorkSummary s1 = getWorkSummary("Work 1", "ext-id-1", Visibility.PUBLIC);
WorkSummary s2 = getWorkSummary("Work 2", "ext-id-2", Visibility.LIMITED);
WorkSummary s3 = getWorkSummary("Work 3", "ext-id-3", Visibility.PRIVATE);
WorkSummary s4 = getWorkSummary("Work 4", "ext-id-1", Visibility.PRIVATE);
WorkSummary s5 = getWorkSummary("Work 5", "ext-id-2", Visibility.PUBLIC);
WorkSummary s6 = getWorkSummary("Work 6", "ext-id-4", Visibility.PRIVATE);
List<WorkSummary> workList1 = Arrays.asList(s1, s2, s3, s4, s5, s6);
Works works1 = workManager.groupWorks(workList1, false);
assertNotNull(works1);
assertEquals(4, works1.getWorkGroup().size());
// Group 1 have all with ext-id-1
assertEquals(2, works1.getWorkGroup().get(0).getWorkSummary().size());
assertEquals(1, works1.getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().size());
assertEquals("ext-id-1", works1.getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().get(0).getValue());
// Group 2 have all with ext-id-2
assertEquals(2, works1.getWorkGroup().get(1).getWorkSummary().size());
assertEquals(1, works1.getWorkGroup().get(1).getIdentifiers().getExternalIdentifier().size());
assertEquals("ext-id-2", works1.getWorkGroup().get(1).getIdentifiers().getExternalIdentifier().get(0).getValue());
// Group 3 have ext-id-3
assertEquals(1, works1.getWorkGroup().get(2).getWorkSummary().size());
assertEquals(1, works1.getWorkGroup().get(2).getIdentifiers().getExternalIdentifier().size());
assertEquals("ext-id-3", works1.getWorkGroup().get(2).getIdentifiers().getExternalIdentifier().get(0).getValue());
// Group 4 have ext-id-4
assertEquals(1, works1.getWorkGroup().get(3).getWorkSummary().size());
assertEquals(1, works1.getWorkGroup().get(3).getIdentifiers().getExternalIdentifier().size());
assertEquals("ext-id-4", works1.getWorkGroup().get(3).getIdentifiers().getExternalIdentifier().get(0).getValue());
WorkSummary s7 = getWorkSummary("Work 7", "ext-id-4", Visibility.PRIVATE);
// Add ext-id-3 to work 7, so, it join group 3 and group 4 in a single
// group
ExternalID extId = new ExternalID();
extId.setRelationship(Relationship.SELF);
extId.setType("doi");
extId.setUrl(new Url("http://orcid.org"));
extId.setValue("ext-id-3");
s7.getExternalIdentifiers().getExternalIdentifier().add(extId);
/**
* @formatter:off
* Now, they should be grouped as
*
* Group 1: Work 1 + Work 4
* Group 2: Work 2 + Work 5
* Group 3: Work 3 + Work 6 + Work 7
* @formatter:on
*/
List<WorkSummary> workList2 = Arrays.asList(s1, s2, s3, s4, s5, s6, s7);
Works works2 = workManager.groupWorks(workList2, false);
assertNotNull(works2);
assertEquals(3, works2.getWorkGroup().size());
// Group 1 have all with ext-id-1
assertEquals(2, works2.getWorkGroup().get(0).getWorkSummary().size());
assertEquals(1, works2.getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().size());
assertEquals("ext-id-1", works2.getWorkGroup().get(0).getIdentifiers().getExternalIdentifier().get(0).getValue());
// Group 2 have all with ext-id-2
assertEquals(2, works2.getWorkGroup().get(1).getWorkSummary().size());
assertEquals(1, works2.getWorkGroup().get(1).getIdentifiers().getExternalIdentifier().size());
assertEquals("ext-id-2", works2.getWorkGroup().get(1).getIdentifiers().getExternalIdentifier().get(0).getValue());
// Group 3 have all with ext-id-3 and ext-id-4
assertEquals(3, works2.getWorkGroup().get(2).getWorkSummary().size());
assertEquals(2, works2.getWorkGroup().get(2).getIdentifiers().getExternalIdentifier().size());
assertThat(works2.getWorkGroup().get(2).getIdentifiers().getExternalIdentifier().get(0).getValue(), anyOf(is("ext-id-3"), is("ext-id-4")));
assertThat(works2.getWorkGroup().get(2).getIdentifiers().getExternalIdentifier().get(1).getValue(), anyOf(is("ext-id-3"), is("ext-id-4")));
}
use of org.orcid.jaxb.model.record_v2.Group in project camel by apache.
the class GroupProducer method doGet.
private void doGet(Exchange exchange) {
final Message msg = exchange.getIn();
final String id = msg.getHeader(OpenstackConstants.ID, msg.getHeader(KeystoneConstants.GROUP_ID, String.class), String.class);
ObjectHelper.notEmpty(id, "Group ID");
final Group result = osV3Client.identity().groups().get(id);
msg.setBody(result);
}
Aggregations