Package org.apache.sling.feature.maven.mojos.apis

# Class RegionSupport

java.lang.Object
org.apache.sling.feature.maven.mojos.apis.RegionSupport

public class RegionSupport extends Object

## Constructor Summary

Constructors
Constructor
Description
`RegionSupport(org.apache.maven.plugin.logging.Log logger, boolean incrementalApis, boolean toggleApiOnly, Set<String> includeRegions, Set<String> excludeRegions)`

## Method Summary

Modifier and Type
Method
Description
`String`
`calculateOmitDependenciesFlag(org.apache.sling.feature.extension.apiregions.api.ApiRegion region, org.apache.felix.utils.manifest.Clause[] exportedPackageClauses, Set<org.apache.felix.utils.manifest.Clause> usedExportedPackagesPerRegion)`
Calculate whether the artifact can be omitted and a dependency can be used instead
`Set<String>`
`computeAllUsedExportPackages(org.apache.sling.feature.extension.apiregions.api.ApiRegions apiRegions, Set<String> enabledToggles, org.apache.felix.utils.manifest.Clause[] exportedPackages, org.apache.sling.feature.Artifact bundle)`
Compute exports based on all regions
`Set<org.apache.felix.utils.manifest.Clause>`
`computeUsedExportPackagesPerRegion(org.apache.sling.feature.extension.apiregions.api.ApiRegion apiRegion, org.apache.felix.utils.manifest.Clause[] exportedPackages, Set<String> allPackages)`
Compute exports based on a single region
`List<org.apache.sling.feature.extension.apiregions.api.ApiExport>`
`getAllExports(org.apache.sling.feature.extension.apiregions.api.ApiRegion region, Set<String> enabledToggles)`
`Set<org.apache.felix.utils.manifest.Clause>`
`getAllPublicPackages(ApisJarContext ctx, org.apache.sling.feature.Artifact artifact, File artifactFile)`
Get all packages for an artifact.
`org.apache.sling.feature.extension.apiregions.api.ApiRegions`
`getApiRegions(org.apache.sling.feature.Feature feature)`
Get the api regions for a feature If the feature does not have an api region an artificial global region is returned.
`org.apache.felix.utils.manifest.Clause[]`
`getExportedPackages(Manifest manifest)`
`Manifest`
`getManifest(org.apache.sling.feature.ArtifactId artifactId, File bundleFile)`

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

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

## Constructor Details

### RegionSupport

public RegionSupport(org.apache.maven.plugin.logging.Log logger, boolean incrementalApis, boolean toggleApiOnly, Set<String> includeRegions, Set<String> excludeRegions)

## Method Details

### getApiRegions

public org.apache.sling.feature.extension.apiregions.api.ApiRegions getApiRegions(org.apache.sling.feature.Feature feature) throws org.apache.maven.plugin.MojoExecutionException
Get the api regions for a feature If the feature does not have an api region an artificial global region is returned.

Parameters:
  `feature` - The feature
Returns:
  The api regions or `null` if the feature is wrongly configured or all regions are excluded
Throws:
  `org.apache.maven.plugin.MojoExecutionException` - If an error occurs

### getAllExports

public List<org.apache.sling.feature.extension.apiregions.api.ApiExport> getAllExports(org.apache.sling.feature.extension.apiregions.api.ApiRegion region, Set<String> enabledToggles)

### computeAllUsedExportPackages

public Set<String> computeAllUsedExportPackages(org.apache.sling.feature.extension.apiregions.api.ApiRegions apiRegions, Set<String> enabledToggles, org.apache.felix.utils.manifest.Clause[] exportedPackages, org.apache.sling.feature.Artifact bundle) throws org.apache.maven.plugin.MojoExecutionException
Compute exports based on all regions

Parameters:
  `apiRegions` - The API Regions to use
  `enabledToggles` - The enabled toggles
  `exportedPackages` - The exported packages
  `bundle` - The bundle
Returns:
  Set of packages exported by this bundle and used in any region
Throws:
  `org.apache.maven.plugin.MojoExecutionException` - when the calculation cannot be made

### computeUsedExportPackagesPerRegion

public Set<org.apache.felix.utils.manifest.Clause> computeUsedExportPackagesPerRegion(org.apache.sling.feature.extension.apiregions.api.ApiRegion apiRegion, org.apache.felix.utils.manifest.Clause[] exportedPackages, Set<String> allPackages) throws org.apache.maven.plugin.MojoExecutionException
Compute exports based on a single region

Parameters:
  `apiRegion` - The API Region to use
  `exportedPackages` - The exported packages
  `allPackages` - All the packages
Returns:
  List of packages exported by this bundle and used in the region
Throws:
  `org.apache.maven.plugin.MojoExecutionException` - When the computation cannot be done.

### getExportedPackages

public org.apache.felix.utils.manifest.Clause[] getExportedPackages(Manifest manifest)

### getManifest

public Manifest getManifest(org.apache.sling.feature.ArtifactId artifactId, File bundleFile) throws org.apache.maven.plugin.MojoExecutionException

Throws:
  `org.apache.maven.plugin.MojoExecutionException`

### getAllPublicPackages

public Set<org.apache.felix.utils.manifest.Clause> getAllPublicPackages(ApisJarContext ctx, org.apache.sling.feature.Artifact artifact, File artifactFile) throws org.apache.maven.plugin.MojoExecutionException
Get all packages for an artifact. If the artifact is a bundle use the export header, otherwise scan contents

Parameters:
  `ctx` - The generation context
  `artifact` - The artifact
  `artifactFile` - The file
Returns:
  A set of clauses
Throws:
  `org.apache.maven.plugin.MojoExecutionException` - If processing fails

### calculateOmitDependenciesFlag

public String calculateOmitDependenciesFlag(org.apache.sling.feature.extension.apiregions.api.ApiRegion region, org.apache.felix.utils.manifest.Clause[] exportedPackageClauses, Set<org.apache.felix.utils.manifest.Clause> usedExportedPackagesPerRegion)
Calculate whether the artifact can be omitted and a dependency can be used instead

Parameters:
  `region` - The api region
  `exportedPackageClauses` - All exported packages
  `usedExportedPackagesPerRegion` - Used exported packages
Returns:
  `null` if the artifact can be used as a dependency