Package org.apache.sling.serviceusermapping

## Class Mapping

- java.lang.Object
- - org.apache.sling.serviceusermapping.Mapping

All Implemented Interfaces:
  `Comparable<Mapping>`

    public class Mapping
    extends Object
    implements Comparable<Mapping>

The `Mapping` class defines the mapping of a service's name and optional service information to a user name and optionally to a set of principal names.

### Field Summary

Fields
`static String` `SERVICENAME` The name of the osgi property holding the service name.

### Constructor Summary

Constructors
`Mapping​(String spec)` Creates a mapping entry for the entry specification of the form:

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`int` `compareTo​(Mapping o)`
`static Set<String>` `extractPrincipalNames​(String s)`
`String` `getServiceName()`
`String` `getSubServiceName()`
`String` `map​(String serviceName, String subServiceName)` Returns the user name if the `serviceName` and the `serviceInfo` match and a single user name is configured (in contrast to a set of principal names).
`Iterable<String>` `mapPrincipals​(String serviceName, String subServiceName)` Returns the principal names if the `serviceName` and the `serviceInfo` match and principal names have been configured.
`String` `toString()`

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

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### SERVICENAME

    public static String SERVICENAME

The name of the osgi property holding the service name.

### Constructor Detail

#### Mapping

    public Mapping​(String spec)

Creates a mapping entry for the entry specification of the form:

     spec = serviceName [ ":" subServiceName ] "=" userName | "[" principalNames "]"
     principalNames = principalName ["," principalNames]

Parameters:
  `spec` - The mapping specification.
Throws:
  `NullPointerException` - if `spec` is `null`.
  `IllegalArgumentException` - if `spec` does not match the expected pattern.

### Method Detail

#### extractPrincipalNames

    public static Set<String> extractPrincipalNames​(String s)

#### map

    public String map​(String serviceName,
                      String subServiceName)

Returns the user name if the `serviceName` and the `serviceInfo` match and a single user name is configured (in contrast to a set of principal names). Otherwise `null` is returned.

Parameters:
  `serviceName` - The name of the service to match. If this is `null` this mapping will not match.
  `subServiceName` - The Subservice Name to match. This may be `null`.
Returns:
  The user name if this mapping matches and the configuration doesn't specify a set of principal names; `null` otherwise.

#### mapPrincipals

    public Iterable<String> mapPrincipals​(String serviceName,
                                          String subServiceName)

Returns the principal names if the `serviceName` and the `serviceInfo` match and principal names have been configured. Otherwise `null` is returned. If no principal names are configured `map(String, String)` needs to be used instead.

Parameters:
  `serviceName` - The name of the service to match. If this is `null` this mapping will not match.
  `subServiceName` - The Subservice Name to match. This may be `null`.
Returns:
  An iterable of principals names this mapping matches and the configuration does specify a set of principal names (intstead of a single user name); `null` otherwise.

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`

#### getServiceName

    public String getServiceName()

#### getSubServiceName

    public String getSubServiceName()

#### compareTo

    public int compareTo​(Mapping o)

Specified by:
  `compareTo` in interface `Comparable<Mapping>`