package com.processpuzzle.fitnesse.fundamental_types;
import java.text.DateFormat;
import java.util.Calendar;
import com.processpuzzle.application.configuration.domain.InternalizationContext;
import com.processpuzzle.fundamental_types.domain.TimePoint;
import com.processpuzzle.user_session.domain.UserRequestManager;
import fit.ColumnFixture;
public class CompareTimes extends ColumnFixture{
public String style1;
public String style2;
public String timepoint1;
public String timepoint2;
public String basecompare;
private InternalizationContext internalizationContext = null;
Calendar cal;
public CompareTimes(){
internalizationContext = UserRequestManager.getInstance().getApplicationContext().getInternalizationContext();
cal=Calendar.getInstance();
cal.setLenient(false);
}
public int compareto(){
if (basecompare==null) basecompare=new String();
if (basecompare.equals("timepoint1")) style2=style1;
if (basecompare.equals("timepoint2")) style1=style2;
String[] styles1=style1.split(",");
String[] styles2=style2.split(",");
TimePoint t1,t2;
if (styles1.length>1){
t1=internalizationContext.findLocaleByLanguageAndCountry("en", "US").getDateFormat().parse(timepoint1,getStyle(styles1[0]),getStyle(styles1[1]));
}else{
t1=internalizationContext.findLocaleByLanguageAndCountry("en", "US").getDateFormat().parse(timepoint1,getStyle(styles1[0]));
}
if (styles2.length>1){
t2=internalizationContext.findLocaleByLanguageAndCountry("en", "US").getDateFormat().parse(timepoint2,getStyle(styles2[0]),getStyle(styles2[1]));
}else{
t2=internalizationContext.findLocaleByLanguageAndCountry("en", "US").getDateFormat().parse(timepoint2,getStyle(styles2[0]));
}
return t2.compareTo(t1);
}
private int getStyle(String str){
if (str.equals("short")){
return DateFormat.SHORT;
}
if (str.equals("medium")){
return DateFormat.MEDIUM;
}
if (str.equals("long")){
return DateFormat.LONG;
}
if (str.equals("full")){
return DateFormat.FULL;
}
return 0;
}
}