[Lutinutil-commits] r1178 - maven-license-switcher-plugin/trunk/src/main/java/org/codelutin/license
Author: tchemit Date: 2008-10-12 21:45:18 +0000 (Sun, 12 Oct 2008) New Revision: 1178 Modified: maven-license-switcher-plugin/trunk/src/main/java/org/codelutin/license/LicenseFactory.java Log: enable to have multi extra resolvers Modified: maven-license-switcher-plugin/trunk/src/main/java/org/codelutin/license/LicenseFactory.java =================================================================== --- maven-license-switcher-plugin/trunk/src/main/java/org/codelutin/license/LicenseFactory.java 2008-10-12 21:44:54 UTC (rev 1177) +++ maven-license-switcher-plugin/trunk/src/main/java/org/codelutin/license/LicenseFactory.java 2008-10-12 21:45:18 UTC (rev 1178) @@ -1,31 +1,42 @@ package org.codelutin.license; -import java.util.Arrays; +import java.util.ArrayList; +import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.TreeMap; /** * Class responsible of instanciate {@link License}. + * <p/> + * The factory use a table of {@link #resolvers} to lookup for licenses. + * <p/> + * To obtain an instance of a {@link org.codelutin.license.LicenseFactory} use the method {@link #newInstance(String[])}. * * @author chemit */ public class LicenseFactory { - protected LicenseResolver[] resolvers; + protected List<LicenseResolver> resolvers; - public static LicenseFactory newInstance(String extraResolver) throws IllegalArgumentException { - if (extraResolver == null || extraResolver.trim().isEmpty()) { - return new LicenseFactory(new LicenseResolver[]{ - new JarLicenseResolver(), - }); + public static LicenseFactory newInstance(String... extraResolvers) throws IllegalArgumentException { + LicenseFactory result = new LicenseFactory(); + // always put jar resolver first + result.addResolver(new JarLicenseResolver()); + + for (String extraResolver : extraResolvers) { + if (extraResolver != null && !extraResolver.trim().isEmpty()) { + // add a extra resolver + result.addResolver(new LicenseResolver(extraResolver)); + } } - return new LicenseFactory(new LicenseResolver[]{ - new JarLicenseResolver(), - new LicenseResolver(extraResolver) - }); + return result; } + public void addResolver(LicenseResolver licenseResolver) { + resolvers.add(licenseResolver); + } + public Map<String, String> getLicenseNames() throws IllegalArgumentException { Map<String, String> result = new TreeMap<String, String>(); for (LicenseResolver resolver : resolvers) { @@ -50,14 +61,11 @@ return result; } } - throw new IllegalArgumentException("could not find the license " + licenseName + " with resolvers" + Arrays.toString(resolvers)); + throw new IllegalArgumentException("could not find the license " + licenseName + " with resolvers" + resolvers); } - protected LicenseFactory(LicenseResolver[] resolvers) throws IllegalArgumentException { - if (resolvers == null || resolvers.length == 0) { - throw new IllegalArgumentException("no resolver defined"); - } - this.resolvers = resolvers; + protected LicenseFactory() throws IllegalArgumentException { + this.resolvers = new ArrayList<LicenseResolver>(); } }
participants (1)
-
tchemit@users.labs.libre-entreprise.org