Conf2ScopeMappingContainer (Gradle API 2.14.1)
Date: 2016-07-18

Package: org.gradle.api.artifacts.maven

## [Java] Interface Conf2ScopeMappingContainer

- Defines a set of rules for how to map the Gradle dependencies to a POM. This mapping is based on the configuration the dependencies belong to.

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `String` | `COMPILE` |
    `String` | `PROVIDED` |
    `String` | `RUNTIME` |
    `String` | `TEST` |

  - ### Methods Summary

    Methods
    Type | Name and description
    --- | ---
    `Conf2ScopeMappingContainer` | `addMapping(int priority, Configuration configuration, String scope)`
    `Conf2ScopeMapping` | `getMapping(Collection<Configuration> configurations)` Returns a scope that corresponds to the given configurations.
    `Map<Configuration, Conf2ScopeMapping>` | `getMappings()` Returns a map with all the configuration to scope mappings.
    `boolean` | `isSkipUnmappedConfs()` Returns whether unmapped configuration should be skipped or not.
    `void` | `setSkipUnmappedConfs(boolean skipDependenciesWithUnmappedConfiguration)` Sets, whether unmapped configuration should be skipped or not.

- - ### Field Detail

    - #### public String COMPILE

    - #### public String PROVIDED

    - #### public String RUNTIME

    - #### public String TEST

  - ### Method Detail

    - #### public Conf2ScopeMappingContainer addMapping(int priority, Configuration configuration, String scope)

      Specifies that dependencies of a certain configuration should be mapped against a certain Maven scope. A configuration can be mapped to one and only one scope. If this method is called more than once for a particular configuration, the last call wins.

      See getMapping(java.util.Collection) for the rules how a scope is choosen from a set of mappings.
      Parameters:
        `priority` - a number that is used for comparison with the priority of other scopes.
        `configuration` - a Gradle configuration name (must not be null).
        `scope` - A Maven scope name (must not be null)
      Returns:
        this
      See Also:
        getMapping(java.util.Collection)

    - #### public Conf2ScopeMapping getMapping(Collection<Configuration> configurations)

      Returns a scope that corresponds to the given configurations. Dependencies of different configurations can be equal. But only one of those equals dependencies (which might differ in content) can be mapped to a POM (due to the nature of a Maven POM).

      Which scope is returned depends on the existing mappings. See addMapping(int, Configuration, String). If only one configuration is mapped, this mapping is used to choose the scope. If more than one configuration of a dependency is mapped, and those mappings all map to the same scope, this scope is used. If more than one configuration is mapped and the mappings map to different scopes, the mapping with the highest priority is used. If there is more than one mapping with the highest priority and those mappings map to different scopes, an exception is thrown.

      Parameters:
        `configurations` - The configuration
      Returns:
        The scope corresponding to the given configurations. Returns null if no such scope can be found.
      See Also:
        addMapping(int, Configuration, String)

    - #### public Map<Configuration, Conf2ScopeMapping> getMappings()

      Returns a map with all the configuration to scope mappings. If no such mapping has been defined, an empty map is returned.

      See Also:
        addMapping(int, Configuration, String)

    - #### public boolean isSkipUnmappedConfs()

      Returns whether unmapped configuration should be skipped or not. Defaults to true.

      See Also:
        setSkipUnmappedConfs(boolean)

    - #### public void setSkipUnmappedConfs(boolean skipDependenciesWithUnmappedConfiguration)

      Sets, whether unmapped configuration should be skipped or not. If this is set to false, dependencies belonging to unmapped configurations will be added to the Maven POM with no scope specified. This means they belong to the Maven default scope, which is 'compile'.