com.ihr.xbrl.mapper.source.worksheet

## Class AbstractWorksheetDataSource

- java.lang.Object
- - com.ihr.xbrl.mapper.source.worksheet.AbstractWorksheetDataSource

- All Implemented Interfaces:
    HasSomethingToSay, HasMethod, HasMult, XBRLDataSource, XBRLDataSourceMapIdInUse
  Direct Known Subclasses:
    ExcelDataSource

      public abstract class AbstractWorksheetDataSource
      extends java.lang.Object
      implements XBRLDataSource, HasSomethingToSay, XBRLDataSourceMapIdInUse, HasMult, HasMethod

  The Class AbstractWorksheetDataSource.
  Author:
    Ignacio

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractWorksheetDataSource()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addMap(java.lang.String identifier, java.lang.String cell, java.util.Properties props)` Adds a new map item to the map (or replaces an existing map if one already exist for the same mapId and cell).
    `void` | `addOrModifyRound(java.lang.String identifier, int decimals)` Adds a new rounding information assigned to the indicated identifier or modifies existing rounding information for all facts associated with the rounding.
    `void` | `addRuleMap(java.lang.String identifier, java.lang.String cell, java.util.Properties props)` Adds a new map rule to the map or replaces an existing rule map.
    `void` | `createConfigFileContent()` This function is used by the GUI during the generation of a new mapper.
    `java.lang.String` | `createOrGetRoundIdentifier(int decimals)` the result value is an identifier corresponding to the value of the decimals parameter.
    `void` | `deleteRegion(Region region)` Removes all mappings to a cell inside the Region region
    `java.util.Collection<java.lang.String>` | `delRound(java.lang.String identifier)` Removes rounding information from this file.
    `void` | `delRuleMap(java.lang.String identifier)` Removes a rule mapping using the rule identifier key.
    `void` | `endOfDocument(XBRLInstance instance)` Called by the MapEngine when a new instance is finished Can be used to close connections to data sources.
    `void` | `endOfFact(java.lang.String mapIdenfifier, javax.xml.namespace.QName factName)` Called by the MapEngine when a new fact is finalized returns nothing.
    `java.lang.String[]` | `getCells(java.lang.String identifier)` Obtains an array of cells connected with the indicated identifier.
    `java.net.URI` | `getConfigFile()` Access to the name of the configuration file.
    `XBRLContext` | `getContext(java.lang.String mapIdentifier, int index, XBRLContext context)` Each data item has mapIdentifier string each used concept in the taxonomy has at least one mapIdentifier returns the XBRLContext to be used for the fact item.
    `com.ihr.xbrl.mapper.source.worksheet.AbstractWorksheetDataSource.ZeroValuePolicyType` | `getDefaultZeroValuePolicyType()` Gets the default zero value policy type.
    `java.lang.String` | `getExactMode(java.lang.String identifier, java.lang.String cell)` Returns the exactMode value for a specified identifier and cell.
    `java.lang.String` | `getExactModeValue(java.lang.String identifier, java.lang.String cell)` Returns the exactMode value for a specified identifier and cell.
    `java.lang.Object` | `getFootnote(java.lang.String mapIdentifier, int index, XBRLFact fact)` After a fact is produced the data source is asked for a footnote to be added to the instance document by doing a call to this method.
    `java.lang.String[]` | `getFootnoteCellAndLang(java.lang.String identifier, java.lang.String cell)` Returns an array of two strings, the string at index 0 is the cell for the footnote, the string at index 1 is the lang.
    `java.lang.String` | `getFootnoteLang(java.lang.String mapIdentifier, int index, XBRLFact fact, java.lang.Object footnoteContent)` After a footnote resource is create it MUST have an xml:lang attribute.
    `int` | `getFormat(java.lang.String mapIdentifier, int index, XBRLContext context, XBRLUnit localUnit)` Ask the driver for the preferred serialization for the numeric data.
    `java.lang.String` | `getFormatValue(java.lang.String mapIdentifier, int index, XBRLContext context, XBRLUnit localUnit)` Returns the value (as string) for the data format.
    `java.lang.String` | `getHistoricalMessage()` This is the method that must be implemented by classes that provides historical information.
    `java.lang.String` | `getMapId(int index)` Gets the map id.
    `java.lang.Object[]` | `getMapIdentifierReferences(java.lang.String mapIdentifier)` This method is used to automatically generate loader files from mapper files.
    `java.util.Iterator<java.lang.Integer>` | `getMapIterator()` Gets the map iterator.
    `SheetPoint` | `getMapSheetPoint(int index)` Gets the map sheet point.
    `java.lang.String` | `getMethod(java.lang.String identifier, java.lang.Object dataLocator)` A driver implementing this interface has multiple methods to map content the excel driver can map to a file name in an excel cell.
    `java.lang.String` | `getMethod(java.lang.String identifier, java.lang.String cell)` Returns the method for processing the content of target cell.
    `double` | `getMult(java.lang.String identifier, java.lang.Object dataLocator)` A driver implementing this interface has a method to obtain the multiplication factor of the incoming value in order to obtain the XBRL fact value.
    `double` | `getMult(java.lang.String identifier, java.lang.String cell)` Returns the mult value used for a specified identifier and cell.
    `int` | `getNumberOfValues(java.lang.String mapIdentifier, Fact fact)` Each data item has mapIdentifier string, each used concept in the taxonomy has at least one mapIdentifier This method returns the number of facts in the source that corresponds to the mapIdentifier string.
    `int` | `getRound(java.lang.String identifier)` Returns the rounding value for the indicated rounding identifier.
    `java.lang.String[]` | `getRoundingIdentifiers(java.lang.String identifier)` Obtains an array of map identifiers of facts using the same rounding information.
    `java.lang.String` | `getRoundMode(java.lang.String identifier, java.lang.String cell)` Returns the identifier of the round information for a specified identifier and cell.
    `java.lang.String[]` | `getRuleCells(java.lang.String identifier)` Obtains an array of cells connected with the rule identified by the identifier used as parameter.
    `abstract SheetPointFactory` | `getSheetPointFactory()` Gets the sheet point factory.
    `java.lang.String` | `getSourceReference(java.lang.String mapIdentifier, int index, XBRLContext localContext, net.sf.saxon.type.SimpleType theType)` Returns a string that describes the source of data for a specific mapIdentifier, index, localContext and data type This method is used in order to build an error message that takes into consideration where the data comes from so the user can better track the path the data is following inside the tools.
    `XBRLUnit` | `getUnit(java.lang.String mapIdentifier, int index, XBRLContext localContext, XBRLUnit unit)` Each time a numeric concept is created this function is called to request or change the required unit.
    `java.lang.String` | `getZeroValuePolicy(java.lang.String identifier, java.lang.String cell)` Returns the string identifying how the zeros will be handled on this fact.
    `void` | `init()` Called by the mapping engine once the object is created.
    `boolean` | `isConfigfileRequired()` Returns true if the configuration file is required for this XBRLDataSource.
    `boolean` | `isInputFileRequired()` Returns true if this driver requires an input file.
    `boolean` | `isMapIdentifierInUse(java.lang.String mapIdentifier)` This operation allows a driver to respond true or false if the map identifier used in the parameter is mapped to data or ignored by the driver.
    `boolean` | `isNil(java.lang.String mapIdentifier, int index, XMLElementDefinition concept)` Return true if the concept content is xsi:nil so there will be no request for a value.
    `boolean` | `isTupleSourceRequired()` Returns a boolean value indicating if the source format has a meaning to indicate the number of occurrences of a tuple.
    `void` | `moveRegion(Region region, SheetPoint destination)` Moves all SheetPoints in the Region region to be mapped according to the new SheetPoint indicated in destination.
    `void` | `removeMap(java.lang.String identifier, java.lang.String cell)` Removes a map from the internal collection.
    `void` | `save()` Save the content of the configuration file to disk.
    `void` | `setConfigFile(java.net.URI configFile)` Sets the configuration file for this XBRLDataSource.
    `void` | `setDefaultRounding(java.lang.String cell)` Sets the default rounding cell to the cell indicated or removes default rounding if the cell parameter is null.
    `void` | `setDefaultZeroValuePolicyType(com.ihr.xbrl.mapper.source.worksheet.AbstractWorksheetDataSource.ZeroValuePolicyType newValue)` Sets the default zero value policy type.
    `void` | `startOfFact(java.lang.String mapIdentifier, javax.xml.namespace.QName factName)` Called by the MapEngine when a new fact is about to be started Return nothing.
    `boolean` | `verifyRule(Section section)` Checks the current driver for a rule for section passed in in the parameter.

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

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

    - ### Methods inherited from interface com.ihr.xbrl.mapper.source.XBRLDataSource

      `equals, getSampleData, getValue, hashCode, startOfDocument`

- - ### Constructor Detail

    - #### AbstractWorksheetDataSource

          public AbstractWorksheetDataSource()

  - ### Method Detail

    - #### getSheetPointFactory

          public abstract SheetPointFactory getSheetPointFactory()

      Gets the sheet point factory.
      Returns:
        the sheet point factory

    - #### createConfigFileContent

          public void createConfigFileContent()

      Description copied from interface: `XBRLDataSource`
      This function is used by the GUI during the generation of a new mapper. Generates a sample configuration file that can be loaded by the XBRLDataSource without generating java exceptions.
      Specified by:
        `createConfigFileContent` in interface `XBRLDataSource`

    - #### isConfigfileRequired

          public boolean isConfigfileRequired()

      Description copied from interface: `XBRLDataSource`
      Returns true if the configuration file is required for this XBRLDataSource. Returns false if it is optional or not required at all.
      Specified by:
        `isConfigfileRequired` in interface `XBRLDataSource`
      Returns:
        boolean value

    - #### save

          public void save()
                    throws MapException

      Description copied from interface: `XBRLDataSource`
      Save the content of the configuration file to disk. This method is called by the GUI when the mapper has changes in the configuration and the configuration requires to be serialized to disk
      Specified by:
        `save` in interface `XBRLDataSource`
      Throws:
        `MapException` - in the event of problems like IOException

    - #### isInputFileRequired

          public boolean isInputFileRequired()

      Description copied from interface: `XBRLDataSource`
      Returns true if this driver requires an input file. This function is used by the GUI in order to enable or disable the "Test Mapper" menu item depending on whether or not input files are required
      Specified by:
        `isInputFileRequired` in interface `XBRLDataSource`
      Returns:
        boolean

    - #### isNil

          public boolean isNil(java.lang.String mapIdentifier,
                      int index,
                      XMLElementDefinition concept)

      Description copied from interface: `XBRLDataSource`
      Return true if the concept content is xsi:nil so there will be no request for a value.
      Specified by:
        `isNil` in interface `XBRLDataSource`
      Parameters:
        `mapIdentifier` - the map identifier
        `index` - the index
        `concept` - the concept
      Returns:
        boolean

    - #### verifyRule

          public boolean verifyRule(Section section)

      Description copied from interface: `XBRLDataSource`
      Checks the current driver for a rule for section passed in in the parameter. If the rule is satisfied the return value shall be true, otherwise, the return value shall be false.

      This method is called only if the fact contains a sectionRef and the sectionRef contains a rule.

      The algorithm to determine the output value is driver dependant and there is no default value.

      If the return value is true, the fact will be included to the output instance and all files in the section will be added to the DTS. If the return value is false, the fact will be skipped.

      Specified by:
        `verifyRule` in interface `XBRLDataSource`
      Parameters:
        `section` - the section
      Returns:
        boolean value

    - #### startOfFact

          public void startOfFact(java.lang.String mapIdentifier,
                         javax.xml.namespace.QName factName)

      Description copied from interface: `XBRLDataSource`
      Called by the MapEngine when a new fact is about to be started Return nothing. It is used to inform the "other side" and can be used to attach resources
      Specified by:
        `startOfFact` in interface `XBRLDataSource`
      Parameters:
        `mapIdentifier` - String
        `factName` - QName

    - #### endOfFact

          public void endOfFact(java.lang.String mapIdenfifier,
                       javax.xml.namespace.QName factName)

      Description copied from interface: `XBRLDataSource`
      Called by the MapEngine when a new fact is finalized returns nothing. It is used to inform the "other side" and can be used to free-up resources.
      Specified by:
        `endOfFact` in interface `XBRLDataSource`
      Parameters:
        `mapIdenfifier` - the map identifier
        `factName` - the fact name

    - #### getUnit

          public XBRLUnit getUnit(java.lang.String mapIdentifier,
                         int index,
                         XBRLContext localContext,
                         XBRLUnit unit)

      Description copied from interface: `XBRLDataSource`
      Each time a numeric concept is created this function is called to request or change the required unit. If no change is required then unit (the incoming parameter) must be returned
      Specified by:
        `getUnit` in interface `XBRLDataSource`
      Parameters:
        `mapIdentifier` - String code
        `index` - int indicating which value we are working on
        `localContext` - the context for the new data
        `unit` - the proposed unit. Can be changed
      Returns:
        XBRLUnit the original unit or a new unit to use

    - #### getFootnoteLang

          public java.lang.String getFootnoteLang(java.lang.String mapIdentifier,
                                         int index,
                                         XBRLFact fact,
                                         java.lang.Object footnoteContent)

      Description copied from interface: `XBRLDataSource`
      After a footnote resource is create it MUST have an xml:lang attribute. This function is called by the mapping engine in order to obtain the value of the xml:lang attribute for a particular footnote
      Specified by:
        `getFootnoteLang` in interface `XBRLDataSource`
      Parameters:
        `mapIdentifier` - the map identifier
        `index` - the index
        `fact` - the fact
        `footnoteContent` - the footnote content
      Returns:
        String

    - #### getContext

          public XBRLContext getContext(java.lang.String mapIdentifier,
                               int index,
                               XBRLContext context)

      Description copied from interface: `XBRLDataSource`
      Each data item has mapIdentifier string each used concept in the taxonomy has at least one mapIdentifier returns the XBRLContext to be used for the fact item. Or the proposed context if no modifications are required. MUST not return null.
      Specified by:
        `getContext` in interface `XBRLDataSource`
      Parameters:
        `mapIdentifier` - String
        `index` - int
        `context` - XBRLContext the context proposed by the mapping engine. If the context is modified it will be modified for all concepts using this context. So if the context requires modifications for a specified fact it would be better to clone the context before modifications are performed.
      Returns:
        net.sf.saxon.Value

    - #### getFormat

          public int getFormat(java.lang.String mapIdentifier,
                      int index,
                      XBRLContext context,
                      XBRLUnit localUnit)

      Description copied from interface: `XBRLDataSource`
      Ask the driver for the preferred serialization for the numeric data. One of XBRLNumericValue.DECIMALS or XBRLNumericValue.PRECISION constants must be returned
      Specified by:
        `getFormat` in interface `XBRLDataSource`
      Parameters:
        `mapIdentifier` - the map identifier
        `index` - the index
        `context` - the context
        `localUnit` - the local unit
      Returns:
        integer

    - #### getFormatValue

          public java.lang.String getFormatValue(java.lang.String mapIdentifier,
                                        int index,
                                        XBRLContext context,
                                        XBRLUnit localUnit)

      Description copied from interface: `XBRLDataSource`
      Returns the value (as string) for the data format. "INF" means infinite. integers (positive and negative) can be set for decimals="-6" (millions of the specified unit etc).
      Specified by:
        `getFormatValue` in interface `XBRLDataSource`
      Parameters:
        `mapIdentifier` - the map identifier
        `index` - the index
        `context` - the context
        `localUnit` - the local unit
      Returns:
        String

    - #### getNumberOfValues

          public int getNumberOfValues(java.lang.String mapIdentifier,
                              Fact fact)

      Description copied from interface: `XBRLDataSource`
      Each data item has mapIdentifier string, each used concept in the taxonomy has at least one mapIdentifier This method returns the number of facts in the source that corresponds to the mapIdentifier string. Normally this is 1 but there may be cases in which more are returned by the source. Facts inside tuples often returns more than one. Facts with dimensions may be mappend using different map identifiers for each dimension combination.
      Specified by:
        `getNumberOfValues` in interface `XBRLDataSource`
      Parameters:
        `mapIdentifier` - the map identifier
        `fact` - the fact
      Returns:
        int

    - #### isMapIdentifierInUse

          public boolean isMapIdentifierInUse(java.lang.String mapIdentifier)

      Description copied from interface: `XBRLDataSourceMapIdInUse`
      This operation allows a driver to respond true or false if the map identifier used in the parameter is mapped to data or ignored by the driver.
      Specified by:
        `isMapIdentifierInUse` in interface `XBRLDataSourceMapIdInUse`
      Parameters:
        `mapIdentifier` - as string
      Returns:
        boolean value

    - #### isTupleSourceRequired

          public boolean isTupleSourceRequired()

      Description copied from interface: `XBRLDataSource`
      Returns a boolean value indicating if the source format has a meaning to indicate the number of occurrences of a tuple.

      This information is used during the algorithm for generating a template file automatically.

      Excel Data Source, for example, does not provides a meaning to indicate the number of occurrences of a tuple. The number of occurrences will be indicated in the instance document template itself. SQL Data Source, is on the other side. The SQL Driver and the source format may have information to provide the number of occurrences for a tuple.

      Note, once a template has been automatically generated. it is up to the team to change the generated template into something different if this is required by the project.

      Specified by:
        `isTupleSourceRequired` in interface `XBRLDataSource`
      Returns:
        boolean value.

    - #### getRoundingIdentifiers

          public java.lang.String[] getRoundingIdentifiers(java.lang.String identifier)

      Obtains an array of map identifiers of facts using the same rounding information.
      Parameters:
        `identifier` - the round identifier to check
      Returns:
        array of strings

    - #### getMapIdentifierReferences

          public java.lang.Object[] getMapIdentifierReferences(java.lang.String mapIdentifier)

      Description copied from interface: `XBRLDataSource`
      This method is used to automatically generate loader files from mapper files.
      Specified by:
        `getMapIdentifierReferences` in interface `XBRLDataSource`
      Parameters:
        `mapIdentifier` - the map identifier
      Returns:
        the map identifier references

    - #### getCells

          public java.lang.String[] getCells(java.lang.String identifier)

      Obtains an array of cells connected with the indicated identifier.
      Parameters:
        `identifier` - String
      Returns:
        String[] with cell references

    - #### getMapSheetPoint

          public SheetPoint getMapSheetPoint(int index)

      Gets the map sheet point.
      Parameters:
        `index` - the index
      Returns:
        the map sheet point

    - #### getFootnoteCellAndLang

          public java.lang.String[] getFootnoteCellAndLang(java.lang.String identifier,
                                                  java.lang.String cell)

      Returns an array of two strings, the string at index 0 is the cell for the footnote, the string at index 1 is the lang.
      Parameters:
        `identifier` - the identifier
        `cell` - the cell
      Returns:
        string array of 2 strings or 2 null values

    - #### getFootnote

          public java.lang.Object getFootnote(java.lang.String mapIdentifier,
                                     int index,
                                     XBRLFact fact)

      Description copied from interface: `XBRLDataSource`
      After a fact is produced the data source is asked for a footnote to be added to the instance document by doing a call to this method. If this method returns null then the concept has no text in a footnote. If this method returns a java.lang.String then the string text will be added as a footnote to the instance document. If this method returns a org.jdom.Content
      Specified by:
        `getFootnote` in interface `XBRLDataSource`
      Parameters:
        `mapIdentifier` - String
        `index` - int
        `fact` - XBRLFactItem
      Returns:
        Object , null, String or Content

    - #### getZeroValuePolicy

          public java.lang.String getZeroValuePolicy(java.lang.String identifier,
                                            java.lang.String cell)

      Returns the string identifying how the zeros will be handled on this fact.
      Parameters:
        `identifier` - string mapIdentifier
        `cell` - string cell address
      Returns:
        String "blankCell" or "passZeroValue"
      Since:
        2.6.10

    - #### getMethod

          public java.lang.String getMethod(java.lang.String identifier,
                                   java.lang.Object dataLocator)

      Description copied from interface: `HasMethod`
      A driver implementing this interface has multiple methods to map content the excel driver can map to a file name in an excel cell. This method returns cellContent when this is the case, or readFile when the cell contains a file name and the file content will be place into the XBRL instance.
      Specified by:
        `getMethod` in interface `HasMethod`
      Parameters:
        `identifier` - this is the Map Identifier for a fact in the template file
        `dataLocator` - this is provided by the driver
      Returns:
        this is the multiplier

    - #### getMethod

          public java.lang.String getMethod(java.lang.String identifier,
                                   java.lang.String cell)

      Returns the method for processing the content of target cell. Possible values are "cellContent" that means the cell content will be processed (this is the default, and "readFile" that means the cell content points to a file name whose content will be reported as fact value. This is used for HTML content.
      Parameters:
        `identifier` - string mapIdentifier
        `cell` - string cell address
      Returns:
        String "cellContent" or "readFile"
      Since:
        2.7.3

    - #### addRuleMap

          public void addRuleMap(java.lang.String identifier,
                        java.lang.String cell,
                        java.util.Properties props)

      Adds a new map rule to the map or replaces an existing rule map. Rule maps are distinguished only by the rule identifier
      Parameters:
        `identifier` - the identifier
        `cell` - the cell
        `props` - the props

    - #### addOrModifyRound

          public void addOrModifyRound(java.lang.String identifier,
                              int decimals)

      Adds a new rounding information assigned to the indicated identifier or modifies existing rounding information for all facts associated with the rounding.
      Parameters:
        `identifier` - specific fact identifier for which rounding is changed. Note, this is changed for it and all other facts using the same rounding. If null, a NullPointerException is raised
        `decimals` - the decimals

    - #### delRound

          public java.util.Collection<java.lang.String> delRound(java.lang.String identifier)

      Removes rounding information from this file. All facts assigned to this rounding are re assigned to the default rounding returns the Collection of map identifiers of facts affected by the change
      Parameters:
        `identifier` - the identifier of this rounding info
      Returns:
        the collection

    - #### createOrGetRoundIdentifier

          public java.lang.String createOrGetRoundIdentifier(int decimals)

      the result value is an identifier corresponding to the value of the decimals parameter.
      Parameters:
        `decimals` - an integer corresponding to the desired rounding
      Returns:
        string for an existing or new identifier for the indicated decimals

    - #### delRuleMap

          public void delRuleMap(java.lang.String identifier)

      Removes a rule mapping using the rule identifier key.
      Parameters:
        `identifier` - the identifier

    - #### deleteRegion

          public void deleteRegion(Region region)

      Removes all mappings to a cell inside the Region region
      Parameters:
        `region` - the region

    - #### moveRegion

          public void moveRegion(Region region,
                        SheetPoint destination)

      Moves all SheetPoints in the Region region to be mapped according to the new SheetPoint indicated in destination.

      The topLeft SheetPoint in the Region region will be mapped to the SheetPoint at destination. All other points inside the region will be mapped to a point in the destination with the same displacement in the rows and columns as the original point has in the source region and the origin of the region (top left coordinates of the region).

      Parameters:
        `region` - the region
        `destination` - the destination

    - #### addMap

          public void addMap(java.lang.String identifier,
                    java.lang.String cell,
                    java.util.Properties props)

      Adds a new map item to the map (or replaces an existing map if one already exist for the same mapId and cell).
      Parameters:
        `identifier` - String (part of the map key)
        `cell` - String (part of the map key)
        `props` - Properties these are properties for the new map element. they are not part of the key

        "mult" property as double or string, multiplier for this cell. if null defaults to 1.
        "exactMode" property as string, constant string "decimals" or "precision", if null, "decimals" will be used.
        "exactModeValue" property as string, "INF", "mult", or an integer (positive or negative). see the XBRL 2.1 specification
        "zeroValue" property as string, "blankCell" or "passZeroValue": indicating if the cell value will be ignored when it is zero or if the cell value will be passed through
        "method" property as string, "cellContent" or "readFile": indicating how to process the cell content. default is "cellContent". "note" property as string, "cell" this is the cell where there are notes for this element "noteLang" property as string, this is the language for the note being added "round" property as string, this is the id of the rounding information. null or empty to use default rounding

    - #### getDefaultZeroValuePolicyType

          public com.ihr.xbrl.mapper.source.worksheet.AbstractWorksheetDataSource.ZeroValuePolicyType getDefaultZeroValuePolicyType()

      Gets the default zero value policy type.
      Returns:
        the defined default value for ZeroPolicy

    - #### setDefaultZeroValuePolicyType

          public void setDefaultZeroValuePolicyType(com.ihr.xbrl.mapper.source.worksheet.AbstractWorksheetDataSource.ZeroValuePolicyType newValue)

      Sets the default zero value policy type.
      Parameters:
        `newValue` - ZeroValuePolicyType Enum the new value to set

    - #### setDefaultRounding

          public void setDefaultRounding(java.lang.String cell)

      Sets the default rounding cell to the cell indicated or removes default rounding if the cell parameter is null.
      Parameters:
        `cell` - the new default rounding

    - #### removeMap

          public void removeMap(java.lang.String identifier,
                       java.lang.String cell)

      Removes a map from the internal collection.
      Parameters:
        `identifier` - the identifier
        `cell` - the cell

    - #### getRuleCells

          public java.lang.String[] getRuleCells(java.lang.String identifier)

      Obtains an array of cells connected with the rule identified by the identifier used as parameter.
      Parameters:
        `identifier` - String
      Returns:
        String[] with

    - #### getMult

          public double getMult(java.lang.String identifier,
                       java.lang.Object dataLocator)

      Description copied from interface: `HasMult`
      A driver implementing this interface has a method to obtain the multiplication factor of the incoming value in order to obtain the XBRL fact value.
      Specified by:
        `getMult` in interface `HasMult`
      Parameters:
        `identifier` - this is the Map Identifier for a fact in the template file
        `dataLocator` - this is provided by the driver
      Returns:
        this is the multiplier

    - #### getMult

          public double getMult(java.lang.String identifier,
                       java.lang.String cell)

      Returns the mult value used for a specified identifier and cell.
      Parameters:
        `identifier` - string mapIdentifier
        `cell` - string cell address
      Returns:
        double or 0.0 if not found
      Since:
        2.6.10

    - #### getExactMode

          public java.lang.String getExactMode(java.lang.String identifier,
                                      java.lang.String cell)

      Returns the exactMode value for a specified identifier and cell.
      Parameters:
        `identifier` - string mapIdentifier
        `cell` - string cell address
      Returns:
        string or null if null is set
      Since:
        2.6.10

    - #### getExactModeValue

          public java.lang.String getExactModeValue(java.lang.String identifier,
                                           java.lang.String cell)

      Returns the exactMode value for a specified identifier and cell.
      Parameters:
        `identifier` - string mapIdentifier
        `cell` - string cell address
      Returns:
        string or null if null is set
      Since:
        2.6.10

    - #### getRoundMode

          public java.lang.String getRoundMode(java.lang.String identifier,
                                      java.lang.String cell)

      Returns the identifier of the round information for a specified identifier and cell.
      Parameters:
        `identifier` - string mapIdentifier
        `cell` - string cell address
      Returns:
        string or null if default rounding applies
      Since:
        2.8.4

    - #### getRound

          public int getRound(java.lang.String identifier)

      Returns the rounding value for the indicated rounding identifier.
      Parameters:
        `identifier` - the rounding identifier
      Returns:
        the rounding value or Integer.MIN_VALUE if not set or cannot be found

    - #### getMapIterator

          public java.util.Iterator<java.lang.Integer> getMapIterator()

      Gets the map iterator.
      Returns:
        the map iterator

    - #### getMapId

          public java.lang.String getMapId(int index)

      Gets the map id.
      Parameters:
        `index` - the index
      Returns:
        the map id

    - #### endOfDocument

          public void endOfDocument(XBRLInstance instance)

      Description copied from interface: `XBRLDataSource`
      Called by the MapEngine when a new instance is finished Can be used to close connections to data sources.
      Specified by:
        `endOfDocument` in interface `XBRLDataSource`
      Parameters:
        `instance` - XBRLInstance

    - #### getConfigFile

          public java.net.URI getConfigFile()

      Description copied from interface: `XBRLDataSource`
      Access to the name of the configuration file.
      Specified by:
        `getConfigFile` in interface `XBRLDataSource`
      Returns:
        URI of the configuration file or null if not needed or not set

    - #### setConfigFile

          public void setConfigFile(java.net.URI configFile)

      Description copied from interface: `XBRLDataSource`
      Sets the configuration file for this XBRLDataSource. If the driver requires no configuration file the argument configFile is null
      Specified by:
        `setConfigFile` in interface `XBRLDataSource`
      Parameters:
        `configFile` - the new config file

    - #### getHistoricalMessage

          public java.lang.String getHistoricalMessage()

      Description copied from interface: `HasSomethingToSay`
      This is the method that must be implemented by classes that provides historical information.
      Specified by:
        `getHistoricalMessage` in interface `HasSomethingToSay`
      Returns:
        String text message

    - #### getSourceReference

          public java.lang.String getSourceReference(java.lang.String mapIdentifier,
                                            int index,
                                            XBRLContext localContext,
                                            net.sf.saxon.type.SimpleType theType)

      Description copied from interface: `XBRLDataSource`
      Returns a string that describes the source of data for a specific mapIdentifier, index, localContext and data type

      This method is used in order to build an error message that takes into consideration where the data comes from so the user can better track the path the data is following inside the tools.

      Specified by:
        `getSourceReference` in interface `XBRLDataSource`
      Parameters:
        `mapIdentifier` - current map identifier
        `index` - current index for the map identifier
        `localContext` - XBRL context for the generated fact
        `theType` - data type as SimpleType
      Returns:
        String with target description

    - #### init

          public void init()
                    throws MapConfigurationFileException

      Description copied from interface: `XBRLDataSource`
      Called by the mapping engine once the object is created. Allows the driver to read the configuration file for the driver.
      Specified by:
        `init` in interface `XBRLDataSource`
      Throws:
        `MapConfigurationFileException` - the map configuration file exception