/* GENERATED SOURCE. DO NOT MODIFY. */
// © 2017 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html

package android.icu.number;


/**
 * A class that defines the simple notation style to be used when formatting numbers in NumberFormatter.
 *
 * <p>
 * This class exposes no public functionality. To create a SimpleNotation, use one of the factory methods
 * in {@link android.icu.number.Notation Notation}.
 *
 * @see android.icu.number.NumberFormatter
 */

@SuppressWarnings({"unchecked", "deprecation", "all"})
public class SimpleNotation extends android.icu.number.Notation {

SimpleNotation() { throw new RuntimeException("Stub!"); }
}

