# Class DefaultAttributeGroup

Object
AbstractMetadata
ModifiableMetadata
ISOMetadata
DefaultAttributeGroup

All Implemented Interfaces:
  `Serializable`, `Emptiable`, `LenientComparable`, `IdentifiedObject`

@UML(identifier="MD_AttributeGroup", specification=ISO_19115) public class DefaultAttributeGroup extends ISOMetadata
Information about content type for groups of attributes for a specific range dimension. The following property is mandatory in a well-formed metadata according ISO 19115:
`MD_AttributeGroup` `└─contentType……` Content type
Note on International Standard versions
This class is derived from a new type defined in the ISO 19115 international standard published in 2014, while GeoAPI 3.0 is based on the version published in 2003. Consequently this implementation class does not yet implement a GeoAPI interface, but is expected to do so after the next GeoAPI releases. When the interface will become available, all references to this implementation class in Apache SIS will be replaced be references to the `AttributeGroup` interface.

## Limitations

- Instances of this class are not synchronized for multi-threading. Synchronization, if needed, is caller's responsibility.
- Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases. Serialization support is appropriate for short term storage or RMI between applications running the same version of Apache SIS. For long term storage, use `XML` instead.

Since:
  0.5
See Also:
  - Serialized Form

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from class ModifiableMetadata

  `ModifiableMetadata​.State`

- ## Field Summary

  ### Fields inherited from class ISOMetadata

  `identifiers`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DefaultAttributeGroup()`
  Constructs an initially empty attribute group.
  `DefaultAttributeGroup(DefaultAttributeGroup object)`
  Constructs a new instance initialized with the values from the specified metadata object.
  `DefaultAttributeGroup(CoverageContentType contentType, RangeDimension attribute)`
  Constructs an attribute group initialized to the given values.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Collection<RangeDimension>`
  `getAttributes()`
  Returns information on an attribute of the resource.
  `Collection<CoverageContentType>`
  `getContentTypes()`
  Returns the types of information represented by the value(s).
  `void`
  `setAttributes(Collection<? extends RangeDimension> newValues)`
  Sets information on an attribute of the resource.
  `void`
  `setContentTypes(Collection<? extends CoverageContentType> newValues)`
  Sets the types of information represented by the value(s).

  ### Methods inherited from class ISOMetadata

  `getIdentifier, getIdentifierMap, getIdentifiers, getStandard, setIdentifier`

  ### Methods inherited from class ModifiableMetadata

  `checkWritePermission, collectionType, copyCollection, copyList, copyMap, copySet, deepCopy, nonNullCollection, nonNullList, nonNullMap, nonNullSet, singleton, state, writeCollection, writeList, writeMap, writeSet`

  ### Methods inherited from class AbstractMetadata

  `asMap, asTreeTable, clone, equals, equals, getInterface, hashCode, isEmpty, nilReasons, prune, toString`

  ### Methods inherited from class Object

  `finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### DefaultAttributeGroup

    public DefaultAttributeGroup()
    Constructs an initially empty attribute group.

  - ### DefaultAttributeGroup

    public DefaultAttributeGroup(CoverageContentType contentType, RangeDimension attribute)
    Constructs an attribute group initialized to the given values.
    Parameters:
      `contentType` - type of information represented by the value, or `null`.
      `attribute` - the attribute, or `null`.

  - ### DefaultAttributeGroup

    public DefaultAttributeGroup(DefaultAttributeGroup object)
    Constructs a new instance initialized with the values from the specified metadata object. This is a shallow copy constructor, because the other metadata contained in the given object are not recursively copied.
    Parameters:
      `object` - the metadata to copy values from, or `null` if none.

- ## Method Details

  - ### getContentTypes

    @UML(identifier="contentType", obligation=MANDATORY, specification=ISO_19115) public Collection<CoverageContentType> getContentTypes()
    Returns the types of information represented by the value(s).
    Returns:
      the types of information represented by the value(s).

  - ### setContentTypes

    public void setContentTypes(Collection<? extends CoverageContentType> newValues)
    Sets the types of information represented by the value(s).
    Parameters:
      `newValues` - the new types of information.

  - ### getAttributes

    @UML(identifier="attribute", obligation=OPTIONAL, specification=ISO_19115) public Collection<RangeDimension> getAttributes()
    Returns information on an attribute of the resource.
    Returns:
      information on an attribute of the resource.

  - ### setAttributes

    public void setAttributes(Collection<? extends RangeDimension> newValues)
    Sets information on an attribute of the resource.
    Parameters:
      `newValues` - the new attributes.