/* * ome.logic.AbstractLevel2Service * * Copyright 2006 University of Dundee. All rights reserved. * Use is subject to license terms supplied in LICENSE.txt */ /*------------------------------------------------------------------------------ * * Written by: Josh Moore <josh.moore@gmx.de> * *------------------------------------------------------------------------------ */ package ome.logic; import ome.api.local.LocalQuery; import ome.api.local.LocalUpdate; import ome.security.SecuritySystem; import ome.services.query.QueryFactory; import ome.services.util.BeanHelper; import ome.system.SelfConfigurableService; import ome.tools.hibernate.ExtendedMetadata; /** * service level 2 * * @author Josh Moore, <a href="mailto:josh.moore@gmx.de">josh.moore@gmx.de</a> * @version 1.0 <small> (<b>Internal version:</b> $Rev$ $Date$) </small> * @since OMERO 3.0 */ public abstract class AbstractLevel2Service implements SelfConfigurableService { private transient BeanHelper beanHelper = new BeanHelper(this.getClass()); protected transient LocalUpdate iUpdate; protected transient LocalQuery iQuery; protected transient QueryFactory queryFactory; protected transient SecuritySystem sec; protected transient ExtendedMetadata metadata; // ~ Selfconfiguration (injection) for Non-JavaEE // ========================================================================= /** * This method was previously called by the EJB container, * but is no longer needed. Instead, all configuration happens * within Spring. */ public void selfConfigure() { getBeanHelper().configure(this); } protected BeanHelper getBeanHelper() { if (beanHelper == null) { beanHelper = new BeanHelper(this.getClass()); } return beanHelper; } public final void setUpdateService(LocalUpdate update) { getBeanHelper().throwIfAlreadySet(this.iUpdate, update); this.iUpdate = update; } public final void setQueryFactory(QueryFactory qFactory) { getBeanHelper().throwIfAlreadySet(this.queryFactory, qFactory); this.queryFactory = qFactory; } public final void setQueryService(LocalQuery query) { getBeanHelper().throwIfAlreadySet(this.iQuery, query); this.iQuery = query; } public final void setSecuritySystem(SecuritySystem secSys) { getBeanHelper().throwIfAlreadySet(this.sec, secSys); this.sec = secSys; } public final void setExtendedMetadata(ExtendedMetadata em) { getBeanHelper().throwIfAlreadySet(this.metadata, em); this.metadata = em; } public final QueryFactory getQueryFactory() { return this.queryFactory; } public final SecuritySystem getSecuritySystem() { return this.sec; } public final ExtendedMetadata getExtendedMetadata() { return this.metadata; } }