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 static org.jboss.as.ejb3.EjbMessages.MESSAGES;
Month

Author(s):
Jaikiran Pai
Version:
$Revision: $
 
 public class Month extends IntegerBasedExpression {
 
     public static final Integer MAX_MONTH = 12;
 
     public static final Integer MIN_MONTH = 1;
 
     private static final Map<StringIntegerMONTH_ALIAS = new HashMap<StringInteger>();
 
     static {
         .put("jan", 1);
         .put("feb", 2);
         .put("mar", 3);
         .put("apr", 4);
         .put("may", 5);
         .put("jun", 6);
         .put("jul", 7);
         .put("aug", 8);
         .put("sep", 9);
         .put("oct", 10);
         .put("nov", 11);
         .put("dec", 12);
 
     }
 
     private static final int OFFSET = .get("jan") - .;
 
     private SortedSet<IntegeroffsetAdjustedMonths = new TreeSet<Integer>();
 
     public Month(String value) {
         super(value);
         if ( != 0) {
             for (Integer month : this.) {
                 this..add(month - );
             }
         } else {
             this. = this.;
         }
     }
 
     @Override
     protected Integer getMaxValue() {
         return ;
     }
 
     @Override
     protected Integer getMinValue() {
         return ;
     }
 
     @Override
     public boolean isRelativeValue(String value) {
         // month doesn't support relative values, so always return false
         return false;
     }
 
     @Override
     protected boolean accepts(ScheduleExpressionType scheduleExprType) {
         switch (scheduleExprType) {
             case :
             case :
             case :
            case :
                return true;
            // month doesn't support increment
            case :
            default:
                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(.);
        }
        if (this..isEmpty()) {
            return null;
        }
        int currentMonth = currentCal.get(.);
        for (Integer month : this.) {
            if (currentMonth == month) {
                return currentMonth;
            }
            if (month > currentMonth) {
                return month;
            }
        }
        return this..first();
    }
    public Integer getFirstMatch() {
        if (this. == .) {
            return .;
        }
        if (this..isEmpty()) {
            throw .invalidExpressionSeconds(this.);
        }
        return this..first();
    }
New to GrepCode? Check out our FAQ X