Project

General

Profile

« Previous | Next » 

Revision 63180

Added by Michele Artini 4 months ago

cineca: dates

View differences:

modules/dnet-isti/trunk/src/main/java/eu/dnetlib/data/utils/XsltFunctions.java
26 26
		return cleanNames(s, StringUtils.countMatches(s, ",") > 1 ? "," : ";");
27 27
	}
28 28

  
29
	public static String extractYear(final String s) {
30
		if (StringUtils.isBlank(s)) { return ""; }
31
		final Matcher m = Pattern.compile("^.*(\\d{4}).*$").matcher(s);
32
		return m.matches() ? m.group(1) : "";
33
	}
34

  
29 35
	private static String cleanNames(final String s, final String sep) {
30 36
		return Arrays.stream(s.split(sep))
31 37
				.map(String::trim)
modules/dnet-isti/trunk/src/main/resources/cineca-people/iris-test-tr.xsl
74 74
					</contributors>
75 75

  
76 76
					<date>
77
						<xsl:value-of select="//datacite:date[@dateType='Issued']" />
77
						<xsl:choose>
78
							<xsl:when test="//datacite:date[@dateType='Issued']">
79
								<xsl:value-of select="dnet:extractYear(//datacite:date[@dateType='Issued'][1])" />
80
							</xsl:when>
81
							<xsl:when test="//datacite:date[@dateType='Available']">
82
								<xsl:value-of select="dnet:extractYear(//datacite:date[@dateType='Available'][1])" />
83
							</xsl:when>
84
							<xsl:otherwise>
85
								<xsl:value-of select="dnet:extractYear(//datacite:date[1])" />
86
							</xsl:otherwise>
87
						</xsl:choose>
78 88
					</date>
79 89

  
80 90
					<language>
modules/dnet-isti/trunk/src/test/java/eu/dnetlib/data/utils/XsltFunctionsTest.java
7 7
public class XsltFunctionsTest {
8 8

  
9 9
	@Test
10
	public void testCleanDoi_1() {
10
	public void testCleanDoi() {
11 11
		assertEquals("10.3233/faia200182", XsltFunctions.cleanDoi("  10.3233/FAIA200182  "));
12
	}
13

  
14
	@Test
15
	public void testCleanDoi_2() {
16 12
		assertEquals("", XsltFunctions.cleanDoi(""));
17
	}
18

  
19
	@Test
20
	public void testCleanDoi_3() {
21 13
		assertEquals("", XsltFunctions.cleanDoi(null));
22 14
	}
23 15

  
24 16
	@Test
25
	public void testCapitalizeName_1() {
17
	public void testCapitalizeName() {
26 18
		assertEquals("Michele Artini", XsltFunctions.capitalize("MICHELE ARTINI"));
27
	}
28

  
29
	@Test
30
	public void testCapitalizeName_2() {
31 19
		assertEquals("Michele Artini", XsltFunctions.capitalize("michele artini"));
32
	}
33

  
34
	@Test
35
	public void testCapitalizeName_3() {
36 20
		assertEquals("Michele-Francesco Artini", XsltFunctions.capitalize("MICHELE-FRANCESCO ARTINI"));
37
	}
38

  
39
	@Test
40
	public void testCapitalizeName_4() {
41 21
		assertEquals("Michele Artini-Smith", XsltFunctions.capitalize("MICHELE ARTINI-SMITH"));
42
	}
43

  
44
	@Test
45
	public void testCapitalizeName_5() {
46 22
		assertEquals("Michele Francesco Artini", XsltFunctions.capitalize("MICHELE FRANCESCO ARTINI"));
23
		assertEquals("Andrea Dell'Amico", XsltFunctions.capitalize("andrea dell'amico"));
24
		assertEquals("Andrea Dell'Amico", XsltFunctions.capitalize("andrea dell'amico"));
47 25
	}
48 26

  
49 27
	@Test
50
	public void testCapitalizeName_6() {
51
		assertEquals("Andrea Dell'Amico", XsltFunctions.capitalize("andrea dell'amico"));
28
	public void testExtractYear() {
29
		assertEquals("2022", XsltFunctions.extractYear("2022"));
30
		assertEquals("2022", XsltFunctions.extractYear("  2022  "));
31
		assertEquals("2022", XsltFunctions.extractYear("12/02/2022"));
32
		assertEquals("2022", XsltFunctions.extractYear("2022-12-12"));
52 33
	}
53 34
}

Also available in: Unified diff