Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.goda.chronic.repeaters;
  
  import java.util.HashMap;
  import java.util.Map;
 
 
 public class RepeaterDayName extends Repeater<RepeaterDayName.DayName> {
   private static final String MON_PATTERN = "^m[ou]n(day)?$";
   private static final String TUE_PATTERN = "^t(ue|eu|oo|u|)s(day)?$";
   private static final String TUE_PATTERN_1 = "^tue$";
   private static final String WED_PATTERN_1 = "^we(dnes|nds|nns)day$";
   private static final String WED_PATTERN_2 = "^wed$";
   private static final String THU_PATTERN_1 = "^th(urs|ers)day$";
   private static final String THU_PATTERN_2 = "^thu$";
   private static final String FRI_PATTERN = "^fr[iy](day)?$";
   private static final String SAT_PATTERN = "^sat(t?[ue]rday)?$";
   private static final String SUN_PATTERN = "^su[nm](day)?$";
 
   public static final int DAY_SECONDS = 86400; // (24 * 60 * 60);
 
   public static enum DayName {
     SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
   }
 
   private DateTime _currentDayStart;
 
   public RepeaterDayName(RepeaterDayName.DayName type) {
     super(type);
   }
 
   @Override
   protected MutableInterval _nextMutableInterval(PointerType pointer) {
     int direction = (pointer == ..) ? 1 : -1;
     if ( == null) {
        = Time.ymd(getNow());
        = .plusDays(direction);
       ..println"Looking for "+getType().ordinal() );
       int dayNum = getType().ordinal();
 
       while ((.get(DateTimeFieldType.dayOfWeek())) != dayNum) {
          =.plusDays(direction);
       }
     }
     else {
        = .plusDaysdirection * 7);
     }
   }
 
   @Override
   protected MutableInterval _thisMutableInterval(PointerType pointer) {
     if (pointer == .) {
       pointer = .;
     }
     return super.nextMutableInterval(pointer);
   }
 
   @Override
   public MutableInterval getOffset(MutableInterval MutableIntervaldouble amountPointerType pointer) {
     throw new IllegalStateException("Not implemented.");
   }
 
   @Override
   public int getWidth() {
     // WARN: Does not use Calendar
     return .;
   }
 
   @Override
   public String toString() {
     return super.toString() + "-dayname-" + getType();
   }
 
   public static RepeaterDayName scan(Token token) {
     for (String scannerItem : scanner.keySet()) {
       if (token.getWord().matches(scannerItem)) {
         return new RepeaterDayName(scanner.get(scannerItem));
       }
     }
     return null;
   }
New to GrepCode? Check out our FAQ X