package jforex.strategies.oneorder;

import java.lang.reflect.Field;

import com.dukascopy.api.IStrategy;
import com.dukascopy.api.Configurable;

/**
 * The example program prints out strategy parameter names and default values
 *
 */

public class StrategyParamPrinter {
	
	public static void main(String[] args){
		
		EmptyStrategyWithParams strategy = new EmptyStrategyWithParams();
		printParamData(strategy);
		
	}
	
	public static void printParamData(IStrategy strategyInstance) {

		Field[] fields = strategyInstance.getClass().getFields();
		for (Field field : fields) {
			Configurable configurable = field.getAnnotation(Configurable.class);
			if (configurable != null) {				
				Object fieldValue = null;
				try {
					fieldValue = field.get(strategyInstance);
				} catch (IllegalArgumentException e) {
					e.printStackTrace(System.err);
				} catch (IllegalAccessException e) {
					e.printStackTrace(System.err);
				}				
				System.out.println("name: " + configurable.value() + " value: " + fieldValue);
			}
		}
	}

}
