org.apache.isis.progmodels.dflt
Class JavaReflectorInstaller

java.lang.Object
  extended by org.apache.isis.core.commons.config.InstallerAbstract
      extended by org.apache.isis.progmodels.dflt.JavaReflectorInstaller
All Implemented Interfaces:
org.apache.isis.core.commons.components.ApplicationScopedComponent, org.apache.isis.core.commons.components.Component, org.apache.isis.core.commons.components.Installer, org.apache.isis.core.commons.config.IsisConfigurationBuilderAware, org.apache.isis.core.metamodel.specloader.ObjectReflectorInstaller, org.apache.isis.runtimes.dflt.runtime.installerregistry.InstallerLookupAware

public class JavaReflectorInstaller
extends org.apache.isis.core.commons.config.InstallerAbstract
implements org.apache.isis.core.metamodel.specloader.ObjectReflectorInstaller, org.apache.isis.runtimes.dflt.runtime.installerregistry.InstallerLookupAware


Field Summary
static String PROPERTY_BASE
           
 
Fields inherited from interface org.apache.isis.core.metamodel.specloader.ObjectReflectorInstaller
TYPE
 
Constructor Summary
JavaReflectorInstaller()
           
JavaReflectorInstaller(String name)
           
 
Method Summary
 void addFacetDecoratorInstaller(org.apache.isis.core.metamodel.specloader.FacetDecoratorInstaller decoratorInstaller)
          Adds in FacetDecoratorInstaller; if null or if already added then request will be silently ignored.
protected  org.apache.isis.core.metamodel.specloader.classsubstitutor.ClassSubstitutor createClassSubstitutor(org.apache.isis.core.commons.config.IsisConfiguration configuration)
          Hook method to allow subclasses to specify a different implementation of ClassSubstitutor.
protected  org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry createCollectionTypeRegistry(org.apache.isis.core.commons.config.IsisConfiguration configuration)
          Creates the CollectionTypeRegistry, hardcoded to be the CollectionTypeRegistryDefault.
protected  Set<org.apache.isis.core.metamodel.facetdecorator.FacetDecorator> createFacetDecorators(org.apache.isis.core.commons.config.IsisConfiguration configuration)
          Hook method to allow subclasses to specify a different sets of FacetDecorators.
protected  org.apache.isis.core.metamodel.layout.MemberLayoutArranger createMemberLayoutArranger(org.apache.isis.core.commons.config.IsisConfiguration configuration)
          Hook method to allow subclasses to specify a different implementation of MemberLayoutArranger.
protected  org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator createMetaModelValidator(org.apache.isis.core.commons.config.IsisConfiguration configuration)
          Hook method to allow subclasses to specify a different implementation of MetaModelValidator.
protected  org.apache.isis.core.metamodel.progmodel.ProgrammingModel createProgrammingModelFacets(org.apache.isis.core.commons.config.IsisConfiguration configuration)
          Hook method to allow subclasses to specify a different implementations (that is, sets of ProgrammingModel .
 org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault createReflector()
          Should call #addFacetDecoratorInstaller(ReflectorDecoratorInstaller) prior to calling this.
protected  org.apache.isis.core.metamodel.specloader.traverser.SpecificationTraverser createSpecificationTraverser(org.apache.isis.core.commons.config.IsisConfiguration configuration)
          Hook method to allow subclasses to specify a different implementation of SpecificationTraverser.
protected  org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault doCreateReflector(org.apache.isis.core.commons.config.IsisConfiguration configuration, org.apache.isis.core.metamodel.specloader.classsubstitutor.ClassSubstitutor classSubstitutor, org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry collectionTypeRegistry, org.apache.isis.core.metamodel.specloader.traverser.SpecificationTraverser specificationTraverser, org.apache.isis.core.metamodel.layout.MemberLayoutArranger memberLayoutArranger, org.apache.isis.core.metamodel.progmodel.ProgrammingModel programmingModel, Set<org.apache.isis.core.metamodel.facetdecorator.FacetDecorator> facetDecorators, org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator metaModelValidator)
          Hook method to allow for other implementations (still based on ObjectReflectorDefault).
protected  void excludeFacetFactories(org.apache.isis.core.commons.config.IsisConfiguration configuration, org.apache.isis.core.metamodel.progmodel.ProgrammingModel programmingModel)
          Factored out of createProgrammingModelFacets(IsisConfiguration) so that subclasses that choose to override can still support customization of their ProgrammingModel in a similar way.
 List<Class<?>> getTypes()
           
protected  void includeFacetFactories(org.apache.isis.core.commons.config.IsisConfiguration configuration, org.apache.isis.core.metamodel.progmodel.ProgrammingModel programmingModel)
          Factored out of createProgrammingModelFacets(IsisConfiguration) so that subclasses that choose to override can still support customization of their ProgrammingModel in a similar way.
 void setInstallerLookup(org.apache.isis.runtimes.dflt.runtime.installerregistry.InstallerLookup installerLookup)
          Injected by virtue of being InstallerLookupAware.
 
Methods inherited from class org.apache.isis.core.commons.config.InstallerAbstract
addConfigurationResources, getConfiguration, getConfigurationResources, getName, getType, init, listOf, listOf, setConfiguration, setConfigurationBuilder, shutdown
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.isis.core.commons.components.Installer
getConfigurationResources, getName, getType
 
Methods inherited from interface org.apache.isis.core.commons.components.ApplicationScopedComponent
init, shutdown
 

Field Detail

PROPERTY_BASE

public static final String PROPERTY_BASE
See Also:
Constant Field Values
Constructor Detail

JavaReflectorInstaller

public JavaReflectorInstaller()

JavaReflectorInstaller

public JavaReflectorInstaller(String name)
Method Detail

createReflector

public org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault createReflector()
Should call #addFacetDecoratorInstaller(ReflectorDecoratorInstaller) prior to calling this.

Specified by:
createReflector in interface org.apache.isis.core.metamodel.specloader.ObjectReflectorInstaller

createClassSubstitutor

protected org.apache.isis.core.metamodel.specloader.classsubstitutor.ClassSubstitutor createClassSubstitutor(org.apache.isis.core.commons.config.IsisConfiguration configuration)
Hook method to allow subclasses to specify a different implementation of ClassSubstitutor.

By default, looks up implementation from provided IsisConfiguration using ReflectorConstants.CLASS_SUBSTITUTOR_CLASS_NAME_LIST. If not specified, then defaults to .


createSpecificationTraverser

protected org.apache.isis.core.metamodel.specloader.traverser.SpecificationTraverser createSpecificationTraverser(org.apache.isis.core.commons.config.IsisConfiguration configuration)
Hook method to allow subclasses to specify a different implementation of SpecificationTraverser.

By default, looks up implementation from provided IsisConfiguration using ReflectorConstants.SPECIFICATION_TRAVERSER_CLASS_NAME. If not specified, then defaults to .


createMemberLayoutArranger

protected org.apache.isis.core.metamodel.layout.MemberLayoutArranger createMemberLayoutArranger(org.apache.isis.core.commons.config.IsisConfiguration configuration)
Hook method to allow subclasses to specify a different implementation of MemberLayoutArranger.

By default, looks up implementation from provided IsisConfiguration using ReflectorConstants.MEMBER_LAYOUT_ARRANGER_CLASS_NAME. If not specified, then defaults to .


createProgrammingModelFacets

protected org.apache.isis.core.metamodel.progmodel.ProgrammingModel createProgrammingModelFacets(org.apache.isis.core.commons.config.IsisConfiguration configuration)
Hook method to allow subclasses to specify a different implementations (that is, sets of ProgrammingModel .

By default, looks up implementation from provided IsisConfiguration using ReflectorConstants.PROGRAMMING_MODEL_FACETS_CLASS_NAME. If not specified, then defaults to .

The list of facets can be adjusted using ReflectorConstants.FACET_FACTORY_INCLUDE_CLASS_NAME_LIST to specify additional factories to include, and ReflectorConstants.FACET_FACTORY_EXCLUDE_CLASS_NAME_LIST to exclude.


includeFacetFactories

protected void includeFacetFactories(org.apache.isis.core.commons.config.IsisConfiguration configuration,
                                     org.apache.isis.core.metamodel.progmodel.ProgrammingModel programmingModel)
Factored out of createProgrammingModelFacets(IsisConfiguration) so that subclasses that choose to override can still support customization of their ProgrammingModel in a similar way.


excludeFacetFactories

protected void excludeFacetFactories(org.apache.isis.core.commons.config.IsisConfiguration configuration,
                                     org.apache.isis.core.metamodel.progmodel.ProgrammingModel programmingModel)
Factored out of createProgrammingModelFacets(IsisConfiguration) so that subclasses that choose to override can still support customization of their ProgrammingModel in a similar way.


createFacetDecorators

protected Set<org.apache.isis.core.metamodel.facetdecorator.FacetDecorator> createFacetDecorators(org.apache.isis.core.commons.config.IsisConfiguration configuration)
Hook method to allow subclasses to specify a different sets of FacetDecorators.

By default, returns the FacetDecorators that are specified in the IsisConfiguration (using ReflectorConstants.FACET_DECORATOR_CLASS_NAMES) along with any FacetDecorators explicitly registered using addFacetDecoratorInstaller(FacetDecoratorInstaller). created using the FacetDecoratorInstallers.


createMetaModelValidator

protected org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator createMetaModelValidator(org.apache.isis.core.commons.config.IsisConfiguration configuration)
Hook method to allow subclasses to specify a different implementation of MetaModelValidator.

By default, looks up implementation from provided IsisConfiguration using ReflectorConstants.META_MODEL_VALIDATOR_CLASS_NAME. If not specified, then defaults to .


createCollectionTypeRegistry

protected final org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry createCollectionTypeRegistry(org.apache.isis.core.commons.config.IsisConfiguration configuration)
Creates the CollectionTypeRegistry, hardcoded to be the CollectionTypeRegistryDefault.

Note: the intention is to remove this interface and instead to use a mechanism similar to the @Value annotation to specify which types represent collections. For now, have factored out this method similar to be similar to the creation methods of other subcomponents such as the ClassSubstitutor. Note however that this method is final so that it cannot be overridden.


doCreateReflector

protected org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault doCreateReflector(org.apache.isis.core.commons.config.IsisConfiguration configuration,
                                                                                             org.apache.isis.core.metamodel.specloader.classsubstitutor.ClassSubstitutor classSubstitutor,
                                                                                             org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry collectionTypeRegistry,
                                                                                             org.apache.isis.core.metamodel.specloader.traverser.SpecificationTraverser specificationTraverser,
                                                                                             org.apache.isis.core.metamodel.layout.MemberLayoutArranger memberLayoutArranger,
                                                                                             org.apache.isis.core.metamodel.progmodel.ProgrammingModel programmingModel,
                                                                                             Set<org.apache.isis.core.metamodel.facetdecorator.FacetDecorator> facetDecorators,
                                                                                             org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator metaModelValidator)
Hook method to allow for other implementations (still based on ObjectReflectorDefault).


setInstallerLookup

public void setInstallerLookup(org.apache.isis.runtimes.dflt.runtime.installerregistry.InstallerLookup installerLookup)
Injected by virtue of being InstallerLookupAware.

Specified by:
setInstallerLookup in interface org.apache.isis.runtimes.dflt.runtime.installerregistry.InstallerLookupAware

addFacetDecoratorInstaller

public void addFacetDecoratorInstaller(org.apache.isis.core.metamodel.specloader.FacetDecoratorInstaller decoratorInstaller)
Adds in FacetDecoratorInstaller; if null or if already added then request will be silently ignored.

Specified by:
addFacetDecoratorInstaller in interface org.apache.isis.core.metamodel.specloader.ObjectReflectorInstaller

getTypes

public List<Class<?>> getTypes()
Specified by:
getTypes in interface org.apache.isis.core.commons.components.Installer


Copyright © 2010-2011 The Apache Software Foundation. All Rights Reserved.