package org.dspace.content.license; import java.util.Formattable; import java.util.Formatter; import org.dspace.core.PluginManager; /** * Wrapper class to make formattable any argument used in the license template. * The formatter behavior is delegated to a specific class on "type" basis * using the PluginManager * * @see Formattable * @see LicenseArgumentFormatter * @author bollini * */ public class FormattableArgument implements Formattable { private String type; private Object object; public FormattableArgument(String type, Object object) { this.type = type; this.object = object; } public void formatTo(Formatter formatter, int flags, int width, int precision) { LicenseArgumentFormatter laf = (LicenseArgumentFormatter) PluginManager .getNamedPlugin(LicenseArgumentFormatter.class, type); if (laf != null) { laf.formatTo(formatter, flags, width, object, type); } else { formatter.format(object.toString()); } } }