Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jboss.shrinkwrap.descriptor.impl.jsp22
Class JspPropertyGroupTypeImpl<T>

    java.lang.Object
      org.jboss.shrinkwrap.descriptor.impl.jsp22.JspPropertyGroupTypeImpl<T>

All Implemented Interfaces:
  org.jboss.shrinkwrap.descriptor.api.Child<T>, JspPropertyGroupType<T>

    public class JspPropertyGroupTypeImpl<T>

extends java.lang.Object
implements org.jboss.shrinkwrap.descriptor.api.Child<T>, JspPropertyGroupType<T>

This class implements the `jsp-property-groupType` xsd type

Original Documentation:

The jsp-property-groupType is used to group a number of
files so they can be given global property information.
All files so described are deemed to be JSP files. The
following additional properties can be described:
- Control whether EL is ignored.
- Control whether scripting elements are invalid.
- Indicate pageEncoding information.
- Indicate that a resource is a JSP document (XML).
- Prelude and Coda automatic includes.
- Control whether the character sequence #{ is allowed
when used as a String literal.
- Control whether template text containing only
whitespaces must be removed from the response output.
- Indicate the default contentType information.
- Indicate the default buffering model for JspWriter
- Control whether error should be raised for the use of
undeclared namespaces in a JSP page.

Since:
  Generation date :2011-07-19T22:55:02.759+02:00
Author:
  Ralf Battenfeld

Constructor Summary
`JspPropertyGroupTypeImpl(T t, java.lang.String nodeName, org.jboss.shrinkwrap.descriptor.spi.Node node)`
`JspPropertyGroupTypeImpl(T t, java.lang.String nodeName, org.jboss.shrinkwrap.descriptor.spi.Node node, org.jboss.shrinkwrap.descriptor.spi.Node childNode)`

Method Summary
`java.lang.String` | `getBuffer()` Returns the `buffer` element
`java.lang.String` | `getDefaultContentType()` Returns the `default-content-type` element
`java.util.List<java.lang.String>` | `getDescriptionList()` Returns all `description` elements
`java.util.List<java.lang.String>` | `getDisplayNameList()` Returns all `display-name` elements
`java.util.List<IconType<JspPropertyGroupType<T>>>` | `getIconList()` Returns all `icon` elements
`java.util.List<java.lang.String>` | `getIncludeCodaList()` Returns all `include-coda` elements
`java.util.List<java.lang.String>` | `getIncludePreludeList()` Returns all `include-prelude` elements
`java.lang.String` | `getPageEncoding()` Returns the `page-encoding` element
`java.util.List<java.lang.String>` | `getUrlPatternList()` Returns all `url-pattern` elements
`IconType<JspPropertyGroupType<T>>` | `icon()` Returns the `icon` element
`java.lang.Boolean` | `isDeferredSyntaxAllowedAsLiteral()` Returns the `deferred-syntax-allowed-as-literal` element
`java.lang.Boolean` | `isElIgnored()` Returns the `el-ignored` element
`java.lang.Boolean` | `isErrorOnUndeclaredNamespace()` Returns the `error-on-undeclared-namespace` element
`java.lang.Boolean` | `isIsXml()` Returns the `is-xml` element
`java.lang.Boolean` | `isScriptingInvalid()` Returns the `scripting-invalid` element
`java.lang.Boolean` | `isTrimDirectiveWhitespaces()` Returns the `trim-directive-whitespaces` element
`JspPropertyGroupType<T>` | `removeAllDescription()` Removes the `description` element
`JspPropertyGroupType<T>` | `removeAllDisplayName()` Removes the `display-name` element
`JspPropertyGroupType<T>` | `removeAllIcon()` Removes all `icon` elements
`JspPropertyGroupType<T>` | `removeAllIncludeCoda()` Removes the `include-coda` element
`JspPropertyGroupType<T>` | `removeAllIncludePrelude()` Removes the `include-prelude` element
`JspPropertyGroupType<T>` | `removeAllUrlPattern()` Removes the `url-pattern` element
`JspPropertyGroupType<T>` | `removeBuffer()` Removes the `buffer` element
`JspPropertyGroupType<T>` | `removeDefaultContentType()` Removes the `default-content-type` element
`JspPropertyGroupType<T>` | `removeDeferredSyntaxAllowedAsLiteral()` Removes the `deferred-syntax-allowed-as-literal` element
`JspPropertyGroupType<T>` | `removeElIgnored()` Removes the `el-ignored` element
`JspPropertyGroupType<T>` | `removeErrorOnUndeclaredNamespace()` Removes the `error-on-undeclared-namespace` element
`JspPropertyGroupType<T>` | `removeIsXml()` Removes the `is-xml` element
`JspPropertyGroupType<T>` | `removePageEncoding()` Removes the `page-encoding` element
`JspPropertyGroupType<T>` | `removeScriptingInvalid()` Removes the `scripting-invalid` element
`JspPropertyGroupType<T>` | `removeTrimDirectiveWhitespaces()` Removes the `trim-directive-whitespaces` element
`JspPropertyGroupType<T>` | `setBuffer(java.lang.String buffer)` If not already created, a new `buffer` element with the given value will be created.
`JspPropertyGroupType<T>` | `setDefaultContentType(java.lang.String defaultContentType)` If not already created, a new `default-content-type` element with the given value will be created.
`JspPropertyGroupType<T>` | `setDeferredSyntaxAllowedAsLiteral(java.lang.Boolean deferredSyntaxAllowedAsLiteral)` If not already created, a new `deferred-syntax-allowed-as-literal` element with the given value will be created.
`JspPropertyGroupType<T>` | `setDescription(java.lang.String description)` Creates a new `description` element
`JspPropertyGroupType<T>` | `setDescriptionList(java.lang.String... values)` Creates for all String objects representing `description` elements, a new `description` element
`JspPropertyGroupType<T>` | `setDisplayName(java.lang.String displayName)` Creates a new `display-name` element
`JspPropertyGroupType<T>` | `setDisplayNameList(java.lang.String... values)` Creates for all String objects representing `display-name` elements, a new `display-name` element
`JspPropertyGroupType<T>` | `setElIgnored(java.lang.Boolean elIgnored)` If not already created, a new `el-ignored` element with the given value will be created.
`JspPropertyGroupType<T>` | `setErrorOnUndeclaredNamespace(java.lang.Boolean errorOnUndeclaredNamespace)` If not already created, a new `error-on-undeclared-namespace` element with the given value will be created.
`JspPropertyGroupType<T>` | `setIncludeCoda(java.lang.String includeCoda)` Creates a new `include-coda` element
`JspPropertyGroupType<T>` | `setIncludeCodaList(java.lang.String... values)` Creates for all String objects representing `include-coda` elements, a new `include-coda` element
`JspPropertyGroupType<T>` | `setIncludePrelude(java.lang.String includePrelude)` Creates a new `include-prelude` element
`JspPropertyGroupType<T>` | `setIncludePreludeList(java.lang.String... values)` Creates for all String objects representing `include-prelude` elements, a new `include-prelude` element
`JspPropertyGroupType<T>` | `setIsXml(java.lang.Boolean isXml)` If not already created, a new `is-xml` element with the given value will be created.
`JspPropertyGroupType<T>` | `setPageEncoding(java.lang.String pageEncoding)` If not already created, a new `page-encoding` element with the given value will be created.
`JspPropertyGroupType<T>` | `setScriptingInvalid(java.lang.Boolean scriptingInvalid)` If not already created, a new `scripting-invalid` element with the given value will be created.
`JspPropertyGroupType<T>` | `setTrimDirectiveWhitespaces(java.lang.Boolean trimDirectiveWhitespaces)` If not already created, a new `trim-directive-whitespaces` element with the given value will be created.
`JspPropertyGroupType<T>` | `setUrlPattern(java.lang.String urlPattern)` Creates a new `url-pattern` element
`JspPropertyGroupType<T>` | `setUrlPatternList(java.lang.String... values)` Creates for all String objects representing `url-pattern` elements, a new `url-pattern` element
`T` | `up()`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### JspPropertyGroupTypeImpl

    public JspPropertyGroupTypeImpl(T t,
                                    java.lang.String nodeName,
                                    org.jboss.shrinkwrap.descriptor.spi.Node node)

### JspPropertyGroupTypeImpl

    public JspPropertyGroupTypeImpl(T t,
                                    java.lang.String nodeName,
                                    org.jboss.shrinkwrap.descriptor.spi.Node node,
                                    org.jboss.shrinkwrap.descriptor.spi.Node childNode)

Method Detail

### up

    public T up()

  Specified by:
    `up` in interface `org.jboss.shrinkwrap.descriptor.api.Child<T>`

### setDescription

    public JspPropertyGroupType<T> setDescription(java.lang.String description)

  Creates a new `description` element

  Specified by:
    `setDescription` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### setDescriptionList

    public JspPropertyGroupType<T> setDescriptionList(java.lang.String... values)

  Creates for all String objects representing `description` elements, a new `description` element

  Specified by:
    `setDescriptionList` in interface `JspPropertyGroupType<T>`
  Parameters:
    `list` - of `description` objects
  Returns:
    the current instance of `JspPropertyGroupType`

### removeAllDescription

    public JspPropertyGroupType<T> removeAllDescription()

  Removes the `description` element

  Specified by:
    `removeAllDescription` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### getDescriptionList

    public java.util.List<java.lang.String> getDescriptionList()

  Returns all `description` elements

  Specified by:
    `getDescriptionList` in interface `JspPropertyGroupType<T>`
  Returns:
    list of `description`

### setDisplayName

    public JspPropertyGroupType<T> setDisplayName(java.lang.String displayName)

  Creates a new `display-name` element

  Specified by:
    `setDisplayName` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### setDisplayNameList

    public JspPropertyGroupType<T> setDisplayNameList(java.lang.String... values)

  Creates for all String objects representing `display-name` elements, a new `display-name` element

  Specified by:
    `setDisplayNameList` in interface `JspPropertyGroupType<T>`
  Parameters:
    `list` - of `display-name` objects
  Returns:
    the current instance of `JspPropertyGroupType`

### removeAllDisplayName

    public JspPropertyGroupType<T> removeAllDisplayName()

  Removes the `display-name` element

  Specified by:
    `removeAllDisplayName` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### getDisplayNameList

    public java.util.List<java.lang.String> getDisplayNameList()

  Returns all `display-name` elements

  Specified by:
    `getDisplayNameList` in interface `JspPropertyGroupType<T>`
  Returns:
    list of `display-name`

### removeAllIcon

    public JspPropertyGroupType<T> removeAllIcon()

  Removes all `icon` elements

  Specified by:
    `removeAllIcon` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### icon

    public IconType<JspPropertyGroupType<T>> icon()

  Returns the `icon` element

  Specified by:
    `icon` in interface `JspPropertyGroupType<T>`
  Returns:
    the node defined for the element `icon`

### getIconList

    public java.util.List<IconType<JspPropertyGroupType<T>>> getIconList()

  Returns all `icon` elements

  Specified by:
    `getIconList` in interface `JspPropertyGroupType<T>`
  Returns:
    list of `icon`

### setUrlPattern

    public JspPropertyGroupType<T> setUrlPattern(java.lang.String urlPattern)

  Creates a new `url-pattern` element

  Specified by:
    `setUrlPattern` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### setUrlPatternList

    public JspPropertyGroupType<T> setUrlPatternList(java.lang.String... values)

  Creates for all String objects representing `url-pattern` elements, a new `url-pattern` element

  Specified by:
    `setUrlPatternList` in interface `JspPropertyGroupType<T>`
  Parameters:
    `list` - of `url-pattern` objects
  Returns:
    the current instance of `JspPropertyGroupType`

### removeAllUrlPattern

    public JspPropertyGroupType<T> removeAllUrlPattern()

  Removes the `url-pattern` element

  Specified by:
    `removeAllUrlPattern` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### getUrlPatternList

    public java.util.List<java.lang.String> getUrlPatternList()

  Returns all `url-pattern` elements

  Specified by:
    `getUrlPatternList` in interface `JspPropertyGroupType<T>`
  Returns:
    list of `url-pattern`

### setElIgnored

    public JspPropertyGroupType<T> setElIgnored(java.lang.Boolean elIgnored)

  If not already created, a new `el-ignored` element with the given value will be created. Otherwise, the existing `el-ignored` element will be updated with the given value.

  Specified by:
    `setElIgnored` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### removeElIgnored

    public JspPropertyGroupType<T> removeElIgnored()

  Removes the `el-ignored` element

  Specified by:
    `removeElIgnored` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### isElIgnored

    public java.lang.Boolean isElIgnored()

  Returns the `el-ignored` element

  Specified by:
    `isElIgnored` in interface `JspPropertyGroupType<T>`
  Returns:
    the node defined for the element `el-ignored`

### setPageEncoding

    public JspPropertyGroupType<T> setPageEncoding(java.lang.String pageEncoding)

  If not already created, a new `page-encoding` element with the given value will be created. Otherwise, the existing `page-encoding` element will be updated with the given value.

  Specified by:
    `setPageEncoding` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### removePageEncoding

    public JspPropertyGroupType<T> removePageEncoding()

  Removes the `page-encoding` element

  Specified by:
    `removePageEncoding` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### getPageEncoding

    public java.lang.String getPageEncoding()

  Returns the `page-encoding` element

  Specified by:
    `getPageEncoding` in interface `JspPropertyGroupType<T>`
  Returns:
    the node defined for the element `page-encoding`

### setScriptingInvalid

    public JspPropertyGroupType<T> setScriptingInvalid(java.lang.Boolean scriptingInvalid)

  If not already created, a new `scripting-invalid` element with the given value will be created. Otherwise, the existing `scripting-invalid` element will be updated with the given value.

  Specified by:
    `setScriptingInvalid` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### removeScriptingInvalid

    public JspPropertyGroupType<T> removeScriptingInvalid()

  Removes the `scripting-invalid` element

  Specified by:
    `removeScriptingInvalid` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### isScriptingInvalid

    public java.lang.Boolean isScriptingInvalid()

  Returns the `scripting-invalid` element

  Specified by:
    `isScriptingInvalid` in interface `JspPropertyGroupType<T>`
  Returns:
    the node defined for the element `scripting-invalid`

### setIsXml

    public JspPropertyGroupType<T> setIsXml(java.lang.Boolean isXml)

  If not already created, a new `is-xml` element with the given value will be created. Otherwise, the existing `is-xml` element will be updated with the given value.

  Specified by:
    `setIsXml` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### removeIsXml

    public JspPropertyGroupType<T> removeIsXml()

  Removes the `is-xml` element

  Specified by:
    `removeIsXml` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### isIsXml

    public java.lang.Boolean isIsXml()

  Returns the `is-xml` element

  Specified by:
    `isIsXml` in interface `JspPropertyGroupType<T>`
  Returns:
    the node defined for the element `is-xml`

### setIncludePrelude

    public JspPropertyGroupType<T> setIncludePrelude(java.lang.String includePrelude)

  Creates a new `include-prelude` element

  Specified by:
    `setIncludePrelude` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### setIncludePreludeList

    public JspPropertyGroupType<T> setIncludePreludeList(java.lang.String... values)

  Creates for all String objects representing `include-prelude` elements, a new `include-prelude` element

  Specified by:
    `setIncludePreludeList` in interface `JspPropertyGroupType<T>`
  Parameters:
    `list` - of `include-prelude` objects
  Returns:
    the current instance of `JspPropertyGroupType`

### removeAllIncludePrelude

    public JspPropertyGroupType<T> removeAllIncludePrelude()

  Removes the `include-prelude` element

  Specified by:
    `removeAllIncludePrelude` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### getIncludePreludeList

    public java.util.List<java.lang.String> getIncludePreludeList()

  Returns all `include-prelude` elements

  Specified by:
    `getIncludePreludeList` in interface `JspPropertyGroupType<T>`
  Returns:
    list of `include-prelude`

### setIncludeCoda

    public JspPropertyGroupType<T> setIncludeCoda(java.lang.String includeCoda)

  Creates a new `include-coda` element

  Specified by:
    `setIncludeCoda` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### setIncludeCodaList

    public JspPropertyGroupType<T> setIncludeCodaList(java.lang.String... values)

  Creates for all String objects representing `include-coda` elements, a new `include-coda` element

  Specified by:
    `setIncludeCodaList` in interface `JspPropertyGroupType<T>`
  Parameters:
    `list` - of `include-coda` objects
  Returns:
    the current instance of `JspPropertyGroupType`

### removeAllIncludeCoda

    public JspPropertyGroupType<T> removeAllIncludeCoda()

  Removes the `include-coda` element

  Specified by:
    `removeAllIncludeCoda` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### getIncludeCodaList

    public java.util.List<java.lang.String> getIncludeCodaList()

  Returns all `include-coda` elements

  Specified by:
    `getIncludeCodaList` in interface `JspPropertyGroupType<T>`
  Returns:
    list of `include-coda`

### setDeferredSyntaxAllowedAsLiteral

    public JspPropertyGroupType<T> setDeferredSyntaxAllowedAsLiteral(java.lang.Boolean deferredSyntaxAllowedAsLiteral)

  If not already created, a new `deferred-syntax-allowed-as-literal` element with the given value will be created. Otherwise, the existing `deferred-syntax-allowed-as-literal` element will be updated with the given value.

  Specified by:
    `setDeferredSyntaxAllowedAsLiteral` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### removeDeferredSyntaxAllowedAsLiteral

    public JspPropertyGroupType<T> removeDeferredSyntaxAllowedAsLiteral()

  Removes the `deferred-syntax-allowed-as-literal` element

  Specified by:
    `removeDeferredSyntaxAllowedAsLiteral` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### isDeferredSyntaxAllowedAsLiteral

    public java.lang.Boolean isDeferredSyntaxAllowedAsLiteral()

  Returns the `deferred-syntax-allowed-as-literal` element

  Specified by:
    `isDeferredSyntaxAllowedAsLiteral` in interface `JspPropertyGroupType<T>`
  Returns:
    the node defined for the element `deferred-syntax-allowed-as-literal`

### setTrimDirectiveWhitespaces

    public JspPropertyGroupType<T> setTrimDirectiveWhitespaces(java.lang.Boolean trimDirectiveWhitespaces)

  If not already created, a new `trim-directive-whitespaces` element with the given value will be created. Otherwise, the existing `trim-directive-whitespaces` element will be updated with the given value.

  Specified by:
    `setTrimDirectiveWhitespaces` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### removeTrimDirectiveWhitespaces

    public JspPropertyGroupType<T> removeTrimDirectiveWhitespaces()

  Removes the `trim-directive-whitespaces` element

  Specified by:
    `removeTrimDirectiveWhitespaces` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### isTrimDirectiveWhitespaces

    public java.lang.Boolean isTrimDirectiveWhitespaces()

  Returns the `trim-directive-whitespaces` element

  Specified by:
    `isTrimDirectiveWhitespaces` in interface `JspPropertyGroupType<T>`
  Returns:
    the node defined for the element `trim-directive-whitespaces`

### setDefaultContentType

    public JspPropertyGroupType<T> setDefaultContentType(java.lang.String defaultContentType)

  If not already created, a new `default-content-type` element with the given value will be created. Otherwise, the existing `default-content-type` element will be updated with the given value.

  Specified by:
    `setDefaultContentType` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### removeDefaultContentType

    public JspPropertyGroupType<T> removeDefaultContentType()

  Removes the `default-content-type` element

  Specified by:
    `removeDefaultContentType` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### getDefaultContentType

    public java.lang.String getDefaultContentType()

  Returns the `default-content-type` element

  Specified by:
    `getDefaultContentType` in interface `JspPropertyGroupType<T>`
  Returns:
    the node defined for the element `default-content-type`

### setBuffer

    public JspPropertyGroupType<T> setBuffer(java.lang.String buffer)

  If not already created, a new `buffer` element with the given value will be created. Otherwise, the existing `buffer` element will be updated with the given value.

  Specified by:
    `setBuffer` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### removeBuffer

    public JspPropertyGroupType<T> removeBuffer()

  Removes the `buffer` element

  Specified by:
    `removeBuffer` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### getBuffer

    public java.lang.String getBuffer()

  Returns the `buffer` element

  Specified by:
    `getBuffer` in interface `JspPropertyGroupType<T>`
  Returns:
    the node defined for the element `buffer`

### setErrorOnUndeclaredNamespace

    public JspPropertyGroupType<T> setErrorOnUndeclaredNamespace(java.lang.Boolean errorOnUndeclaredNamespace)

  If not already created, a new `error-on-undeclared-namespace` element with the given value will be created. Otherwise, the existing `error-on-undeclared-namespace` element will be updated with the given value.

  Specified by:
    `setErrorOnUndeclaredNamespace` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### removeErrorOnUndeclaredNamespace

    public JspPropertyGroupType<T> removeErrorOnUndeclaredNamespace()

  Removes the `error-on-undeclared-namespace` element

  Specified by:
    `removeErrorOnUndeclaredNamespace` in interface `JspPropertyGroupType<T>`
  Returns:
    the current instance of `JspPropertyGroupType`

### isErrorOnUndeclaredNamespace

    public java.lang.Boolean isErrorOnUndeclaredNamespace()

  Returns the `error-on-undeclared-namespace` element

  Specified by:
    `isErrorOnUndeclaredNamespace` in interface `JspPropertyGroupType<T>`
  Returns:
    the node defined for the element `error-on-undeclared-namespace`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD