com.ihr.xbrl.dts

## Class PeriodDimension

- java.lang.Object
- - com.ihr.xbrl.dts.PeriodDimension

- All Implemented Interfaces:
    Dimension<ColumnPeriod>, java.lang.Comparable<Dimension<?>>
  Direct Known Subclasses:
    PeriodDimensionDuration, PeriodDimensionInstant

      public abstract class PeriodDimension
      extends java.lang.Object
      implements Dimension<ColumnPeriod>

  Make this class abstract and create two non abstract classes, one for instants another for duration.
  Author:
    Ignacio

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface com.ihr.xbrl.dts.Dimension

      `Dimension.DimensionType`

  - ### Field Summary

    - ### Fields inherited from interface com.ihr.xbrl.dts.Dimension

      `defaultDimensionsXBRL, duplicatesDimension, entityDimension, formLineDimenion, instantModeDimension, instantOnDurationDimension, periodDimensionDuration, periodDimensionInstant, POSITION_AVAIL, POSITION_COLUMN_HEADERS, POSITION_ROW_HEADERS, POSITION_UNKOWN, RSDimensionsNameNamespace, RSDimensionsNameNamespacePrefix`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PeriodDimension(HasBoySupport hb)` Instantiates a new period dimension.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `addMember(Member<?> member)` Adds a new dimension member to the end of the members of this dimension.
    `boolean` | `bHasFixedName()` This function returns true if the dimension has a fixed name that must be obtained via a call to `Dimension.getDimensionName()`.
    `void` | `clear()` Empty the Period Dimension content so it can be recreated from the instance.
    `int` | `compareTo(Dimension<?> o)`
    `boolean` | `delMember(Member<?> member)` Removes an existing dimension member from the dimension domain.
    `boolean` | `factMatches(XDTFactWithVirtualDimensions item, Member<?> mem, java.util.HashSet<javax.xml.namespace.QName> dimensionsToMatch, java.lang.Object contextualExtraInformation)` Fact matches.
    `Member<?>` | `findMember(Member<?> mem)` Search the Dimension domain for an occurrence of the mem member.
    `Member<?>` | `getDefault()` for explicit dimensions this function returns the default member if any is defined.
    `java.util.Collection<Member<?>>` | `getDomain()` Returns an ordered collection of members.
    `Member<?>` | `getMemberFromString(java.lang.String value)` Returns the domain member whose test representation matches the string value or null.
    `java.util.Collection<Member<?>>` | `getMembers()` Returns an ordered collection of members.
    `int` | `getSuggestedInitialPosition(javax.xml.namespace.QName selectedPrimaryItem)` Returns the suggested initial placement position of the graphical element in the GUI.
    `Dimension.DimensionType` | `getType()` returns either com.ihr.xbrl.om.xdt.XDTDimension.TYPED, com.ihr.xbrl.om.xdt.XDTDimension.EXPLICIT depending on the type of the surrounding dimension.
    `boolean` | `isPrimary()` Returns true if the dimension is linked with a primary item and thus it is a PDimension or a DDimension.
    `boolean` | `isTree()` Returns true if the representation of this dimension could be a tree of elements or false if it is a list of items.
    `void` | `setAllowDuplicates(boolean allowDuplicates)` If the value is true then it is possible for the dimension to contain two identical members as two different member values.

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface com.ihr.xbrl.dts.Dimension

      `equals, getDimensionName, getName, hashCode`

- - ### Constructor Detail

    - #### PeriodDimension

          public PeriodDimension(HasBoySupport hb)

      Instantiates a new period dimension.
      Parameters:
        `hb` - the hb

  - ### Method Detail

    - #### addMember

          public boolean addMember(Member<?> member)

      Description copied from interface: `Dimension`
      Adds a new dimension member to the end of the members of this dimension. returns true if the member is new, false if the member already exist
      Specified by:
        `addMember` in interface `Dimension<ColumnPeriod>`
      Parameters:
        `member` - the member
      Returns:
        true, if successful

    - #### delMember

          public boolean delMember(Member<?> member)

      Description copied from interface: `Dimension`
      Removes an existing dimension member from the dimension domain.
      Specified by:
        `delMember` in interface `Dimension<ColumnPeriod>`
      Parameters:
        `member` - the member to remove
      Returns:
        true, if successful

    - #### setAllowDuplicates

          public void setAllowDuplicates(boolean allowDuplicates)

      Description copied from interface: `Dimension`
      If the value is true then it is possible for the dimension to contain two identical members as two different member values. If the value is false, a call to a method addMember will always check the existence of the member before the member is added to the dimension
      Specified by:
        `setAllowDuplicates` in interface `Dimension<ColumnPeriod>`
      Parameters:
        `allowDuplicates` - the new allow duplicates

    - #### bHasFixedName

          public boolean bHasFixedName()

      Description copied from interface: `Dimension`
      This function returns true if the dimension has a fixed name that must be obtained via a call to `Dimension.getDimensionName()`.
      Specified by:
        `bHasFixedName` in interface `Dimension<ColumnPeriod>`
      Returns:
        boolean

    - #### getSuggestedInitialPosition

          public int getSuggestedInitialPosition(javax.xml.namespace.QName selectedPrimaryItem)

      Description copied from interface: `Dimension`
      Returns the suggested initial placement position of the graphical element in the GUI. This value is a constant defined in this interface
      Specified by:
        `getSuggestedInitialPosition` in interface `Dimension<ColumnPeriod>`
      Parameters:
        `selectedPrimaryItem` - this is the selected primary item in the GUI
      Returns:
        integer constant defined in this interface

    - #### getMembers

          public java.util.Collection<Member<?>> getMembers()

      Description copied from interface: `Dimension`
      Returns an ordered collection of members. If the members are hierarchically organized then the ordering includes parents first, when a parent has children, then the list of children from the first one to the last one then the parent continues.
      Specified by:
        `getMembers` in interface `Dimension<ColumnPeriod>`
      Returns:
        Collection of members

    - #### isTree

          public boolean isTree()

      Description copied from interface: `Dimension`
      Returns true if the representation of this dimension could be a tree of elements or false if it is a list of items.
      Specified by:
        `isTree` in interface `Dimension<ColumnPeriod>`
      Returns:
        boolean value (never calculated)

    - #### getDomain

          public java.util.Collection<Member<?>> getDomain()

      Description copied from interface: `Dimension`
      Returns an ordered collection of members. If the members are hierarchically organized then the ordering includes only the parent elements.
      Specified by:
        `getDomain` in interface `Dimension<ColumnPeriod>`
      Returns:
        Collection of members

    - #### isPrimary

          public boolean isPrimary()

      Description copied from interface: `Dimension`
      Returns true if the dimension is linked with a primary item and thus it is a PDimension or a DDimension.
      Specified by:
        `isPrimary` in interface `Dimension<ColumnPeriod>`
      Returns:
        boolean value

    - #### factMatches

          public boolean factMatches(XDTFactWithVirtualDimensions item,
                            Member<?> mem,
                            java.util.HashSet<javax.xml.namespace.QName> dimensionsToMatch,
                            java.lang.Object contextualExtraInformation)

      Description copied from interface: `Dimension`
      Fact matches.
      Specified by:
        `factMatches` in interface `Dimension<ColumnPeriod>`
      Parameters:
        `item` - the item
        `mem` - the mem
        `dimensionsToMatch` - the dims to match on this round
        `contextualExtraInformation` - the contextual extra information
      Returns:
        true, if successful

    - #### getDefault

          public Member<?> getDefault()

      Description copied from interface: `Dimension`
      for explicit dimensions this function returns the default member if any is defined.
      Specified by:
        `getDefault` in interface `Dimension<ColumnPeriod>`
      Returns:
        the default

    - #### clear

          public void clear()

      Empty the Period Dimension content so it can be recreated from the instance.

    - #### findMember

          public Member<?> findMember(Member<?> mem)

      Description copied from interface: `Dimension`
      Search the Dimension domain for an occurrence of the mem member. If found. the found member is returned. otherwise null is returned
      Specified by:
        `findMember` in interface `Dimension<ColumnPeriod>`
      Parameters:
        `mem` - the member to search on this dimension domain
      Returns:
        the member found or null

    - #### getType

          public Dimension.DimensionType getType()

      Description copied from interface: `Dimension`
      returns either com.ihr.xbrl.om.xdt.XDTDimension.TYPED, com.ihr.xbrl.om.xdt.XDTDimension.EXPLICIT depending on the type of the surrounding dimension. Also returns -1 if the dimension is the primary item or a pre defined dimension in XBRL as the time dimension or the company dimension
      Specified by:
        `getType` in interface `Dimension<ColumnPeriod>`
      Returns:
        integer constant defined in com.ihr.xbrl.om.xdt.XDTDimension class

    - #### compareTo

          public int compareTo(Dimension<?> o)

      Specified by:
        `compareTo` in interface `java.lang.Comparable<Dimension<?>>`

    - #### getMemberFromString

          public Member<?> getMemberFromString(java.lang.String value)

      Description copied from interface: `Dimension`
      Returns the domain member whose test representation matches the string value or null.
      Specified by:
        `getMemberFromString` in interface `Dimension<ColumnPeriod>`
      Parameters:
        `value` - the value
      Returns:
        the member from string