Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /* ************************************************************************
  #
  #  DivConq
  #
  #  http://divconq.com/
  #
  #  Copyright:
  #    Copyright 2014 eTimeline, LLC. All rights reserved.
  #
 #  License:
 #    See the license.txt file in the project's top-level directory for details.
 #
 #  Authors:
 #    * Andy White
 #
 ************************************************************************ */
 package divconq.scheduler.limit;
 
 
 
 
 public class MonthdayWindow {
 	protected MonthdayKind kind = .;
 	
 	// window to use for this 
 	protected DayWindow dailyWindow = new DayWindow();
 	
 	// if type SET then look here for the listed days 
 	protected BitSet dayOfMonth = new BitSet(31);
 	// does the set include "Last"
 	protected boolean isLastDayOfMonth = false;
 	
 	// if other types, besides SET, then list here (0 = monday, 6 = sunday)
 	protected BitSet dayOfWeek = new BitSet(7);
 	
 	public void init(LimitHelper helperXElement config) {
 		if (config != null) {
 			String kind = config.getName();
 			
 			if ("First".equals(kind))
 			else if ("Second".equals(kind))
 			else if ("Third".equals(kind))
 			else if ("Fourth".equals(kind))
 			else if ("Last".equals(kind))
 				this. = .;
 			
 			if (this. != .) {
 				if ("True".equals(config.getAttribute("All")))
 					this..set(0, 6);
 
 				if ("True".equals(config.getAttribute("Monday")))
 					this..set(0);
 				
 				if ("True".equals(config.getAttribute("Tuesday")))
 					this..set(1);
 				
 				if ("True".equals(config.getAttribute("Wednesday")))
 					this..set(2);
 				
 				if ("True".equals(config.getAttribute("Thursday")))
 					this..set(3);
 				
 				if ("True".equals(config.getAttribute("Friday")))
 					this..set(4);
 				
 				if ("True".equals(config.getAttribute("Saturday")))
 					this..set(5);
 				
 				if ("True".equals(config.getAttribute("Sunday")))
 					this..set(6);
 				
 				// if none set then default to all
 				if (this..cardinality() == 0)
 					this..set(0, 6);
 			}
 			else {
 				String list = config.getAttribute("List");
 				
 				if (StringUtil.isEmpty(list) || "All".equals(list)) {
 					this. = true;
 					this..set(0, 30);
 				}
 				else {
 					String[] parts = list.split(",");
 					
 					for (String p : parts) {
 						if (p.equals("Last")) {
 							this. = true;
 							break;
 						}
 						
						int idx = (int)StringUtil.parseInt(p, 0) - 1;
						if (idx > -1)
							this..set(idx);
					}
				}
			}
			this..init(config);
			// True - use default of 24 hours open if there are no windows given
			// False - do not include 24 hour open if there are no windows given
			// Parent - use only the parent (if present) if there are no windows given
			//		serves as a hint to the parser to include parent
			String defaultWindow = config.getAttribute("DefaultWindow"); 
			if (("Parent".equals(defaultWindow)) && (helper != null))
		}
	}
	public boolean excludeAll() {
		// do we have any open window during the day?
			return true;
		// if so, are there any days open
		if (this. == .) { 
			if ((this..cardinality() == 0) && !this.)
				return true;
		}
		else {
			if (this..cardinality() == 0)
				return true;
		}
		return false;
	}
	/*
	 * search to see if there are any minutes open for this date after or at the current minute
	 *  
	 * @param si
	 * @return
	 */
		if (this.appliesTo(si))
			return this..nextTimeOn(si.getWhen());				
		return null;
	}
		if (this.excludeAll())
		if (this.appliesTo(si))
			return this..check(si.getWhen());
	}
	public boolean isDateBlocked(CheckInfo si) {
		return !this.appliesTo(si);
	}
	public boolean appliesTo(CheckInfo si) {
		if (this.excludeAll())
			return false;
		if (this. == .) {
			if (si.isLastDay() && this.)
				return true;
			else if (this..get(si.getDayOfMonth() - 1))
				return true;
		}
		else if (this..get(si.getDayOfWeek() - 1)) { 
			if ((this. == .) && (si.getMonthPlacement() == 1))  
				return true;
			else if ((this. == .) && (si.getMonthPlacement() == 2))  
				return true;
			else if ((this. == .) && (si.getMonthPlacement() == 3))  
				return true;
			else if ((this. == .) && (si.getMonthPlacement() == 4))  
				return true;
			else if ((this. == .) && (si.isLastPlacement())) 
				return true;
		}
		return false;
	}
New to GrepCode? Check out our FAQ X