// Path: humanize-slim/src/main/java/humanize/spi/FormatProvider.java
// public interface FormatProvider
// {
// 
//     /**
//      * Gets the format factory.
//      * 
//      * @return a {@link FormatFactory} instance
//      */
//     FormatFactory getFactory();
// 
//     /**
//      * Gets the format name that will be registered. If you want to register
//      * multiple names for a format then return a String with the names
//      * concatenated by a vertical bar character '|'.
//      * 
//      * @return the format name
//      */
//     String getFormatName();
// 
// }
// 
// Path: humanize-slim/src/main/java/humanize/text/FormatFactory.java
// public interface FormatFactory
// {
// 
//     /**
//      * Creates a {@link Format} instance for the given parameters. The format
//      * will be accessible as '{0, name, args}'.
//      * 
//      * @param name
//      *            The format name
//      * @param args
//      *            The format arguments
//      * @param locale
//      *            Target locale
//      * @return a new {@link Format} instance
//      * @see MessageFormat
//      */
//     Format getFormat(String name, String args, Locale locale);
// 
// }


import humanize.spi.FormatProvider;
import humanize.text.FormatFactory;
import java.text.Format;
import java.text.NumberFormat;
import java.util.Locale;
import javax.measure.MeasureFormat;
import javax.measure.unit.UnitFormat;
package humanize.measure;




/**
 * <p>
 * Provides a JSR-275 measure formatter. Supports "standard" sub-format.
 * </p>
 * 
 * Examples:
 * 
 * <pre>
 * 
 * // == &quot;100 kg&quot;
 * Humanize.format(&quot;{0, measure}&quot;, Measure.valueOf(100, SI.GRAM.times(1000)));
 * 
 * Humanize.format(&quot;{0, measure, standard}&quot;, measure);
 * 
 * // With a locale
 * 
 * MessageFormat esFormat = Humanize.messageFormatInstance(&quot;{0, measure}&quot;, new Locale(&quot;es&quot;));
 * esFormat.render(Measure.valueOf(1000, SI.GRAM.times(1000)));
 * 
 * </pre>
 * 
 */
public class MeasureFormatProvider implements FormatProvider
{

    @Override
// Path: humanize-slim/src/main/java/humanize/spi/FormatProvider.java
// public interface FormatProvider
// {
// 
//     /**
//      * Gets the format factory.
//      * 
//      * @return a {@link FormatFactory} instance
//      */
//     FormatFactory getFactory();
// 
//     /**
//      * Gets the format name that will be registered. If you want to register
//      * multiple names for a format then return a String with the names
//      * concatenated by a vertical bar character '|'.
//      * 
//      * @return the format name
//      */
//     String getFormatName();
// 
// }
// 
// Path: humanize-slim/src/main/java/humanize/text/FormatFactory.java
// public interface FormatFactory
// {
// 
//     /**
//      * Creates a {@link Format} instance for the given parameters. The format
//      * will be accessible as '{0, name, args}'.
//      * 
//      * @param name
//      *            The format name
//      * @param args
//      *            The format arguments
//      * @param locale
//      *            Target locale
//      * @return a new {@link Format} instance
//      * @see MessageFormat
//      */
//     Format getFormat(String name, String args, Locale locale);
// 
// }


// Path: humanize-ucum/src/main/java/humanize/measure/MeasureFormatProvider.java
import humanize.spi.FormatProvider;
import humanize.text.FormatFactory;
import java.text.Format;
import java.text.NumberFormat;
import java.util.Locale;
import javax.measure.MeasureFormat;
import javax.measure.unit.UnitFormat;

package humanize.measure;




/**
 * <p>
 * Provides a JSR-275 measure formatter. Supports "standard" sub-format.
 * </p>
 * 
 * Examples:
 * 
 * <pre>
 * 
 * // == &quot;100 kg&quot;
 * Humanize.format(&quot;{0, measure}&quot;, Measure.valueOf(100, SI.GRAM.times(1000)));
 * 
 * Humanize.format(&quot;{0, measure, standard}&quot;, measure);
 * 
 * // With a locale
 * 
 * MessageFormat esFormat = Humanize.messageFormatInstance(&quot;{0, measure}&quot;, new Locale(&quot;es&quot;));
 * esFormat.render(Measure.valueOf(1000, SI.GRAM.times(1000)));
 * 
 * </pre>
 * 
 */
public class MeasureFormatProvider implements FormatProvider
{

    @Override
    public FormatFactory getFactory()