001package Torello.Browser;
002
003import Torello.Browser.BaseType;
004import Torello.Browser.DataIntegrityException;
005
006/**
007 * This exception is thrown by the {@link BaseType#optionalsValidateThrow()} method.  The purpose
008 * of this exception class is to signal that a CDP Nested Type or Event class has been constructed
009 * that doesn't actually meet the specification criteria, as defined in Google's CDP
010 * Json-Definition File regarding optional versus required fields.
011 * 
012 * <BR /><BR />
013 * This exception is also thrown from within the {@link TypeBuilder} class when a user attempts to 
014 * construct a type without providing values to required fields within the class.
015 * 
016 * <BR /><BR /><DIV CLASS=JDHint>
017 * Only type and event fields which are specified as "optional" may be omitted from a type's Json
018 * Definition.  Only "optional fields" may have {@code 'FALSE'} assigned to their list-index within
019 * the containing type or events {@link BaseType#isPresent() isPresent} list.
020 * </DIV>
021 * 
022 * @see BaseType#optionalsValidate()
023 * @see BaseType#optionalsValidateThrow()
024 * @see NestedDescriptor#optionals
025 * @see BaseType#isPresent
026 * @see TypeBuilder#build()
027 */
028public class NullNonOptionalException extends DataIntegrityException
029{
030    /** <EMBED CLASS='external-html' DATA-FILE-ID=SVUIDEX>  */
031    public static final long serialVersionUID = 1;
032
033    /** Constructs a {@code NullNonOptionalException} with no detail message. */
034    public NullNonOptionalException()
035    { super(); }
036
037    /**
038     * Constructs a {@code NullNonOptionalException} with the specified detail message.
039     * @param message the detail message.
040     */
041    public NullNonOptionalException(String message)
042    { super(message); }
043}