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;
 
 
 
 public class ScheduleEntry {
 	static public enum ScheduleArea {
 		Squad,
 		Team,
 		Local
 	}
 	
 	protected RecordStruct params = null;
 	protected Task task = null;
 	protected String provider = null;
 	protected ISchedule schedule = null;
 	protected ScheduleArea area = null;
 	protected String scheduleId = null;
 	protected String title = null;
 	
 	public ISchedule getSchedule() {
 		return this.;
 	}
 	
 	public void setSchedule(ISchedule schedule) {
 		this. = schedule;
 	}
 	
 	public String getScheduleId() {
 		return this.;
 	}
 	
 	public void setScheduleId(String scheduleId) {
 		this. = scheduleId;
 	}
 	
 	public String getTitle() {
 		return this.;
 	}
 	
 	public void setTitle(String title) {
 		this. = title;
 	}
 	
 	public Task getTask() {
 		return this.;
 	}
 	
 	public void setTask(Task task) {
 		this. = task;
 	}
 	
 	public String getProvider() {
 		return this.;
 	}
 	
 	public void setProvider(String provider) {
 		this. = provider;
 	}
 	
 	public ScheduleArea getArea() {
 		return this.;
 	}
 	
 	public void setArea(ScheduleArea area) {
 		this. = area;
 	}
 	
 	public RecordStruct getParams() {
 		return this.;
 	}
 	
 	public void setParams(RecordStruct params) {
 		this. = params;
 	}
 
	public void prepareTask(OperationResult or) {
		if (StringUtil.isNotEmpty(this.)) {
			if (this..startsWith("@")) {
				if (prov != null) {
					FuncResult<Taskres = prov.getTask(this);
					or.copyMessages(res);
					this. = res.getResult();
				}
				else
					or.error("Could not load task provider for schedule");
			}		
			else if (this..startsWith("$")) {
				Task t = new Task()
				if (ScriptWork.addScript(t, Paths.get(this..substring(1)))) 
					this. = t;
				else
					or.error("Error compiling script");
			}		
		}
		if (this. == null)
			or.error("No task defined for schedule");
	}
	public void submit(OperationResult or) {
		// first prepare the task, which relies on
		this.prepareTask(or);
		if (or.hasErrors())
			return;
		this..prep();
		RecordStruct params = this..getParams();
		if (params == null) {
			params = new RecordStruct();
			this..withParams(params);
		}
		params.setField("_ScheduleId"this.);
		params.setField("_ScheduleHints"this..getHints());
		// TODO figure out how to get correct task run info to the scheduler so it can reschedule correctly
		// add a task observer that, when run is done, provides the scheduler with the run for analysis and continuation scheduling
		if (this. == .) {
			return;
		}
		if (this. == .) {
			// don't error further even if we could not reserve
			return;
		}
		or.error("Unable to submit scheduled task");
	}
New to GrepCode? Check out our FAQ X