120 lines
2.7 KiB
Java
120 lines
2.7 KiB
Java
package org.gcube.portlets.user.td.widgetcommonevent.shared.tr.column;
|
|
|
|
import java.util.Arrays;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
|
|
/**
|
|
*
|
|
* @author "Giancarlo Panichi" <a
|
|
* href="mailto:g.panichi@isti.cnr.it">g.panichi@isti.cnr.it</a>
|
|
*
|
|
*/
|
|
public enum PeriodDataType {
|
|
DAY("Day"),
|
|
MONTH("Month"),
|
|
QUARTER("Quarter_of_year"),
|
|
YEAR("Year"),
|
|
DECADE("Decade"),
|
|
CENTURY("Century");
|
|
|
|
private static Map<PeriodDataType, List<PeriodDataType>> hierarchicalRelation = new HashMap<PeriodDataType, List<PeriodDataType>>();
|
|
|
|
static {
|
|
hierarchicalRelation.put(DAY, Arrays.asList(MONTH, QUARTER, YEAR, DECADE, CENTURY));
|
|
hierarchicalRelation.put(MONTH, Arrays.asList(QUARTER, YEAR, DECADE, CENTURY));
|
|
hierarchicalRelation.put(QUARTER, Arrays.asList(YEAR, DECADE, CENTURY));
|
|
hierarchicalRelation.put(YEAR, Arrays.asList(DECADE, CENTURY));
|
|
hierarchicalRelation.put(DECADE, Arrays.asList(CENTURY));
|
|
}
|
|
|
|
|
|
|
|
private static final int START_YEAR = 1700;
|
|
|
|
private static final int END_YEAR = 2300;
|
|
|
|
/**
|
|
* @param text
|
|
*/
|
|
private PeriodDataType(final String id) {
|
|
this.id = id;
|
|
}
|
|
|
|
private final String id;
|
|
|
|
@Override
|
|
public String toString() {
|
|
return id;
|
|
}
|
|
|
|
public List<PeriodDataType> getHierarchicalRelationOfPeriodDataType(PeriodDataType periodDataType){
|
|
return hierarchicalRelation.get(periodDataType);
|
|
}
|
|
|
|
public Map<PeriodDataType, List<PeriodDataType>> getHierarchicalRelation(){
|
|
return hierarchicalRelation;
|
|
}
|
|
|
|
public String getPeriodDataTypeLabel() {
|
|
switch (this) {
|
|
case DAY:
|
|
return "Day";
|
|
case MONTH:
|
|
return "Month";
|
|
case QUARTER:
|
|
return "Quarter of year";
|
|
case YEAR:
|
|
return "Year";
|
|
case DECADE:
|
|
return "Decade";
|
|
case CENTURY:
|
|
return "Century";
|
|
default:
|
|
return null;
|
|
}
|
|
|
|
}
|
|
|
|
public static int getStartYear(){
|
|
return START_YEAR;
|
|
}
|
|
|
|
public static int getEndYear(){
|
|
return END_YEAR;
|
|
}
|
|
|
|
|
|
public static PeriodDataType getPeriodFromString(String period){
|
|
if(period.compareToIgnoreCase(PeriodDataType.DAY.toString())==0){
|
|
return PeriodDataType.DAY;
|
|
} else {
|
|
if(period.compareToIgnoreCase(PeriodDataType.MONTH.toString())==0){
|
|
return PeriodDataType.MONTH;
|
|
} else {
|
|
if(period.compareToIgnoreCase(PeriodDataType.QUARTER.toString())==0){
|
|
return PeriodDataType.QUARTER;
|
|
} else {
|
|
if(period.compareToIgnoreCase(PeriodDataType.YEAR.toString())==0){
|
|
return PeriodDataType.YEAR;
|
|
} else {
|
|
if(period.compareToIgnoreCase(PeriodDataType.DECADE.toString())==0){
|
|
return PeriodDataType.DECADE;
|
|
} else {
|
|
if(period.compareToIgnoreCase(PeriodDataType.CENTURY.toString())==0){
|
|
return PeriodDataType.CENTURY;
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
}
|