/** * Constructor. * * @param vars The Var classes used for resolving string variables. * @param contextObjects Read-only context objects. */ public VarResolverContext(Class<? extends Var>[] vars, Map<String,Object> contextObjects) { this.vars = Arrays.copyOf(vars, vars.length); Map<String,Var> m = new ConcurrentSkipListMap<>(); for (Class<?> c : vars) { if (! isParentClass(Var.class, c)) throw new VarResolverException("Invalid variable class. Must extend from Var"); Var v = newInstance(Var.class, c); m.put(v.getName(), v); } this.varMap = unmodifiableMap(m); this.contextObjects = immutableMap(contextObjects); }
/** * Constructor. * * @param vars The Var classes used for resolving string variables. * @param contextObjects Read-only context objects. */ public VarResolverContext(Class<? extends Var>[] vars, Map<String,Object> contextObjects) { this.vars = Arrays.copyOf(vars, vars.length); Map<String,Var> m = new ConcurrentSkipListMap<>(); for (Class<?> c : vars) { if (! isParentClass(Var.class, c)) throw new VarResolverException("Invalid variable class. Must extend from Var"); Var v = newInstance(Var.class, c); m.put(v.getName(), v); } this.varMap = unmodifiableMap(m); this.contextObjects = immutableMap(contextObjects); }
/** * Constructor. * * @param vars The Var classes used for resolving string variables. * @param contextObjects Read-only context objects. */ public VarResolverContext(Class<? extends Var>[] vars, Map<String,Object> contextObjects) { this.vars = Arrays.copyOf(vars, vars.length); Map<String,Var> m = new ConcurrentSkipListMap<>(); for (Class<?> c : vars) { if (! isParentClass(Var.class, c)) throw new VarResolverException("Invalid variable class. Must extend from Var"); Var v = newInstance(Var.class, c); m.put(v.getName(), v); } this.varMap = unmodifiableMap(m); this.contextObjects = immutableMap(contextObjects); }