001 package railo.runtime.format; 002 003 import java.text.DateFormatSymbols; 004 import java.util.Locale; 005 006 public abstract class BaseFormat implements Format { 007 008 private Locale locale; 009 010 public BaseFormat(Locale locale) { 011 this.locale=locale; 012 } 013 014 protected final String getMonthAsString(int month) { 015 if(getLocale().equals(Locale.US)) { 016 switch(month) { 017 case 1: return "January"; 018 case 2: return "February"; 019 case 3: return "March"; 020 case 4: return "April"; 021 case 5: return "May"; 022 case 6: return "June"; 023 case 7: return "July"; 024 case 8: return "August"; 025 case 9: return "September"; 026 case 10: return "October"; 027 case 11: return "November"; 028 case 12: return "December"; 029 default: return null; 030 } 031 } 032 return new DateFormatSymbols(locale).getMonths()[month-1]; 033 034 } 035 036 protected final String getMonthShortAsString(int month) { 037 if(getLocale().equals(Locale.US)) { 038 switch(month) { 039 case 1: return "Jan"; 040 case 2: return "Feb"; 041 case 3: return "Mar"; 042 case 4: return "Apr"; 043 case 5: return "May"; 044 case 6: return "Jun"; 045 case 7: return "Jul"; 046 case 8: return "Aug"; 047 case 9: return "Sep"; 048 case 10: return "Oct"; 049 case 11: return "Nov"; 050 case 12: return "Dec"; 051 default: return null; 052 } 053 } 054 return new DateFormatSymbols(locale).getShortMonths()[month-1]; 055 056 } 057 058 protected final String getDayOfWeekAsString(int dayOfWeek) { 059 if(getLocale().equals(Locale.US)) { 060 switch(dayOfWeek) { 061 case 1: return "Sunday"; 062 case 2: return "Monday"; 063 case 3: return "Tuesday"; 064 case 4: return "Wednesday"; 065 case 5: return "Thursday"; 066 case 6: return "Friday"; 067 case 7: return "Saturday"; 068 default: return null; 069 } 070 } 071 return new DateFormatSymbols(locale).getWeekdays()[dayOfWeek]; 072 073 } 074 075 protected final String getDayOfWeekShortAsString(int dayOfWeek) { 076 if(getLocale().equals(Locale.US)) { 077 switch(dayOfWeek) { 078 case 1: return "Sun"; 079 case 2: return "Mon"; 080 case 3: return "Tue"; 081 case 4: return "Wed"; 082 case 5: return "Thu"; 083 case 6: return "Fri"; 084 case 7: return "Sat"; 085 default: return null; 086 } 087 } 088 return new DateFormatSymbols(locale).getShortWeekdays()[dayOfWeek]; 089 } 090 091 protected final Locale getLocale() { 092 return locale==null?Locale.US:locale; 093 } 094 }