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

com.elephantdrummer.executor.base.structure.MethodToInvoke Maven / Gradle / Ivy

The newest version!
package com.elephantdrummer.executor.base.structure;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Comparator;

/**
 * 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 MethodToInvoke implements Comparable{
	
	private Method method;
	private Object objectToInvokeMethod;
	private int priority;
	private String jobName;
	
	private MethodToInvoke() {};
	
	public MethodToInvoke(String name,Method method,Object objectToInvokeMethod,int priority) {
		setJobName(name);
		setMethod(method);
		setObjectToInvokeMethod(objectToInvokeMethod);
		setPriority(priority);
	}
	
	
	public void execute() {
		try {
			getMethod().invoke(getObjectToInvokeMethod());
		} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public Method getMethod() {
		return method;
	}
	public void setMethod(Method method) {
		this.method = method;
	}
	public Object getObjectToInvokeMethod() {
		return objectToInvokeMethod;
	}
	public void setObjectToInvokeMethod(Object objectToInvokeMethod) {
		this.objectToInvokeMethod = objectToInvokeMethod;
	}
	public int getPriority() {
		return priority;
	}
	public void setPriority(int priority) {
		this.priority = priority;
	}

	public String getJobName() {
		return jobName;
	}

	public void setJobName(String jobName) {
		this.jobName = jobName;
	}



	@Override
	public int compareTo(MethodToInvoke o) {
		if (o==null) return 1;
		return getPriority() - o.getPriority();
	}
	

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy