Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source.
   * Copyright 2009, Red Hat Middleware LLC, and individual contributors
   * as indicated by the @author tags. See the copyright.txt file in the
   * distribution for a full listing of individual contributors.
   *
   * This is free software; you can redistribute it and/or modify it
   * under the terms of the GNU Lesser General Public License as
   * published by the Free Software Foundation; either version 2.1 of
  * the License, or (at your option) any later version.
  *
  * This software is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this software; if not, write to the Free
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
 package org.jboss.as.ejb3.timerservice.schedule.attribute;
 
 
 import java.util.Map;
 import java.util.Set;
DayOfWeek

Author(s):
Jaikiran Pai
Version:
$Revision: $
 
 public class DayOfWeek extends IntegerBasedExpression {
 
     public static final Integer MAX_DAY_OF_WEEK = 7;
 
     public static final Integer MIN_DAY_OF_WEEK = 0;
 
     private static final Map<StringIntegerDAY_OF_WEEK_ALIAS = new HashMap<StringInteger>();
 
     static {
         .put("sun", 0);
         .put("mon", 1);
         .put("tue", 2);
         .put("wed", 3);
         .put("thu", 4);
         .put("fri", 5);
         .put("sat", 6);
     }
 
     private static final int OFFSET = .get("sun") - .;
 
     private SortedSet<IntegeroffsetAdjustedDaysOfWeek = new TreeSet<Integer>();
 
     public DayOfWeek(String value) {
         super(value);
         for (Integer dayOfWeek : this.) {
             if (dayOfWeek == 7) {
                 this..remove(dayOfWeek);
                 this..add(new Integer(0));
             }
         }
         if ( != 0) {
             for (Integer dayOfWeek : this.) {
                 this..add(dayOfWeek - );
             }
         } else {
             this. = this.;
         }
     }
 
 
     @Override
     protected Integer getMaxValue() {
         return ;
     }
 
     @Override
     protected Integer getMinValue() {
         return ;
     }
 
 
     public int getFirst() {
         if (this. == .) {
             return .;
         }
         return this..first();
     }
 
 
     public static Set<StringgetDaysOfWeek() {
        return .keySet();
    }
    @Override
    protected boolean accepts(ScheduleExpressionType scheduleExprType) {
        switch (scheduleExprType) {
            case :
            case :
            case :
            case :
                return true;
            // day-of-week doesn't support increment
            case :
            default:
                return false;
        }
    }
    @Override
    public boolean isRelativeValue(String value) {
        // day-of-week doesn't support relative values
        return false;
    }
    @Override
    protected Integer parseInt(String alias) {
        try {
            return super.parseInt(alias);
        } catch (NumberFormatException nfe) {
            if ( != null) {
                String lowerCaseAlias = alias.toLowerCase(.);
                return .get(lowerCaseAlias);
            }
        }
        return null;
    }
    public Integer getNextMatch(Calendar currentCal) {
        if (this. == .) {
            return currentCal.get(.);
        }
        int currentDayOfWeek = currentCal.get(.);
        for (Integer dayOfWeek : this.) {
            if (currentDayOfWeek == dayOfWeek) {
                return currentDayOfWeek;
            }
            if (dayOfWeek > currentDayOfWeek) {
                return dayOfWeek;
            }
        }
        return this..first();
    }
New to GrepCode? Check out our FAQ X