http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/141c7fa0/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/formats/ParameterParser.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/formats/ParameterParser.java b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/formats/ParameterParser.java index 32555c4..3d0f28b 100644 --- a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/formats/ParameterParser.java +++ b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/formats/ParameterParser.java @@ -50,19 +50,19 @@ public class ParameterParser { MonotonicTreeMap<String, Constructor<? extends ExternalConstructor<?>>> parsers = new MonotonicTreeMap<>(); @SuppressWarnings({"unchecked", "rawtypes"}) - public void addParser(Class<? extends ExternalConstructor<?>> ec) throws BindException { - Class<?> tc = (Class<?>) ReflectionUtilities.getInterfaceTarget( + public void addParser(final Class<? extends ExternalConstructor<?>> ec) throws BindException { + final Class<?> tc = (Class<?>) ReflectionUtilities.getInterfaceTarget( ExternalConstructor.class, ec); addParser((Class) tc, (Class) ec); } - public <T, U extends T> void addParser(Class<U> clazz, Class<? extends ExternalConstructor<T>> ec) + public <T, U extends T> void addParser(final Class<U> clazz, final Class<? extends ExternalConstructor<T>> ec) throws BindException { - Constructor<? extends ExternalConstructor<T>> c; + final Constructor<? extends ExternalConstructor<T>> c; try { c = ec.getDeclaredConstructor(String.class); c.setAccessible(true); - } catch (NoSuchMethodException e) { + } catch (final NoSuchMethodException e) { throw new BindException("Constructor " + ReflectionUtilities.getFullName(ec) + "(String) does not exist!", e); } @@ -70,8 +70,8 @@ public class ParameterParser { parsers.put(ReflectionUtilities.getFullName(clazz), c); } - public void mergeIn(ParameterParser p) { - for (String s : p.parsers.keySet()) { + public void mergeIn(final ParameterParser p) { + for (final String s : p.parsers.keySet()) { if (!parsers.containsKey(s)) { parsers.put(s, p.parsers.get(s)); } else { @@ -86,12 +86,12 @@ public class ParameterParser { } } - public <T> T parse(Class<T> c, String s) { - Class<?> d = ReflectionUtilities.boxClass(c); - for (Type e : ReflectionUtilities.classAndAncestors(d)) { - String name = ReflectionUtilities.getFullName(e); + public <T> T parse(final Class<T> c, final String s) { + final Class<?> d = ReflectionUtilities.boxClass(c); + for (final Type e : ReflectionUtilities.classAndAncestors(d)) { + final String name = ReflectionUtilities.getFullName(e); if (parsers.containsKey(name)) { - T ret = parse(name, s); + final T ret = parse(name, s); if (c.isAssignableFrom(ret.getClass())) { return ret; } else { @@ -103,11 +103,11 @@ public class ParameterParser { } @SuppressWarnings("unchecked") - public <T> T parse(String name, String value) { + public <T> T parse(final String name, final String value) { if (parsers.containsKey(name)) { try { return (T) (parsers.get(name).newInstance(value).newInstance()); - } catch (ReflectiveOperationException e) { + } catch (final ReflectiveOperationException e) { throw new IllegalArgumentException("Error invoking constructor for " + name, e); } @@ -146,7 +146,7 @@ public class ParameterParser { } } - public boolean canParse(String name) { + public boolean canParse(final String name) { return parsers.containsKey(name) || BUILTIN_NAMES.contains(name); } }
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/141c7fa0/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/ConfigurationBuilderImpl.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/ConfigurationBuilderImpl.java b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/ConfigurationBuilderImpl.java index e080748..ce70b37 100644 --- a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/ConfigurationBuilderImpl.java +++ b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/ConfigurationBuilderImpl.java @@ -54,47 +54,47 @@ public class ConfigurationBuilderImpl implements ConfigurationBuilder { this.namespace = Tang.Factory.getTang().getDefaultClassHierarchy(); } - protected ConfigurationBuilderImpl(ClassHierarchy namespace) { + protected ConfigurationBuilderImpl(final ClassHierarchy namespace) { this.namespace = namespace; } - protected ConfigurationBuilderImpl(URL[] jars, - Configuration[] confs, - Class<? extends ExternalConstructor<?>>[] parsers) + protected ConfigurationBuilderImpl(final URL[] jars, + final Configuration[] confs, + final Class<? extends ExternalConstructor<?>>[] parsers) throws BindException { this.namespace = Tang.Factory.getTang().getDefaultClassHierarchy(jars, parsers); - for (Configuration tc : confs) { + for (final Configuration tc : confs) { addConfiguration(((ConfigurationImpl) tc)); } } - protected ConfigurationBuilderImpl(ConfigurationBuilderImpl t) { + protected ConfigurationBuilderImpl(final ConfigurationBuilderImpl t) { this.namespace = t.getClassHierarchy(); try { addConfiguration(t.getClassHierarchy(), t); - } catch (BindException e) { + } catch (final BindException e) { throw new IllegalStateException("Could not copy builder", e); } } @SuppressWarnings("unchecked") - protected ConfigurationBuilderImpl(URL... jars) throws BindException { + protected ConfigurationBuilderImpl(final URL... jars) throws BindException { this(jars, new Configuration[0], new Class[0]); } @SuppressWarnings("unchecked") - protected ConfigurationBuilderImpl(Configuration... confs) throws BindException { + protected ConfigurationBuilderImpl(final Configuration... confs) throws BindException { this(new URL[0], confs, new Class[0]); } @Override - public void addConfiguration(Configuration conf) throws BindException { + public void addConfiguration(final Configuration conf) throws BindException { // XXX remove cast! addConfiguration(conf.getClassHierarchy(), ((ConfigurationImpl) conf).builder); } @SuppressWarnings("unchecked") - private <T> void addConfiguration(ClassHierarchy ns, ConfigurationBuilderImpl builder) + private <T> void addConfiguration(final ClassHierarchy ns, final ConfigurationBuilderImpl builder) throws BindException { namespace = namespace.merge(ns); if ((namespace instanceof ClassHierarchyImpl || builder.namespace instanceof ClassHierarchyImpl)) { @@ -106,24 +106,24 @@ public class ConfigurationBuilderImpl implements ConfigurationBuilder { } } - for (ClassNode<?> cn : builder.boundImpls.keySet()) { + for (final ClassNode<?> cn : builder.boundImpls.keySet()) { bind(cn.getFullName(), builder.boundImpls.get(cn).getFullName()); } - for (ClassNode<?> cn : builder.boundConstructors.keySet()) { + for (final ClassNode<?> cn : builder.boundConstructors.keySet()) { bind(cn.getFullName(), builder.boundConstructors.get(cn).getFullName()); } // The namedParameters set contains the strings that can be used to // instantiate new // named parameter instances. Create new ones where we can. - for (NamedParameterNode<?> np : builder.namedParameters.keySet()) { + for (final NamedParameterNode<?> np : builder.namedParameters.keySet()) { bind(np.getFullName(), builder.namedParameters.get(np)); } - for (ClassNode<?> cn : builder.legacyConstructors.keySet()) { + for (final ClassNode<?> cn : builder.legacyConstructors.keySet()) { registerLegacyConstructor(cn, builder.legacyConstructors.get(cn) .getArgs()); } - for (Entry<NamedParameterNode<Set<?>>, Object> e : builder.boundSetEntries) { - String name = ((NamedParameterNode<Set<T>>) (NamedParameterNode<?>) e.getKey()).getFullName(); + for (final Entry<NamedParameterNode<Set<?>>, Object> e : builder.boundSetEntries) { + final String name = ((NamedParameterNode<Set<T>>) (NamedParameterNode<?>) e.getKey()).getFullName(); if (e.getValue() instanceof Node) { bindSetEntry(name, (Node) e.getValue()); } else if (e.getValue() instanceof String) { @@ -133,7 +133,7 @@ public class ConfigurationBuilderImpl implements ConfigurationBuilder { } } // The boundLists set contains bound lists with their target NamedParameters - for (NamedParameterNode<List<?>> np : builder.boundLists.keySet()) { + for (final NamedParameterNode<List<?>> np : builder.boundLists.keySet()) { bindList(np.getFullName(), builder.boundLists.get(np)); } } @@ -144,9 +144,9 @@ public class ConfigurationBuilderImpl implements ConfigurationBuilder { } @Override - public void registerLegacyConstructor(ClassNode<?> c, + public void registerLegacyConstructor(final ClassNode<?> c, final ConstructorArg... args) throws BindException { - String[] cn = new String[args.length]; + final String[] cn = new String[args.length]; for (int i = 0; i < args.length; i++) { cn[i] = args[i].getType(); } @@ -154,10 +154,10 @@ public class ConfigurationBuilderImpl implements ConfigurationBuilder { } @Override - public void registerLegacyConstructor(String s, final String... args) + public void registerLegacyConstructor(final String s, final String... args) throws BindException { - ClassNode<?> cn = (ClassNode<?>) namespace.getNode(s); - ClassNode<?>[] cnArgs = new ClassNode[args.length]; + final ClassNode<?> cn = (ClassNode<?>) namespace.getNode(s); + final ClassNode<?>[] cnArgs = new ClassNode[args.length]; for (int i = 0; i < args.length; i++) { cnArgs[i] = (ClassNode<?>) namespace.getNode(args[i]); } @@ -165,18 +165,18 @@ public class ConfigurationBuilderImpl implements ConfigurationBuilder { } @Override - public void registerLegacyConstructor(ClassNode<?> cn, + public void registerLegacyConstructor(final ClassNode<?> cn, final ClassNode<?>... args) throws BindException { legacyConstructors.put(cn, cn.getConstructorDef(args)); } @Override - public <T> void bind(String key, String value) throws BindException { - Node n = namespace.getNode(key); + public <T> void bind(final String key, final String value) throws BindException { + final Node n = namespace.getNode(key); if (n instanceof NamedParameterNode) { bindParameter((NamedParameterNode<?>) n, value); } else if (n instanceof ClassNode) { - Node m = namespace.getNode(value); + final Node m = namespace.getNode(value); bind((ClassNode<?>) n, (ClassNode<?>) m); } else { throw new IllegalStateException("getNode() returned " + n + @@ -185,13 +185,13 @@ public class ConfigurationBuilderImpl implements ConfigurationBuilder { } @SuppressWarnings({"unchecked", "rawtypes"}) - public void bind(Node key, Node value) throws BindException { + public void bind(final Node key, final Node value) throws BindException { if (key instanceof NamedParameterNode) { bindParameter((NamedParameterNode<?>) key, value.getFullName()); } else if (key instanceof ClassNode) { - ClassNode<?> k = (ClassNode<?>) key; + final ClassNode<?> k = (ClassNode<?>) key; if (value instanceof ClassNode) { - ClassNode<?> val = (ClassNode<?>) value; + final ClassNode<?> val = (ClassNode<?>) value; if (val.isExternalConstructor() && !k.isExternalConstructor()) { bindConstructor(k, (ClassNode) val); } else { @@ -201,7 +201,7 @@ public class ConfigurationBuilderImpl implements ConfigurationBuilder { } } - public <T> void bindImplementation(ClassNode<T> n, ClassNode<? extends T> m) + public <T> void bindImplementation(final ClassNode<T> n, final ClassNode<? extends T> m) throws BindException { if (namespace.isImplementation(n, m)) { boundImpls.put(n, m); @@ -211,7 +211,7 @@ public class ConfigurationBuilderImpl implements ConfigurationBuilder { } @SuppressWarnings({"unchecked", "rawtypes"}) - public <T> void bindParameter(NamedParameterNode<T> name, String value) + public <T> void bindParameter(final NamedParameterNode<T> name, final String value) throws BindException { /* Parse and discard value; this is just for type checking */ if (namespace instanceof JavaClassHierarchy) { @@ -226,27 +226,27 @@ public class ConfigurationBuilderImpl implements ConfigurationBuilder { @SuppressWarnings("unchecked") @Override - public void bindSetEntry(String iface, String impl) + public void bindSetEntry(final String iface, final String impl) throws BindException { boundSetEntries.put((NamedParameterNode<Set<?>>) namespace.getNode(iface), impl); } @SuppressWarnings("unchecked") @Override - public void bindSetEntry(String iface, Node impl) + public void bindSetEntry(final String iface, final Node impl) throws BindException { boundSetEntries.put((NamedParameterNode<Set<?>>) namespace.getNode(iface), impl); } @SuppressWarnings("unchecked") @Override - public <T> void bindSetEntry(NamedParameterNode<Set<T>> iface, String impl) + public <T> void bindSetEntry(final NamedParameterNode<Set<T>> iface, final String impl) throws BindException { if (namespace instanceof ClassHierarchyImpl) { - JavaClassHierarchy javanamespace = (ClassHierarchyImpl) namespace; + final JavaClassHierarchy javanamespace = (ClassHierarchyImpl) namespace; try { javanamespace.parse(iface, impl); - } catch (ParseException e) { + } catch (final ParseException e) { throw new IllegalStateException("Could not parse " + impl + " which was passed to " + iface); } } @@ -255,22 +255,22 @@ public class ConfigurationBuilderImpl implements ConfigurationBuilder { @SuppressWarnings("unchecked") @Override - public <T> void bindSetEntry(NamedParameterNode<Set<T>> iface, Node impl) + public <T> void bindSetEntry(final NamedParameterNode<Set<T>> iface, final Node impl) throws BindException { boundSetEntries.put((NamedParameterNode<Set<?>>) (NamedParameterNode<?>) iface, impl); } @SuppressWarnings("unchecked") @Override - public <T> void bindList(NamedParameterNode<List<T>> iface, List implList) { + public <T> void bindList(final NamedParameterNode<List<T>> iface, final List implList) { // Check parsability of list items - for (Object item : implList) { + for (final Object item : implList) { if (item instanceof String) { - JavaClassHierarchy javanamespace = (ClassHierarchyImpl) namespace; + final JavaClassHierarchy javanamespace = (ClassHierarchyImpl) namespace; try { // Just for parsability checking. javanamespace.parse(iface, (String) item); - } catch (ParseException e) { + } catch (final ParseException e) { throw new IllegalStateException("Could not parse " + item + " which was passed to " + iface); } } @@ -280,16 +280,16 @@ public class ConfigurationBuilderImpl implements ConfigurationBuilder { @SuppressWarnings("unchecked") @Override - public void bindList(String iface, List implList) { - NamedParameterNode<List<?>> ifaceNode = (NamedParameterNode<List<?>>) namespace.getNode(iface); + public void bindList(final String iface, final List implList) { + final NamedParameterNode<List<?>> ifaceNode = (NamedParameterNode<List<?>>) namespace.getNode(iface); // Check parsability of list items - for (Object item : implList) { + for (final Object item : implList) { if (item instanceof String) { - JavaClassHierarchy javanamespace = (ClassHierarchyImpl) namespace; + final JavaClassHierarchy javanamespace = (ClassHierarchyImpl) namespace; try { // Just for parsability checking. javanamespace.parse(ifaceNode, (String) item); - } catch (ParseException e) { + } catch (final ParseException e) { throw new IllegalStateException("Could not parse " + item + " which was passed to " + iface); } } @@ -298,8 +298,8 @@ public class ConfigurationBuilderImpl implements ConfigurationBuilder { } @Override - public <T> void bindConstructor(ClassNode<T> k, - ClassNode<? extends ExternalConstructor<? extends T>> v) { + public <T> void bindConstructor(final ClassNode<T> k, + final ClassNode<? extends ExternalConstructor<? extends T>> v) { boundConstructors.put(k, v); } @@ -309,17 +309,17 @@ public class ConfigurationBuilderImpl implements ConfigurationBuilder { } @Override - public String classPrettyDefaultString(String longName) throws NameResolutionException { + public String classPrettyDefaultString(final String longName) throws NameResolutionException { final NamedParameterNode<?> param = (NamedParameterNode<?>) namespace .getNode(longName); return param.getSimpleArgName() + "=" + join(",", param.getDefaultInstanceAsStrings()); } - private String join(String sep, String[] s) { + private String join(final String sep, final String[] s) { if (s.length == 0) { return null; } else { - StringBuilder sb = new StringBuilder(s[0]); + final StringBuilder sb = new StringBuilder(s[0]); for (int i = 1; i < s.length; i++) { sb.append(sep); sb.append(s[i]); @@ -329,7 +329,7 @@ public class ConfigurationBuilderImpl implements ConfigurationBuilder { } @Override - public String classPrettyDescriptionString(String fullName) + public String classPrettyDescriptionString(final String fullName) throws NameResolutionException { final NamedParameterNode<?> param = (NamedParameterNode<?>) namespace .getNode(fullName); @@ -345,7 +345,7 @@ public class ConfigurationBuilderImpl implements ConfigurationBuilder { return false; } - ConfigurationBuilderImpl that = (ConfigurationBuilderImpl) o; + final ConfigurationBuilderImpl that = (ConfigurationBuilderImpl) o; if (boundConstructors != null ? !boundConstructors.equals(that.boundConstructors) : that.boundConstructors != null) { http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/141c7fa0/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/ConfigurationImpl.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/ConfigurationImpl.java b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/ConfigurationImpl.java index 2467c09..42ab78b 100644 --- a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/ConfigurationImpl.java +++ b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/ConfigurationImpl.java @@ -93,12 +93,12 @@ public class ConfigurationImpl implements Configuration { } @Override - public Set<Object> getBoundSet(NamedParameterNode<Set<?>> np) { + public Set<Object> getBoundSet(final NamedParameterNode<Set<?>> np) { return this.builder.boundSetEntries.getValuesForKey(np); } @Override - public List<Object> getBoundList(NamedParameterNode<List<?>> np) { + public List<Object> getBoundList(final NamedParameterNode<List<?>> np) { return this.builder.boundLists.get(np); } @@ -119,7 +119,7 @@ public class ConfigurationImpl implements Configuration { } @Override - public boolean equals(Object o) { + public boolean equals(final Object o) { if (this == o) { return true; } http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/141c7fa0/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/InjectionFuturePlan.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/InjectionFuturePlan.java b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/InjectionFuturePlan.java index 6b55adb..4e3d8f2 100644 --- a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/InjectionFuturePlan.java +++ b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/InjectionFuturePlan.java @@ -22,7 +22,7 @@ import org.apache.reef.tang.types.Node; public class InjectionFuturePlan<T> extends InjectionPlan<T> { - public InjectionFuturePlan(Node name) { + public InjectionFuturePlan(final Node name) { super(name); } http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/141c7fa0/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/InjectionPlan.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/InjectionPlan.java b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/InjectionPlan.java index d13750a..19803d7 100644 --- a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/InjectionPlan.java +++ b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/InjectionPlan.java @@ -32,7 +32,7 @@ public abstract class InjectionPlan<T> implements Traversable<InjectionPlan<?>> this.node = node; } - private static void newline(StringBuffer pretty, int indent) { + private static void newline(final StringBuffer pretty, final int indent) { pretty.append('\n'); for (int j = 0; j < indent * 2; j++) { pretty.append(' '); @@ -65,18 +65,18 @@ public abstract class InjectionPlan<T> implements Traversable<InjectionPlan<?>> public abstract boolean isInjectable(); - protected void pad(StringBuffer sb, int n) { + protected void pad(final StringBuffer sb, final int n) { for (int i = 0; i < n; i++) { sb.append(" "); } } public String toPrettyString() { - String ugly = node.getFullName() + ":\n" + toString(); - StringBuffer pretty = new StringBuffer(); + final String ugly = node.getFullName() + ":\n" + toString(); + final StringBuffer pretty = new StringBuffer(); int currentIndent = 1; for (int i = 0; i < ugly.length(); i++) { - char c = ugly.charAt(i); + final char c = ugly.charAt(i); if (c == '(') { if (ugly.charAt(i + 1) == ')') { pretty.append("()"); http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/141c7fa0/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/ListInjectionPlan.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/ListInjectionPlan.java b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/ListInjectionPlan.java index 18e7056..e759b52 100644 --- a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/ListInjectionPlan.java +++ b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/ListInjectionPlan.java @@ -29,13 +29,13 @@ public class ListInjectionPlan<T> extends InjectionPlan<T> { private final boolean isAmbiguous; private final boolean isInjectable; - public ListInjectionPlan(Node name, List<InjectionPlan<T>> entries) { + public ListInjectionPlan(final Node name, final List<InjectionPlan<T>> entries) { super(name); this.entries.addAll(entries); int numAlternativesAccumulator = 1; boolean isAmbiguousAccumulator = false; boolean isInjectableAccumulator = true; - for (InjectionPlan<T> ip : entries) { + for (final InjectionPlan<T> ip : entries) { numAlternativesAccumulator *= ip.getNumAlternatives(); isAmbiguousAccumulator |= ip.isAmbiguous(); isInjectableAccumulator &= ip.isInjectable(); @@ -66,8 +66,8 @@ public class ListInjectionPlan<T> extends InjectionPlan<T> { @Override protected String toAmbiguousInjectString() { - StringBuilder sb = new StringBuilder(getNode().getFullName() + "(list) includes ambiguous plans ["); - for (InjectionPlan<T> ip : entries) { + final StringBuilder sb = new StringBuilder(getNode().getFullName() + "(list) includes ambiguous plans ["); + for (final InjectionPlan<T> ip : entries) { if (ip.isAmbiguous()) { sb.append("\n" + ip.toAmbiguousInjectString()); } @@ -78,8 +78,8 @@ public class ListInjectionPlan<T> extends InjectionPlan<T> { @Override protected String toInfeasibleInjectString() { - StringBuilder sb = new StringBuilder(getNode().getFullName() + "(list) includes infeasible plans ["); - for (InjectionPlan<T> ip : entries) { + final StringBuilder sb = new StringBuilder(getNode().getFullName() + "(list) includes infeasible plans ["); + for (final InjectionPlan<T> ip : entries) { if (!ip.isFeasible()) { sb.append("\n" + ip.toInfeasibleInjectString()); } @@ -95,8 +95,8 @@ public class ListInjectionPlan<T> extends InjectionPlan<T> { @Override public String toShallowString() { - StringBuilder sb = new StringBuilder("list { "); - for (InjectionPlan<T> ip : entries) { + final StringBuilder sb = new StringBuilder("list { "); + for (final InjectionPlan<T> ip : entries) { sb.append("\n" + ip.toShallowString()); } sb.append("\n } "); http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/141c7fa0/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/SetInjectionPlan.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/SetInjectionPlan.java b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/SetInjectionPlan.java index 8b65ad4..5fd333a 100644 --- a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/SetInjectionPlan.java +++ b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/SetInjectionPlan.java @@ -29,13 +29,13 @@ public class SetInjectionPlan<T> extends InjectionPlan<T> { private final boolean isAmbiguous; private final boolean isInjectable; - public SetInjectionPlan(Node name, Set<InjectionPlan<T>> entries) { + public SetInjectionPlan(final Node name, final Set<InjectionPlan<T>> entries) { super(name); this.entries.addAll(entries); int numAlternativesAccumulator = 1; boolean isAmbiguousAccumulator = false; boolean isInjectableAccumulator = true; - for (InjectionPlan<T> ip : entries) { + for (final InjectionPlan<T> ip : entries) { numAlternativesAccumulator *= ip.getNumAlternatives(); isAmbiguousAccumulator |= ip.isAmbiguous(); isInjectableAccumulator &= ip.isInjectable(); @@ -66,8 +66,8 @@ public class SetInjectionPlan<T> extends InjectionPlan<T> { @Override protected String toAmbiguousInjectString() { - StringBuilder sb = new StringBuilder(getNode().getFullName() + "(set) includes ambiguous plans ["); - for (InjectionPlan<T> ip : entries) { + final StringBuilder sb = new StringBuilder(getNode().getFullName() + "(set) includes ambiguous plans ["); + for (final InjectionPlan<T> ip : entries) { if (ip.isAmbiguous()) { sb.append("\n" + ip.toAmbiguousInjectString()); } @@ -78,8 +78,8 @@ public class SetInjectionPlan<T> extends InjectionPlan<T> { @Override protected String toInfeasibleInjectString() { - StringBuilder sb = new StringBuilder(getNode().getFullName() + "(set) includes infeasible plans ["); - for (InjectionPlan<T> ip : entries) { + final StringBuilder sb = new StringBuilder(getNode().getFullName() + "(set) includes infeasible plans ["); + for (final InjectionPlan<T> ip : entries) { if (!ip.isFeasible()) { sb.append("\n" + ip.toInfeasibleInjectString()); } @@ -95,8 +95,8 @@ public class SetInjectionPlan<T> extends InjectionPlan<T> { @Override public String toShallowString() { - StringBuilder sb = new StringBuilder("set { "); - for (InjectionPlan<T> ip : entries) { + final StringBuilder sb = new StringBuilder("set { "); + for (final InjectionPlan<T> ip : entries) { sb.append("\n" + ip.toShallowString()); } sb.append("\n } "); http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/141c7fa0/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/StackBindLocation.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/StackBindLocation.java b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/StackBindLocation.java index 063ecd6..55f9bec 100644 --- a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/StackBindLocation.java +++ b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/StackBindLocation.java @@ -26,7 +26,7 @@ public class StackBindLocation implements BindLocation { final StackTraceElement[] stack; public StackBindLocation() { - StackTraceElement[] stackTrace = new Throwable().getStackTrace(); + final StackTraceElement[] stackTrace = new Throwable().getStackTrace(); if (stackTrace.length != 0) { this.stack = Arrays.copyOfRange(stackTrace, 1, stackTrace.length); } else { @@ -36,8 +36,8 @@ public class StackBindLocation implements BindLocation { @Override public String toString() { - StringBuffer sb = new StringBuffer("[\n"); - for (StackTraceElement e : stack) { + final StringBuffer sb = new StringBuffer("[\n"); + for (final StackTraceElement e : stack) { sb.append(e.toString() + "\n"); } sb.append("]\n"); http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/141c7fa0/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/Subplan.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/Subplan.java b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/Subplan.java index 8a59299..f98b8c0 100644 --- a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/Subplan.java +++ b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/Subplan.java @@ -28,7 +28,7 @@ public final class Subplan<T> extends InjectionPlan<T> { final int selectedIndex; @SafeVarargs - public Subplan(Node node, int selectedIndex, InjectionPlan<T>... alternatives) { + public Subplan(final Node node, final int selectedIndex, final InjectionPlan<T>... alternatives) { super(node); this.alternatives = alternatives; if (selectedIndex < -1 || selectedIndex >= alternatives.length) { @@ -39,7 +39,7 @@ public final class Subplan<T> extends InjectionPlan<T> { this.numAlternatives = alternatives[selectedIndex].getNumAlternatives(); } else { int numAlternativesSum = 0; - for (InjectionPlan<? extends T> a : alternatives) { + for (final InjectionPlan<? extends T> a : alternatives) { numAlternativesSum += a.getNumAlternatives(); } this.numAlternatives = numAlternativesSum; @@ -47,7 +47,7 @@ public final class Subplan<T> extends InjectionPlan<T> { } @SafeVarargs - public Subplan(Node node, InjectionPlan<T>... alternatives) { + public Subplan(final Node node, final InjectionPlan<T>... alternatives) { this(node, -1, alternatives); } @@ -96,7 +96,7 @@ public final class Subplan<T> extends InjectionPlan<T> { } else if (alternatives.length == 0) { return getNode().getName() + ": no injectable constructors"; } - StringBuilder sb = new StringBuilder("["); + final StringBuilder sb = new StringBuilder("["); sb.append(getNode().getName() + " = " + alternatives[0]); for (int i = 1; i < alternatives.length; i++) { sb.append(" | " + alternatives[i]); @@ -112,7 +112,7 @@ public final class Subplan<T> extends InjectionPlan<T> { } else if (alternatives.length == 0) { return getNode().getName() + ": no injectable constructors"; } - StringBuilder sb = new StringBuilder("["); + final StringBuilder sb = new StringBuilder("["); sb.append(getNode().getName() + " = " + alternatives[0].toShallowString()); for (int i = 1; i < alternatives.length; i++) { sb.append(" | " + alternatives[i].toShallowString()); @@ -140,9 +140,9 @@ public final class Subplan<T> extends InjectionPlan<T> { } else if (selectedIndex != -1) { return alternatives[selectedIndex].toAmbiguousInjectString(); } else { - List<InjectionPlan<?>> alts = new ArrayList<>(); - List<InjectionPlan<?>> ambig = new ArrayList<>(); - for (InjectionPlan<?> alt : alternatives) { + final List<InjectionPlan<?>> alts = new ArrayList<>(); + final List<InjectionPlan<?>> ambig = new ArrayList<>(); + for (final InjectionPlan<?> alt : alternatives) { if (alt.isFeasible()) { alts.add(alt); } @@ -150,11 +150,11 @@ public final class Subplan<T> extends InjectionPlan<T> { ambig.add(alt); } } - StringBuffer sb = new StringBuffer("Ambiguous subplan " + getNode().getFullName()); - for (InjectionPlan<?> alt : alts) { + final StringBuffer sb = new StringBuffer("Ambiguous subplan " + getNode().getFullName()); + for (final InjectionPlan<?> alt : alts) { sb.append("\n " + alt.toShallowString() + " "); } - for (InjectionPlan<?> alt : ambig) { + for (final InjectionPlan<?> alt : ambig) { sb.append("\n " + alt.toShallowString() + " "); } sb.append("\n]"); http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/141c7fa0/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/TangImpl.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/TangImpl.java b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/TangImpl.java index 7df15e0..a4125b2 100644 --- a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/TangImpl.java +++ b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/TangImpl.java @@ -40,7 +40,7 @@ public class TangImpl implements Tang { } @Override - public Injector newInjector(Configuration... confs) throws BindException { + public Injector newInjector(final Configuration... confs) throws BindException { return new InjectorImpl(new JavaConfigurationBuilderImpl(confs).build()); } @@ -49,23 +49,23 @@ public class TangImpl implements Tang { public JavaConfigurationBuilder newConfigurationBuilder() { try { return newConfigurationBuilder(new URL[0], new Configuration[0], new Class[0]); - } catch (BindException e) { + } catch (final BindException e) { throw new IllegalStateException( "Caught unexpeceted bind exception! Implementation bug.", e); } } @Override - public ConfigurationBuilder newConfigurationBuilder(ClassHierarchy ch) { + public ConfigurationBuilder newConfigurationBuilder(final ClassHierarchy ch) { return new ConfigurationBuilderImpl(ch); } @SuppressWarnings("unchecked") @Override - public JavaConfigurationBuilder newConfigurationBuilder(URL... jars) { + public JavaConfigurationBuilder newConfigurationBuilder(final URL... jars) { try { return newConfigurationBuilder(jars, new Configuration[0], new Class[0]); - } catch (BindException e) { + } catch (final BindException e) { throw new IllegalStateException( "Caught unexpeceted bind exception! Implementation bug.", e); } @@ -74,22 +74,21 @@ public class TangImpl implements Tang { @SuppressWarnings("unchecked") @Override public JavaConfigurationBuilder newConfigurationBuilder( - Configuration... confs) throws BindException { + final Configuration... confs) throws BindException { return newConfigurationBuilder(new URL[0], confs, new Class[0]); } @Override public final JavaConfigurationBuilder newConfigurationBuilder( - @SuppressWarnings("unchecked") Class<? extends ExternalConstructor<?>>... parsers) throws BindException { + @SuppressWarnings("unchecked") final Class<? extends ExternalConstructor<?>>... parsers) throws BindException { return newConfigurationBuilder(new URL[0], new Configuration[0], parsers); } @Override - public JavaConfigurationBuilder newConfigurationBuilder(URL[] jars, - Configuration[] confs, - Class<? extends ExternalConstructor<?>>[] parameterParsers) + public JavaConfigurationBuilder newConfigurationBuilder(final URL[] jars, final Configuration[] confs, + final Class<? extends ExternalConstructor<?>>[] parameterParsers) throws BindException { - JavaConfigurationBuilder cb = new JavaConfigurationBuilderImpl(jars, confs, parameterParsers); + final JavaConfigurationBuilder cb = new JavaConfigurationBuilderImpl(jars, confs, parameterParsers); // for (Configuration c : confs) { // cb.addConfiguration(c); // } @@ -103,9 +102,9 @@ public class TangImpl implements Tang { } @Override - public JavaClassHierarchy getDefaultClassHierarchy(URL[] jars, - Class<? extends ExternalConstructor<?>>[] parameterParsers) { - SetValuedKey key = new SetValuedKey(jars, parameterParsers); + public JavaClassHierarchy getDefaultClassHierarchy(final URL[] jars, + final Class<? extends ExternalConstructor<?>>[] parameterParsers) { + final SetValuedKey key = new SetValuedKey(jars, parameterParsers); JavaClassHierarchy ret = defaultClassHierarchy.get(key); if (ret == null) { @@ -116,10 +115,10 @@ public class TangImpl implements Tang { } @Override - public Injector newInjector(Configuration confs) { + public Injector newInjector(final Configuration confs) { try { return newInjector(new Configuration[]{confs}); - } catch (BindException e) { + } catch (final BindException e) { throw new IllegalStateException("Unexpected error cloning configuration", e); } } @@ -128,7 +127,7 @@ public class TangImpl implements Tang { public Injector newInjector() { try { return newInjector(new Configuration[]{}); - } catch (BindException e) { + } catch (final BindException e) { throw new IllegalStateException("Unexpected error from empty configuration", e); } } @@ -136,7 +135,7 @@ public class TangImpl implements Tang { private class SetValuedKey { public final Set<Object> key; - public SetValuedKey(Object[] ts, Object[] us) { + public SetValuedKey(final Object[] ts, final Object[] us) { key = new HashSet<Object>(Arrays.asList(ts)); key.addAll(Arrays.asList(us)); } @@ -144,15 +143,15 @@ public class TangImpl implements Tang { @Override public int hashCode() { int i = 0; - for (Object t : key) { + for (final Object t : key) { i += t.hashCode(); } return i; } @Override - public boolean equals(Object o) { - SetValuedKey other = (SetValuedKey) o; + public boolean equals(final Object o) { + final SetValuedKey other = (SetValuedKey) o; if (other.key.size() != this.key.size()) { return false; } http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/141c7fa0/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/avro/AvroClassHierarchy.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/avro/AvroClassHierarchy.java b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/avro/AvroClassHierarchy.java index 9e1ea57..74c8d3c 100644 --- a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/avro/AvroClassHierarchy.java +++ b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/avro/AvroClassHierarchy.java @@ -129,7 +129,7 @@ final class AvroClassHierarchy implements ClassHierarchy { final ClassNode iface; try { iface = (ClassNode) getNode(getString(n.getFullName())); - } catch (NameResolutionException e) { + } catch (final NameResolutionException e) { final String errorMessage = new StringBuilder() .append("When reading avro node ").append(n.getFullName()) .append(" does not exist. Full record is ").append(n).toString(); @@ -138,18 +138,18 @@ final class AvroClassHierarchy implements ClassHierarchy { for (final CharSequence impl : cn.getImplFullNames()) { try { iface.putImpl((ClassNode) getNode(getString(impl))); - } catch (NameResolutionException e) { + } catch (final NameResolutionException e) { final String errorMessage = new StringBuilder() .append("When reading avro node ").append(n) .append(" refers to non-existent implementation:").append(impl).toString(); throw new IllegalStateException(errorMessage, e); - } catch (ClassCastException e) { + } catch (final ClassCastException e) { try { final String errorMessage = new StringBuilder() .append("When reading avro node ").append(n).append(" found implementation") .append(getNode(getString(impl))).append(" which is not a ClassNode!").toString(); throw new IllegalStateException(errorMessage, e); - } catch (NameResolutionException e2) { + } catch (final NameResolutionException e2) { final String errorMessage = new StringBuilder() .append("Got 'cant happen' exception when producing error message for ") .append(e).toString(); http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/141c7fa0/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/avro/AvroClassHierarchySerializer.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/avro/AvroClassHierarchySerializer.java b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/avro/AvroClassHierarchySerializer.java index d0026ac..886b1d5 100644 --- a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/avro/AvroClassHierarchySerializer.java +++ b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/avro/AvroClassHierarchySerializer.java @@ -218,7 +218,7 @@ public final class AvroClassHierarchySerializer implements ClassHierarchySeriali } @Override - public void toTextFile(ClassHierarchy classHierarchy, File file) throws IOException { + public void toTextFile(final ClassHierarchy classHierarchy, final File file) throws IOException { try (final Writer w = new FileWriter(file)) { w.write(this.toString(classHierarchy)); } http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/141c7fa0/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/java/ClassHierarchyImpl.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/java/ClassHierarchyImpl.java b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/java/ClassHierarchyImpl.java index 3011a0f..5d5f953 100644 --- a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/java/ClassHierarchyImpl.java +++ b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/java/ClassHierarchyImpl.java @@ -79,18 +79,18 @@ public class ClassHierarchyImpl implements JavaClassHierarchy { } @SuppressWarnings("unchecked") - public ClassHierarchyImpl(URL... jars) { + public ClassHierarchyImpl(final URL... jars) { this(jars, new Class[0]); } - public ClassHierarchyImpl(URL[] jars, Class<? extends ExternalConstructor<?>>[] parameterParsers) { + public ClassHierarchyImpl(final URL[] jars, final Class<? extends ExternalConstructor<?>>[] parameterParsers) { this.namespace = JavaNodeFactory.createRootPackageNode(); this.jars = new ArrayList<>(Arrays.asList(jars)); this.loader = new URLClassLoader(jars, this.getClass().getClassLoader()); - for (Class<? extends ExternalConstructor<?>> p : parameterParsers) { + for (final Class<? extends ExternalConstructor<?>> p : parameterParsers) { try { parameterParser.addParser(p); - } catch (BindException e) { + } catch (final BindException e) { throw new IllegalArgumentException("Could not register parameter parsers", e); } } @@ -106,14 +106,14 @@ public class ClassHierarchyImpl implements JavaClassHierarchy { */ @SuppressWarnings("unchecked") @Override - public <T> T parseDefaultValue(NamedParameterNode<T> name) { - String[] vals = name.getDefaultInstanceAsStrings(); - T[] ret = (T[]) new Object[vals.length]; + public <T> T parseDefaultValue(final NamedParameterNode<T> name) { + final String[] vals = name.getDefaultInstanceAsStrings(); + final T[] ret = (T[]) new Object[vals.length]; for (int i = 0; i < vals.length; i++) { - String val = vals[i]; + final String val = vals[i]; try { ret[i] = parse(name, val); - } catch (ParseException e) { + } catch (final ParseException e) { throw new ClassHierarchyException("Could not parse default value", e); } } @@ -143,11 +143,11 @@ public class ClassHierarchyImpl implements JavaClassHierarchy { */ @Override @SuppressWarnings("unchecked") - public <T> T parse(NamedParameterNode<T> np, String value) throws ParseException { + public <T> T parse(final NamedParameterNode<T> np, final String value) throws ParseException { final ClassNode<T> iface; try { iface = (ClassNode<T>) getNode(np.getFullArgName()); - } catch (NameResolutionException e) { + } catch (final NameResolutionException e) { throw new IllegalStateException("Could not parse validated named parameter argument type. NamedParameter is " + np.getFullName() + " argument type is " + np.getFullArgName()); } @@ -156,7 +156,7 @@ public class ClassHierarchyImpl implements JavaClassHierarchy { try { clazz = (Class<?>) classForName(iface.getFullName()); fullName = null; - } catch (ClassNotFoundException e) { + } catch (final ClassNotFoundException e) { clazz = null; fullName = iface.getFullName(); } @@ -166,7 +166,7 @@ public class ClassHierarchyImpl implements JavaClassHierarchy { } else { return parameterParser.parse(fullName, value); } - } catch (UnsupportedOperationException e) { + } catch (final UnsupportedOperationException e) { try { final Node impl = getNode(value); if (impl instanceof ClassNode) { @@ -176,7 +176,7 @@ public class ClassHierarchyImpl implements JavaClassHierarchy { } throw new ParseException("Name<" + iface.getFullName() + "> " + np.getFullName() + " cannot take non-subclass " + impl.getFullName(), e); - } catch (NameResolutionException e2) { + } catch (final NameResolutionException e2) { throw new ParseException("Name<" + iface.getFullName() + "> " + np.getFullName() + " cannot take non-class " + value, e); } @@ -188,13 +188,13 @@ public class ClassHierarchyImpl implements JavaClassHierarchy { * ClassHierarchy's classloader. */ @Override - public Class<?> classForName(String name) throws ClassNotFoundException { + public Class<?> classForName(final String name) throws ClassNotFoundException { return ReflectionUtilities.classForName(name, loader); } - private <T, U> Node buildPathToNode(Class<U> clazz) + private <T, U> Node buildPathToNode(final Class<U> clazz) throws ClassHierarchyException { - String[] path = clazz.getName().split("\\$"); + final String[] path = clazz.getName().split("\\$"); Node root = namespace; for (int i = 0; i < path.length - 1; i++) { @@ -204,17 +204,16 @@ public class ClassHierarchyImpl implements JavaClassHierarchy { if (root == null) { throw new NullPointerException(); } - Node parent = root; + final Node parent = root; - Type argType = ReflectionUtilities.getNamedParameterTargetOrNull(clazz); + final Type argType = ReflectionUtilities.getNamedParameterTargetOrNull(clazz); if (argType == null) { return JavaNodeFactory.createClassNode(parent, clazz); } else { - @SuppressWarnings("unchecked") // checked inside of NamedParameterNode, using reflection. - NamedParameterNode<T> np = JavaNodeFactory.createNamedParameterNode( + @SuppressWarnings("unchecked") final NamedParameterNode<T> np = JavaNodeFactory.createNamedParameterNode( parent, (Class<? extends Name<T>>) clazz, argType); if (parameterParser.canParse(ReflectionUtilities.getFullName(argType))) { @@ -224,9 +223,9 @@ public class ClassHierarchyImpl implements JavaClassHierarchy { } } - String shortName = np.getShortName(); + final String shortName = np.getShortName(); if (shortName != null) { - NamedParameterNode<?> oldNode = shortNames.get(shortName); + final NamedParameterNode<?> oldNode = shortNames.get(shortName); if (oldNode != null) { if (oldNode.getFullName().equals(np.getFullName())) { throw new IllegalStateException("Tried to double bind " @@ -242,23 +241,23 @@ public class ClassHierarchyImpl implements JavaClassHierarchy { } } - private Node getAlreadyBoundNode(Class<?> clazz) throws NameResolutionException { + private Node getAlreadyBoundNode(final Class<?> clazz) throws NameResolutionException { return getAlreadyBoundNode(ReflectionUtilities.getFullName(clazz)); } @Override - public Node getNode(Class<?> clazz) { + public Node getNode(final Class<?> clazz) { try { return getNode(ReflectionUtilities.getFullName(clazz)); - } catch (NameResolutionException e) { + } catch (final NameResolutionException e) { throw new ClassHierarchyException("JavaClassHierarchy could not resolve " + clazz + " which is definitely avalable at runtime", e); } } @Override - public synchronized Node getNode(String name) throws NameResolutionException { - Node n = register(name); + public synchronized Node getNode(final String name) throws NameResolutionException { + final Node n = register(name); if (n == null) { // This will never succeed; it just generates a nice exception. getAlreadyBoundNode(name); @@ -268,10 +267,10 @@ public class ClassHierarchyImpl implements JavaClassHierarchy { return n; } - private Node getAlreadyBoundNode(String name) throws NameResolutionException { + private Node getAlreadyBoundNode(final String name) throws NameResolutionException { Node root = namespace; - String[] toks = name.split("\\$"); - String outerClassName = toks[0]; + final String[] toks = name.split("\\$"); + final String outerClassName = toks[0]; root = root.get(outerClassName); if (root == null) { throw new NameResolutionException(name, outerClassName); @@ -279,7 +278,7 @@ public class ClassHierarchyImpl implements JavaClassHierarchy { for (int i = 1; i < toks.length; i++) { root = root.get(toks[i]); if (root == null) { - StringBuilder sb = new StringBuilder(outerClassName); + final StringBuilder sb = new StringBuilder(outerClassName); for (int j = 0; j < i; j++) { sb.append(toks[j]); if (j != i - 1) { @@ -292,17 +291,17 @@ public class ClassHierarchyImpl implements JavaClassHierarchy { return root; } - private Node register(String s) { + private Node register(final String s) { final Class<?> c; try { c = classForName(s); - } catch (ClassNotFoundException e1) { + } catch (final ClassNotFoundException e1) { return null; } try { - Node n = getAlreadyBoundNode(c); + final Node n = getAlreadyBoundNode(c); return n; - } catch (NameResolutionException e) { + } catch (final NameResolutionException e) { // node not bound yet } // First, walk up the class hierarchy, registering all out parents. This @@ -310,7 +309,7 @@ public class ClassHierarchyImpl implements JavaClassHierarchy { if (c.getSuperclass() != null) { register(ReflectionUtilities.getFullName(c.getSuperclass())); } - for (Class<?> i : c.getInterfaces()) { + for (final Class<?> i : c.getInterfaces()) { register(ReflectionUtilities.getFullName(i)); } // Now, we'd like to register our enclosing classes. This turns out to be @@ -325,28 +324,28 @@ public class ClassHierarchyImpl implements JavaClassHierarchy { // So, even though grafting arbitrary DAGs together can give us cycles, Java // seems // to have our back on this one. - Class<?> enclosing = c.getEnclosingClass(); + final Class<?> enclosing = c.getEnclosingClass(); if (enclosing != null) { register(ReflectionUtilities.getFullName(enclosing)); } // Now register the class. This has to be after the above so we know our // parents (superclasses and enclosing packages) are already registered. - Node n = registerClass(c); + final Node n = registerClass(c); // Finally, do things that might introduce cycles that invlove c. // This has to be below registerClass, which ensures that any cycles // this stuff introduces are broken. - for (Class<?> innerClass : c.getDeclaredClasses()) { + for (final Class<?> innerClass : c.getDeclaredClasses()) { register(ReflectionUtilities.getFullName(innerClass)); } if (n instanceof ClassNode) { - ClassNode<?> cls = (ClassNode<?>) n; - for (ConstructorDef<?> def : cls.getInjectableConstructors()) { - for (ConstructorArg arg : def.getArgs()) { + final ClassNode<?> cls = (ClassNode<?>) n; + for (final ConstructorDef<?> def : cls.getInjectableConstructors()) { + for (final ConstructorArg arg : def.getArgs()) { register(arg.getType()); if (arg.getNamedParameterName() != null) { - NamedParameterNode<?> np = (NamedParameterNode<?>) register(arg + final NamedParameterNode<?> np = (NamedParameterNode<?>) register(arg .getNamedParameterName()); try { // TODO: When handling sets, need to track target of generic parameter, and check the type here! @@ -359,7 +358,7 @@ public class ClassHierarchyImpl implements JavaClassHierarchy { + np.getFullArgName()); } } - } catch (ClassNotFoundException e) { + } catch (final ClassNotFoundException e) { throw new ClassHierarchyException("Constructor refers to unknown class " + arg.getType(), e); } @@ -367,7 +366,7 @@ public class ClassHierarchyImpl implements JavaClassHierarchy { } } } else if (n instanceof NamedParameterNode) { - NamedParameterNode<?> np = (NamedParameterNode<?>) n; + final NamedParameterNode<?> np = (NamedParameterNode<?>) n; register(np.getFullArgName()); } return n; @@ -386,26 +385,26 @@ public class ClassHierarchyImpl implements JavaClassHierarchy { } try { return getAlreadyBoundNode(c); - } catch (NameResolutionException e) { + } catch (final NameResolutionException e) { // node not bound yet } final Node n = buildPathToNode(c); if (n instanceof ClassNode) { - ClassNode<T> cn = (ClassNode<T>) n; - Class<T> superclass = (Class<T>) c.getSuperclass(); + final ClassNode<T> cn = (ClassNode<T>) n; + final Class<T> superclass = (Class<T>) c.getSuperclass(); if (superclass != null) { try { ((ClassNode<T>) getAlreadyBoundNode(superclass)).putImpl(cn); - } catch (NameResolutionException e) { + } catch (final NameResolutionException e) { throw new IllegalStateException(e); } } - for (Class<?> interf : c.getInterfaces()) { + for (final Class<?> interf : c.getInterfaces()) { try { ((ClassNode<T>) getAlreadyBoundNode(interf)).putImpl(cn); - } catch (NameResolutionException e) { + } catch (final NameResolutionException e) { throw new IllegalStateException(e); } } @@ -419,12 +418,12 @@ public class ClassHierarchyImpl implements JavaClassHierarchy { } @Override - public synchronized boolean isImplementation(ClassNode<?> inter, ClassNode<?> impl) { + public synchronized boolean isImplementation(final ClassNode<?> inter, final ClassNode<?> impl) { return impl.isImplementationOf(inter); } @Override - public synchronized ClassHierarchy merge(ClassHierarchy ch) { + public synchronized ClassHierarchy merge(final ClassHierarchy ch) { if (this == ch) { return this; } @@ -434,10 +433,10 @@ public class ClassHierarchyImpl implements JavaClassHierarchy { if (this.jars.size() == 0) { return ch; } - ClassHierarchyImpl chi = (ClassHierarchyImpl) ch; - HashSet<URL> otherJars = new HashSet<>(); + final ClassHierarchyImpl chi = (ClassHierarchyImpl) ch; + final HashSet<URL> otherJars = new HashSet<>(); otherJars.addAll(chi.jars); - HashSet<URL> myJars = new HashSet<>(); + final HashSet<URL> myJars = new HashSet<>(); myJars.addAll(this.jars); if (myJars.containsAll(otherJars)) { return this; http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/141c7fa0/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/java/InjectorImpl.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/java/InjectorImpl.java b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/java/InjectorImpl.java index 32d15a0..08787ab 100644 --- a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/java/InjectorImpl.java +++ b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/implementation/java/InjectorImpl.java @@ -83,46 +83,46 @@ public class InjectorImpl implements Injector { private boolean concurrentModificationGuard = false; private Aspect aspect; - public InjectorImpl(Configuration c) throws BindException { + public InjectorImpl(final Configuration c) throws BindException { this.c = c; this.namespace = c.getClassHierarchy(); this.javaNamespace = (ClassHierarchyImpl) this.namespace; } - private static InjectorImpl copy(InjectorImpl old, - Configuration... configurations) throws BindException { + private static InjectorImpl copy(final InjectorImpl old, + final Configuration... configurations) throws BindException { final InjectorImpl i; try { final ConfigurationBuilder cb = old.c.newBuilder(); - for (Configuration c : configurations) { + for (final Configuration c : configurations) { cb.addConfiguration(c); } i = new InjectorImpl(cb.build()); - } catch (BindException e) { + } catch (final BindException e) { throw new IllegalStateException( "Unexpected error copying configuration!", e); } - for (ClassNode<?> cn : old.instances.keySet()) { + for (final ClassNode<?> cn : old.instances.keySet()) { if (cn.getFullName().equals(ReflectionUtilities.getFullName(Injector.class)) || cn.getFullName().equals(ReflectionUtilities.getFullName(InjectorImpl.class))) { // This would imply that we're treating injector as a singleton somewhere. It should be copied fresh each time. throw new IllegalStateException(); } try { - ClassNode<?> newCn = (ClassNode<?>) i.namespace.getNode(cn + final ClassNode<?> newCn = (ClassNode<?>) i.namespace.getNode(cn .getFullName()); i.instances.put(newCn, old.instances.get(cn)); - } catch (BindException e) { + } catch (final BindException e) { throw new IllegalStateException("Could not resolve name " + cn.getFullName() + " when copying injector"); } } // Copy references to the remaining (which must have been set with // bindVolatileParameter()) - for (NamedParameterNode<?> np : old.namedParameterInstances.keySet()) { + for (final NamedParameterNode<?> np : old.namedParameterInstances.keySet()) { // if (!builder.namedParameters.containsKey(np)) { - Object o = old.namedParameterInstances.get(np); - NamedParameterNode<?> newNp = (NamedParameterNode<?>) i.namespace + final Object o = old.namedParameterInstances.get(np); + final NamedParameterNode<?> newNp = (NamedParameterNode<?>) i.namespace .getNode(np.getFullName()); i.namedParameterInstances.put(newNp, o); } @@ -141,11 +141,11 @@ public class InjectorImpl implements Injector { } @SuppressWarnings("unchecked") - private <T> T getCachedInstance(ClassNode<T> cn) { + private <T> T getCachedInstance(final ClassNode<T> cn) { if (cn.getFullName().equals("org.apache.reef.tang.Injector")) { return (T) this; // TODO: We should be insisting on injection futures here! .forkInjector(); } else { - T t = (T) instances.get(cn); + final T t = (T) instances.get(cn); if (t instanceof InjectionFuture) { throw new IllegalStateException("Found an injection future in getCachedInstance: " + cn); } @@ -182,7 +182,7 @@ public class InjectorImpl implements Injector { constructorList .addAll(Arrays.asList(thisCN.getInjectableConstructors())); - for (ConstructorDef<T> def : constructorList) { + for (final ConstructorDef<T> def : constructorList) { final List<InjectionPlan<?>> args = new ArrayList<InjectionPlan<?>>(); final ConstructorArg[] defArgs = def.getArgs(); @@ -192,7 +192,7 @@ public class InjectorImpl implements Injector { final Node argNode = namespace.getNode(arg.getName()); buildInjectionPlan(argNode, memo); args.add(memo.get(argNode)); - } catch (NameResolutionException e) { + } catch (final NameResolutionException e) { throw new IllegalStateException("Detected unresolvable " + "constructor arg while building injection plan. " + "This should have been caught earlier!", e); @@ -201,7 +201,7 @@ public class InjectorImpl implements Injector { try { args.add(new InjectionFuturePlan<>(namespace.getNode(arg .getName()))); - } catch (NameResolutionException e) { + } catch (final NameResolutionException e) { throw new IllegalStateException("Detected unresolvable " + "constructor arg while building injection plan. " + "This should have been caught earlier!", e); @@ -252,12 +252,12 @@ public class InjectorImpl implements Injector { } @SuppressWarnings("unchecked") - private <T> InjectionPlan<T> buildClassNodeInjectionPlan(ClassNode<T> cn, - T cachedInstance, - ClassNode<ExternalConstructor<T>> externalConstructor, - ClassNode<T> boundImpl, - ClassNode<T> defaultImpl, - Map<Node, InjectionPlan<?>> memo) { + private <T> InjectionPlan<T> buildClassNodeInjectionPlan(final ClassNode<T> cn, + final T cachedInstance, + final ClassNode<ExternalConstructor<T>> externalConstructor, + final ClassNode<T> boundImpl, + final ClassNode<T> defaultImpl, + final Map<Node, InjectionPlan<?>> memo) { if (cachedInstance != null) { return new JavaInstance<T>(cn, cachedInstance); @@ -287,10 +287,10 @@ public class InjectorImpl implements Injector { } @SuppressWarnings("unchecked") - private <T> InjectionPlan<T> wrapInjectionPlans(ClassNode<T> infeasibleNode, - List<? extends InjectionPlan<T>> list, - boolean forceAmbiguous, - int selectedIndex) { + private <T> InjectionPlan<T> wrapInjectionPlans(final ClassNode<T> infeasibleNode, + final List<? extends InjectionPlan<T>> list, + final boolean forceAmbiguous, + final int selectedIndex) { if (list.size() == 0) { return new Subplan<>(infeasibleNode); } else if ((!forceAmbiguous) && list.size() == 1) { @@ -307,18 +307,18 @@ public class InjectorImpl implements Injector { * @throws ParseException */ @SuppressWarnings("unchecked") - private <T> T parseBoundNamedParameter(NamedParameterNode<T> np) { + private <T> T parseBoundNamedParameter(final NamedParameterNode<T> np) { final T ret; @SuppressWarnings("rawtypes") final Set<Object> boundSet = c.getBoundSet((NamedParameterNode) np); if (!boundSet.isEmpty()) { - Set<T> ret2 = new MonotonicSet<>(); - for (Object o : boundSet) { + final Set<T> ret2 = new MonotonicSet<>(); + for (final Object o : boundSet) { if (o instanceof String) { try { ret2.add(javaNamespace.parse(np, (String) o)); - } catch (ParseException e) { + } catch (final ParseException e) { // Parsability is now pre-checked in bindSet, so it should not be reached! throw new IllegalStateException("Could not parse " + o + " which was passed into " + np + " FIXME: Parsability is not currently checked by bindSetEntry(Node,String)"); @@ -334,12 +334,12 @@ public class InjectorImpl implements Injector { } final List<Object> boundList = c.getBoundList((NamedParameterNode) np); if (boundList != null) { - List<T> ret2 = new ArrayList<>(); - for (Object o : boundList) { + final List<T> ret2 = new ArrayList<>(); + for (final Object o : boundList) { if (o instanceof String) { try { ret2.add(javaNamespace.parse(np, (String) o)); - } catch (ParseException e) { + } catch (final ParseException e) { // Parsability is now pre-checked in bindList, so it should not be reached! throw new IllegalStateException("Could not parse " + o + " which was passed into " + np + " FIXME: " + "Parsability is not currently checked by bindList(Node,List)"); @@ -362,7 +362,7 @@ public class InjectorImpl implements Injector { try { ret = javaNamespace.parse(np, value); namedParameterInstances.put(np, ret); - } catch (BindException e) { + } catch (final BindException e) { throw new IllegalStateException( "Could not parse pre-validated value", e); } @@ -372,7 +372,7 @@ public class InjectorImpl implements Injector { } @SuppressWarnings("unchecked") - private <T> ClassNode<T> parseDefaultImplementation(ClassNode<T> cn) { + private <T> ClassNode<T> parseDefaultImplementation(final ClassNode<T> cn) { if (cn.getDefaultImplementation() != null) { try { return (ClassNode<T>) javaNamespace.getNode(cn.getDefaultImplementation()); @@ -387,11 +387,11 @@ public class InjectorImpl implements Injector { @SuppressWarnings({"unchecked"}) private <T> void buildInjectionPlan(final Node n, - Map<Node, InjectionPlan<?>> memo) { + final Map<Node, InjectionPlan<?>> memo) { if (memo.containsKey(n)) { if (BUILDING == memo.get(n)) { - StringBuilder loopyList = new StringBuilder("["); - for (Node node : memo.keySet()) { + final StringBuilder loopyList = new StringBuilder("["); + for (final Node node : memo.keySet()) { if (memo.get(node) == BUILDING) { loopyList.append(" " + node.getFullName()); } @@ -416,9 +416,9 @@ public class InjectorImpl implements Injector { buildInjectionPlan((Node) instance, memo); ip = new Subplan<T>(n, 0, (InjectionPlan<T>) memo.get(instance)); } else if (instance instanceof Set) { - Set<T> entries = (Set<T>) instance; - Set<InjectionPlan<T>> plans = new MonotonicHashSet<>(); - for (T entry : entries) { + final Set<T> entries = (Set<T>) instance; + final Set<InjectionPlan<T>> plans = new MonotonicHashSet<>(); + for (final T entry : entries) { if (entry instanceof ClassNode) { buildInjectionPlan((ClassNode<?>) entry, memo); plans.add((InjectionPlan<T>) memo.get(entry)); @@ -429,9 +429,9 @@ public class InjectorImpl implements Injector { } ip = new SetInjectionPlan<T>(n, plans); } else if (instance instanceof List) { - List<T> entries = (List<T>) instance; - List<InjectionPlan<T>> plans = new ArrayList<>(); - for (T entry : entries) { + final List<T> entries = (List<T>) instance; + final List<InjectionPlan<T>> plans = new ArrayList<>(); + for (final T entry : entries) { if (entry instanceof ClassNode) { buildInjectionPlan((ClassNode<?>) entry, memo); plans.add((InjectionPlan<T>) memo.get(entry)); @@ -471,56 +471,55 @@ public class InjectorImpl implements Injector { * @throws NameResolutionException */ public InjectionPlan<?> getInjectionPlan(final Node n) { - Map<Node, InjectionPlan<?>> memo = new HashMap<>(); + final Map<Node, InjectionPlan<?>> memo = new HashMap<>(); buildInjectionPlan(n, memo); return memo.get(n); } @Override - public InjectionPlan<?> getInjectionPlan(String name) throws NameResolutionException { + public InjectionPlan<?> getInjectionPlan(final String name) throws NameResolutionException { return getInjectionPlan(namespace.getNode(name)); } @SuppressWarnings("unchecked") - public <T> InjectionPlan<T> getInjectionPlan(Class<T> name) { + public <T> InjectionPlan<T> getInjectionPlan(final Class<T> name) { return (InjectionPlan<T>) getInjectionPlan(javaNamespace.getNode(name)); } @Override - public boolean isInjectable(String name) throws NameResolutionException { + public boolean isInjectable(final String name) throws NameResolutionException { return getInjectionPlan(namespace.getNode(name)).isInjectable(); } @Override - public boolean isInjectable(Class<?> clazz) { + public boolean isInjectable(final Class<?> clazz) { try { return isInjectable(ReflectionUtilities.getFullName(clazz)); - } catch (NameResolutionException e) { + } catch (final NameResolutionException e) { throw new IllegalStateException("Could not round trip " + clazz + " through ClassHierarchy", e); } } @Override - public boolean isParameterSet(String name) throws NameResolutionException { - InjectionPlan<?> p = getInjectionPlan(namespace.getNode(name)); + public boolean isParameterSet(final String name) throws NameResolutionException { + final InjectionPlan<?> p = getInjectionPlan(namespace.getNode(name)); return p.isInjectable(); } @Override - public boolean isParameterSet(Class<? extends Name<?>> name) + public boolean isParameterSet(final Class<? extends Name<?>> name) throws BindException { return isParameterSet(name.getName()); } - private <U> U getInstance(Node n) throws InjectionException { + private <U> U getInstance(final Node n) throws InjectionException { assertNotConcurrent(); - @SuppressWarnings("unchecked") - InjectionPlan<U> plan = (InjectionPlan<U>) getInjectionPlan(n); - U u = (U) injectFromPlan(plan); + @SuppressWarnings("unchecked") final InjectionPlan<U> plan = (InjectionPlan<U>) getInjectionPlan(n); + final U u = (U) injectFromPlan(plan); while (!pendingFutures.isEmpty()) { - Iterator<InjectionFuture<?>> i = pendingFutures.iterator(); - InjectionFuture<?> f = i.next(); + final Iterator<InjectionFuture<?>> i = pendingFutures.iterator(); + final InjectionFuture<?> f = i.next(); pendingFutures.remove(f); f.get(); } @@ -528,7 +527,7 @@ public class InjectorImpl implements Injector { } @Override - public <U> U getInstance(Class<U> clazz) throws InjectionException { + public <U> U getInstance(final Class<U> clazz) throws InjectionException { if (Name.class.isAssignableFrom(clazz)) { throw new InjectionException("getInstance() called on Name " + ReflectionUtilities.getFullName(clazz) @@ -539,30 +538,29 @@ public class InjectorImpl implements Injector { @SuppressWarnings("unchecked") @Override - public <U> U getInstance(String clazz) throws InjectionException, NameResolutionException { + public <U> U getInstance(final String clazz) throws InjectionException, NameResolutionException { return (U) getInstance(namespace.getNode(clazz)); } @Override @SuppressWarnings("unchecked") - public <T> T getNamedInstance(Class<? extends Name<T>> clazz) + public <T> T getNamedInstance(final Class<? extends Name<T>> clazz) throws InjectionException { return (T) getInstance(javaNamespace.getNode(clazz)); } - public <T> T getNamedParameter(Class<? extends Name<T>> clazz) + public <T> T getNamedParameter(final Class<? extends Name<T>> clazz) throws InjectionException { return getNamedInstance(clazz); } private <T> java.lang.reflect.Constructor<T> getConstructor( - ConstructorDef<T> constructor) throws ClassNotFoundException, + final ConstructorDef<T> constructor) throws ClassNotFoundException, NoSuchMethodException, SecurityException { - @SuppressWarnings("unchecked") - Class<T> clazz = (Class<T>) javaNamespace.classForName(constructor - .getClassName()); - ConstructorArg[] args = constructor.getArgs(); - Class<?>[] parameterTypes = new Class[args.length]; + @SuppressWarnings("unchecked") final Class<T> clazz = + (Class<T>) javaNamespace.classForName(constructor.getClassName()); + final ConstructorArg[] args = constructor.getArgs(); + final Class<?>[] parameterTypes = new Class[args.length]; for (int i = 0; i < args.length; i++) { if (args[i].isInjectionFuture()) { parameterTypes[i] = InjectionFuture.class; @@ -570,7 +568,7 @@ public class InjectorImpl implements Injector { parameterTypes[i] = javaNamespace.classForName(args[i].getType()); } } - java.lang.reflect.Constructor<T> cons = clazz + final java.lang.reflect.Constructor<T> cons = clazz .getDeclaredConstructor(parameterTypes); cons.setAccessible(true); return cons; @@ -594,7 +592,7 @@ public class InjectorImpl implements Injector { * @throws InjectionException */ @SuppressWarnings("unchecked") - private <T> T injectFromPlan(InjectionPlan<T> plan) throws InjectionException { + private <T> T injectFromPlan(final InjectionPlan<T> plan) throws InjectionException { if (!plan.isFeasible()) { throw new InjectionException("Cannot inject " + plan.getNode().getFullName() + ": " @@ -605,13 +603,14 @@ public class InjectorImpl implements Injector { + plan.toCantInjectString()); } if (plan instanceof InjectionFuturePlan) { - InjectionFuturePlan<T> fut = (InjectionFuturePlan<T>) plan; + final InjectionFuturePlan<T> fut = (InjectionFuturePlan<T>) plan; final String key = fut.getNode().getFullName(); try { - InjectionFuture<?> ret = new InjectionFuture<>(this, javaNamespace.classForName(fut.getNode().getFullName())); + final InjectionFuture<?> ret = new InjectionFuture<>( + this, javaNamespace.classForName(fut.getNode().getFullName())); pendingFutures.add(ret); return (T) ret; - } catch (ClassNotFoundException e) { + } catch (final ClassNotFoundException e) { throw new InjectionException("Could not get class for " + key); } } else if (plan.getNode() instanceof ClassNode && null != getCachedInstance((ClassNode<T>) plan.getNode())) { @@ -632,18 +631,18 @@ public class InjectorImpl implements Injector { concurrentModificationGuard = true; T ret; try { - ConstructorDef<T> def = (ConstructorDef<T>) constructor.getConstructorDef(); - java.lang.reflect.Constructor<T> construct = getConstructor(def); + final ConstructorDef<T> def = (ConstructorDef<T>) constructor.getConstructorDef(); + final java.lang.reflect.Constructor<T> construct = getConstructor(def); if (aspect != null) { ret = aspect.inject(def, construct, args); } else { ret = construct.newInstance(args); } - } catch (IllegalArgumentException e) { - StringBuilder sb = new StringBuilder("Internal Tang error? Could not call constructor " + + } catch (final IllegalArgumentException e) { + final StringBuilder sb = new StringBuilder("Internal Tang error? Could not call constructor " + constructor.getConstructorDef() + " with arguments ["); - for (Object o : args) { + for (final Object o : args) { sb.append("\n\t" + o); } sb.append("]"); @@ -654,26 +653,26 @@ public class InjectorImpl implements Injector { } instances.put(constructor.getNode(), ret); return ret; - } catch (ReflectiveOperationException e) { + } catch (final ReflectiveOperationException e) { throw new InjectionException("Could not invoke constructor: " + plan, e instanceof InvocationTargetException ? e.getCause() : e); } finally { concurrentModificationGuard = false; } } else if (plan instanceof Subplan) { - Subplan<T> ambiguous = (Subplan<T>) plan; + final Subplan<T> ambiguous = (Subplan<T>) plan; return injectFromPlan(ambiguous.getDelegatedPlan()); } else if (plan instanceof SetInjectionPlan) { - SetInjectionPlan<T> setPlan = (SetInjectionPlan<T>) plan; - Set<T> ret = new MonotonicHashSet<>(); - for (InjectionPlan<T> subplan : setPlan.getEntryPlans()) { + final SetInjectionPlan<T> setPlan = (SetInjectionPlan<T>) plan; + final Set<T> ret = new MonotonicHashSet<>(); + for (final InjectionPlan<T> subplan : setPlan.getEntryPlans()) { ret.add(injectFromPlan(subplan)); } return (T) ret; } else if (plan instanceof ListInjectionPlan) { - ListInjectionPlan<T> listPlan = (ListInjectionPlan<T>) plan; - List<T> ret = new ArrayList<>(); - for (InjectionPlan<T> subplan : listPlan.getEntryPlans()) { + final ListInjectionPlan<T> listPlan = (ListInjectionPlan<T>) plan; + final List<T> ret = new ArrayList<>(); + for (final InjectionPlan<T> subplan : listPlan.getEntryPlans()) { ret.add(injectFromPlan(subplan)); } return (T) ret; @@ -683,22 +682,22 @@ public class InjectorImpl implements Injector { } @Override - public <T> void bindVolatileInstance(Class<T> cl, T o) throws BindException { + public <T> void bindVolatileInstance(final Class<T> cl, final T o) throws BindException { bindVolatileInstanceNoCopy(cl, o); } @Override - public <T> void bindVolatileParameter(Class<? extends Name<T>> cl, T o) + public <T> void bindVolatileParameter(final Class<? extends Name<T>> cl, final T o) throws BindException { bindVolatileParameterNoCopy(cl, o); } - <T> void bindVolatileInstanceNoCopy(Class<T> cl, T o) throws BindException { + <T> void bindVolatileInstanceNoCopy(final Class<T> cl, final T o) throws BindException { assertNotConcurrent(); - Node n = javaNamespace.getNode(cl); + final Node n = javaNamespace.getNode(cl); if (n instanceof ClassNode) { - ClassNode<?> cn = (ClassNode<?>) n; - Object old = getCachedInstance(cn); + final ClassNode<?> cn = (ClassNode<?>) n; + final Object old = getCachedInstance(cn); if (old != null) { throw new BindException("Attempt to re-bind instance. Old value was " + old + " new value is " + o); @@ -710,12 +709,12 @@ public class InjectorImpl implements Injector { } } - <T> void bindVolatileParameterNoCopy(Class<? extends Name<T>> cl, T o) + <T> void bindVolatileParameterNoCopy(final Class<? extends Name<T>> cl, final T o) throws BindException { - Node n = javaNamespace.getNode(cl); + final Node n = javaNamespace.getNode(cl); if (n instanceof NamedParameterNode) { - NamedParameterNode<?> np = (NamedParameterNode<?>) n; - Object old = this.c.getNamedParameter(np); + final NamedParameterNode<?> np = (NamedParameterNode<?>) n; + final Object old = this.c.getNamedParameter(np); if (old != null) { // XXX need to get the binding site here! throw new BindException( @@ -724,7 +723,7 @@ public class InjectorImpl implements Injector { } try { namedParameterInstances.put(np, o); - } catch (IllegalArgumentException e) { + } catch (final IllegalArgumentException e) { throw new BindException( "Attempt to re-bind named parameter " + ReflectionUtilities.getFullName(cl) + ". Old value was [" + old + "] new value is [" + o + "]"); @@ -740,21 +739,21 @@ public class InjectorImpl implements Injector { public Injector forkInjector() { try { return forkInjector(new Configuration[0]); - } catch (BindException e) { + } catch (final BindException e) { throw new IllegalStateException(e); } } @Override - public Injector forkInjector(Configuration... configurations) + public Injector forkInjector(final Configuration... configurations) throws BindException { - InjectorImpl ret; + final InjectorImpl ret; ret = copy(this, configurations); return ret; } @Override - public <T> void bindAspect(Aspect a) throws BindException { + public <T> void bindAspect(final Aspect a) throws BindException { if (aspect != null) { throw new BindException("Attempt to re-bind aspect! old=" + aspect + " new=" + a); }
