All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.elephantdrummer.trigger.MultiTrigger Maven / Gradle / Ivy

There is a newer version: 1.2.5
Show newest version
package com.elephantdrummer.trigger;

import java.util.Collections;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;

import com.elephantdrummer.trigger.base.DateWrapperForDifferenceComparation;
import com.elephantdrummer.trigger.base.DrumTrigger;
import com.elephantdrummer.trigger.base.TriggerType;

/**
 * Copyright 2018 Elephant Software Klaudiusz Wojtkowiak e-mail: [email protected]
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); 
 * you may not use this file except in compliance with the License. 
 * You may obtain a copy of the License at 
 * 
 *  http://www.apache.org/licenses/LICENSE-2.0 
 *  
 *  Unless required by applicable law or agreed to in writing, software 
 *  distributed under the License is distributed on an "AS IS" BASIS, 
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
 *  See the License for the specific language governing permissions and 
 *  limitations under the License. 
 */
public class MultiTrigger extends DrumTrigger{
	
	private List triggers=new LinkedList<>();
	
	 @Override
	public Date getNextRunTime(Date currDate) {
		 
    	List str=new LinkedList();
    	for (DrumTrigger tr:triggers){
    		Date dt=tr.getNextRunTime(currDate);
    		
    		if (dt==null==false){
    			str.add(new DateWrapperForDifferenceComparation(currDate,dt));
    		}
    	}
    	Collections.sort(str);
    	if (str.isEmpty()){
    		log.fine("trigger collection is empty");
    		return null;
    	}
    	
//    	for(DateWrapperForDifferenceComparation d:str) System.out.println(d);
    	Date retVal= str.get(0).getTrigger();
    	
    	return retVal;
	}


    

		@Override
		public final TriggerType getTriggerType() {
			return TriggerType.MULTIPLE;
		}
		
		public void addTrigger(DrumTrigger trigger){
			triggers.add(trigger);
		}
		
		public void removeTrigger(DrumTrigger trigger){
			triggers.remove(trigger);
		}

		@Override
		public String getDescription() {
			return "Multi Trigger";
		}



}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy