001/**
002 *  Licensed to the Apache Software Foundation (ASF) under one or more
003 *  contributor license agreements.  See the NOTICE file distributed with
004 *  this work for additional information regarding copyright ownership.
005 *  The ASF licenses this file to You under the Apache License, Version 2.0
006 *  (the "License"); you may not use this file except in compliance with
007 *  the License.  You may obtain a copy of the License at
008 *
009 *     http://www.apache.org/licenses/LICENSE-2.0
010 *
011 *  Unless required by applicable law or agreed to in writing, software
012 *  distributed under the License is distributed on an "AS IS" BASIS,
013 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 *  See the License for the specific language governing permissions and
015 *  limitations under the License.
016 */
017package org.apache.isis.core.metamodel.spec.feature;
018
019import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
020import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
021import org.apache.isis.core.metamodel.adapter.ServicesProvider;
022import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
023import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
024import org.apache.isis.core.metamodel.spec.SpecificationLoader;
025import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
026
027public class ObjectMemberContext {
028
029    private final DeploymentCategory deploymentCategory;
030    private final AuthenticationSessionProvider authenticationSessionProvider;
031    private final SpecificationLoader specificationLookup;
032    private final AdapterManager adapterManager;
033    private final QuerySubmitter querySubmitter;
034    private final CollectionTypeRegistry collectionTypeRegistry;
035    private final ServicesProvider servicesProvider;
036
037    public ObjectMemberContext(
038            final DeploymentCategory deploymentCategory, 
039            final AuthenticationSessionProvider authenticationSessionProvider, 
040            final SpecificationLoader specificationLookup, 
041            final AdapterManager adapterManager, 
042            final QuerySubmitter querySubmitter, 
043            final CollectionTypeRegistry collectionTypeRegistry,
044            final ServicesProvider servicesProvider) {
045
046        this.deploymentCategory = deploymentCategory;
047        this.authenticationSessionProvider = authenticationSessionProvider;
048        this.specificationLookup = specificationLookup;
049        this.adapterManager = adapterManager;
050        this.querySubmitter = querySubmitter;
051        this.collectionTypeRegistry = collectionTypeRegistry;
052        this.servicesProvider = servicesProvider;
053    }
054
055    public DeploymentCategory getDeploymentCategory() {
056        return deploymentCategory;
057    }
058    
059    public AuthenticationSessionProvider getAuthenticationSessionProvider() {
060        return authenticationSessionProvider;
061    }
062
063    public SpecificationLoader getSpecificationLookup() {
064        return specificationLookup;
065    }
066
067    public AdapterManager getAdapterManager() {
068        return adapterManager;
069    }
070
071    public ServicesProvider getServicesProvider() {
072        return servicesProvider;
073    }
074    
075    public QuerySubmitter getQuerySubmitter() {
076        return querySubmitter;
077    }
078
079    public CollectionTypeRegistry getCollectionTypeRegistry() {
080        return collectionTypeRegistry;
081    }
082}