com.qrmedia.commons.multispi.config
Class MultiSpiBuilder

java.lang.Object
  extended by com.qrmedia.commons.multispi.config.MultiSpiBuilder
All Implemented Interfaces:
com.google.common.base.Supplier<MultiSpi>

@NotThreadSafe
public final class MultiSpiBuilder
extends Object
implements com.google.common.base.Supplier<MultiSpi>

Convenience helper to construct a MultiSpi instance with a desired configuration.

Since:
4 Dec 2010
Author:
aphillips

Constructor Summary
MultiSpiBuilder()
           
 
Method Summary
 MultiSpi build()
          Builds the prepared MultiSpi instance.
 MultiSpi get()
          Gets the prepared MultiSpi instance.
 MultiSpiBuilder withAnnotationScanning(Class<? extends Annotation> markerAnnotation, String basePackage)
          Adds support for marker annotation scanning to the MultiSpi instance being built.
 MultiSpiBuilder withDefaults()
          Adds default SPI support, i.e.
 MultiSpiBuilder withManifestServiceClassnameAttributeScanning()
          Adds support for manifest service attribute scanning to the MultiSpi instance being built.
 MultiSpiBuilder withMetaInfServicesScanning()
          Adds support for "vanilla" META-INF/services scanning to the MultiSpi instance being built.
 MultiSpiBuilder withProviders(ServiceImplementationProvider... providers)
          Adds the given providers to the providers for the MultiSpi instance being built.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MultiSpiBuilder

public MultiSpiBuilder()
Method Detail

withDefaults

public MultiSpiBuilder withDefaults()
Adds default SPI support, i.e. "vanilla" META-INF/services scanning, to the MultiSpi instance being built.

Returns:
this builder

withMetaInfServicesScanning

public MultiSpiBuilder withMetaInfServicesScanning()
Adds support for "vanilla" META-INF/services scanning to the MultiSpi instance being built.

Returns:
this builder

withAnnotationScanning

public MultiSpiBuilder withAnnotationScanning(@Nonnull
                                              Class<? extends Annotation> markerAnnotation,
                                              @Nonnull
                                              String basePackage)
Adds support for marker annotation scanning to the MultiSpi instance being built.

Returns:
this builder

withManifestServiceClassnameAttributeScanning

public MultiSpiBuilder withManifestServiceClassnameAttributeScanning()
Adds support for manifest service attribute scanning to the MultiSpi instance being built.

Returns:
this builder

withProviders

public MultiSpiBuilder withProviders(ServiceImplementationProvider... providers)
Adds the given providers to the providers for the MultiSpi instance being built.

Implementation note: as the providers are stored in a set, the implementation of hashCode() and equals(Object) will determine whether duplicate providers are present.

Parameters:
providers - the providers to be added
Returns:
this builder

build

public MultiSpi build()
Builds the prepared MultiSpi instance.

Returns:
the prepared MultiSpi instance

get

public MultiSpi get()
Gets the prepared MultiSpi instance.

Specified by:
get in interface com.google.common.base.Supplier<MultiSpi>
Returns:
see build()


Copyright © 2011 qrmedia. All Rights Reserved.