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

com.elephantdrummer.tool.reflect.ScannerJobConfiguration Maven / Gradle / Ivy

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

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;

import com.elephantdrummer.annotation.ConfigurationForDrummerJobNamed;
import com.elephantdrummer.classconfig.JobClassConfig;
import com.elephantdrummer.scope.DrummerObservable;

/**
 * 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 interface ScannerJobConfiguration {
	
	
	  public static Map getInternalConfiguration(DrummerObservable dob){
		  Map rv=new HashMap<>();
		  
		  for (Method method:dob.getClass().getMethods()) {
			  if (method.isAnnotationPresent(ConfigurationForDrummerJobNamed.class)==false) {
				  continue;
			  }
			  
			 
			  if (method.getParameterTypes().length>0) {
				//  continue;
			  }
			  
			  ConfigurationForDrummerJobNamed a=method.getAnnotation(ConfigurationForDrummerJobNamed.class);
			  
			  
			  try {
				  if (a==null) {
					  continue;
				  }
				  
				  if (a.value()==null) {
					  continue;
				  }
				  
				  
				  if (a==null||a.value()==null||a.value().length==0) {
					  continue;
				  }
				  JobClassConfig jobconfig=(JobClassConfig)method.invoke(dob);
				for (String val:a.value()) {
					rv.put(val, jobconfig);
				}
			} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		  }
		  return rv;
	  }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy