net.officefloor.frame.spi.administration.source.impl
Class AbstractAdministratorSource<I,A extends Enum<A>>

java.lang.Object
  extended by net.officefloor.frame.spi.administration.source.impl.AbstractAdministratorSource<I,A>
All Implemented Interfaces:
AdministratorSource<I,A>
Direct Known Subclasses:
ClassAdministratorSource, TransactionAdministratorSource

public abstract class AbstractAdministratorSource<I,A extends Enum<A>>
extends Object
implements AdministratorSource<I,A>

Abstract AdministratorSource.

Author:
Daniel Sagenschneider

Nested Class Summary
static interface AbstractAdministratorSource.DutyMetaDataContext
          Context for the AdministratorDutyMetaData.
static interface AbstractAdministratorSource.Labeller
          Provides the ability to label the Duty or JobSequence.
static interface AbstractAdministratorSource.MetaDataContext<I,A>
          Context for the AdministratorSource.getMetaData().
static interface AbstractAdministratorSource.SpecificationContext
          Context for the getSpecification().
 
Constructor Summary
AbstractAdministratorSource()
           
 
Method Summary
 AdministratorSourceMetaData<I,A> getMetaData()
           Obtains the meta-data to describe this.
 AdministratorSourceSpecification getSpecification()
           Obtains the specification for this.
 void init(AdministratorSourceContext context)
          Called only once after the AdministratorSource is instantiated.
protected abstract  void loadMetaData(AbstractAdministratorSource.MetaDataContext<I,A> context)
          Overridden to load meta-data.
protected abstract  void loadSpecification(AbstractAdministratorSource.SpecificationContext context)
          Overridden to load specification.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface net.officefloor.frame.spi.administration.source.AdministratorSource
createAdministrator
 

Constructor Detail

AbstractAdministratorSource

public AbstractAdministratorSource()
Method Detail

getSpecification

public AdministratorSourceSpecification getSpecification()
Description copied from interface: AdministratorSource

Obtains the specification for this.

This will be called before any other methods, therefore this method must be able to return the specification immediately after a default constructor instantiation.

Specified by:
getSpecification in interface AdministratorSource<I,A extends Enum<A>>
Returns:
Specification of this.

loadSpecification

protected abstract void loadSpecification(AbstractAdministratorSource.SpecificationContext context)
Overridden to load specification.

Parameters:
context - Specifications.

init

public void init(AdministratorSourceContext context)
          throws Exception
Description copied from interface: AdministratorSource
Called only once after the AdministratorSource is instantiated.

Specified by:
init in interface AdministratorSource<I,A extends Enum<A>>
Parameters:
context - AdministratorSourceContext to initialise this instance of the AdministratorSource.
Throws:
Exception - Should the AdministratorSource fail to configure itself from the input properties.

loadMetaData

protected abstract void loadMetaData(AbstractAdministratorSource.MetaDataContext<I,A> context)
                              throws Exception
Overridden to load meta-data.

Parameters:
context - Meta-data.
Throws:
Exception - If fails to load the meta-data.

getMetaData

public AdministratorSourceMetaData<I,A> getMetaData()
Description copied from interface: AdministratorSource

Obtains the meta-data to describe this.

This is called after the #init(DutyContext) method and therefore may use the configuration.

This should always return non-null. If there is a problem due to incorrect configuration, the AdministratorSource.init(AdministratorSourceContext) should indicate this via an exception.

Specified by:
getMetaData in interface AdministratorSource<I,A extends Enum<A>>
Returns:
Meta-data to describe this.


Copyright © 2005-2013. All Rights Reserved.