2 * Copyright (C) 2017 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
9 package eu
.etaxonomy
.cdm
.vaadin
.util
.formatter
;
11 import org
.joda
.time
.Partial
;
12 import org
.joda
.time
.format
.DateTimeFormatter
;
13 import org
.joda
.time
.format
.ISODateTimeFormat
;
15 import eu
.etaxonomy
.cdm
.model
.common
.TimePeriod
;
18 * @author a.kohlbecker
21 public class PartialFormatter
{
23 private DateTimeFormat format
;
25 private static final DateTimeFormatter dmyDotDayMonthYear
= org
.joda
.time
.format
.DateTimeFormat
.forPattern("dd.MM.y");
27 private static final DateTimeFormatter dmyDotMonthYear
= org
.joda
.time
.format
.DateTimeFormat
.forPattern("MM.y");
29 private static final DateTimeFormatter dmyDotYear
= org
.joda
.time
.format
.DateTimeFormat
.forPattern("y");
31 public PartialFormatter(DateTimeFormat format
) {
35 public String
print(Partial partial
) {
38 return partial
.toString(determine_DMY_DOT_Formatter(partial
));
41 return partial
.toString(determine_ISO860_Formatter(partial
));
45 private DateTimeFormatter
determine_ISO860_Formatter(Partial partial
) {
46 if (partial
.isSupported(TimePeriod
.DAY_TYPE
)) {
47 return ISODateTimeFormat
.yearMonthDay();
49 if (partial
.isSupported(TimePeriod
.MONTH_TYPE
)) {
50 return ISODateTimeFormat
.yearMonth();
52 return ISODateTimeFormat
.year();
55 private DateTimeFormatter
determine_DMY_DOT_Formatter(Partial partial
) {
56 if (partial
.isSupported(TimePeriod
.DAY_TYPE
)) {
57 return dmyDotDayMonthYear
;
59 if (partial
.isSupported(TimePeriod
.MONTH_TYPE
)) {
60 return dmyDotMonthYear
;