package com.nailabs.abac.process; import java.util.*; /** * Factory for creating a specific strategy. */ public class StrategyFactory { public static Strategy getStrategy(HashMap config) { Strategy strat = null; System.out.println("config = " + config); Properties props = (Properties)config.get("Strategy"); String type = props.getProperty("type"); NegotiationContext context = (NegotiationContext)config.get("context"); if(type == null) { // if no config then use default strat = new Strategy(context); System.out.print("Creating default strategy for "); } else if(type.equalsIgnoreCase("Stingy")) { // stingy strategy construction StingyStrategy stingy = new StingyStrategy(context, props); System.out.print("Creating stingy strategy for "); strat = stingy; } else { // default strategy construction strat = new Strategy(context); System.out.print("Creating default strategy for "); } System.out.println(context.getSelf()); return strat; } }