/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.masterdb.security.hibernate; import java.util.Date; import com.opengamma.core.security.Security; /** * Partial implementation of BeanOperation for simple cases. * @param <S> the security * @param <H> the Hibernate bean */ public abstract class AbstractSecurityBeanOperation<S extends Security, H extends SecurityBean> implements SecurityBeanOperation<S, H> { /** The Hibernate bean class. */ private final Class<? extends H> _beanClass; /** The security class. */ private final Class<? extends S> _securityClass; /** The security type. */ private final String _securityType; /** * Creates an instance. * @param securityType the security type, not null * @param securityClass the security class, not null * @param beanClass the Hibernate bean class, not null */ protected AbstractSecurityBeanOperation(final String securityType, final Class<? extends S> securityClass, final Class<? extends H> beanClass) { _securityType = securityType; _securityClass = securityClass; _beanClass = beanClass; } //------------------------------------------------------------------------- @Override public Class<? extends H> getBeanClass() { return _beanClass; } @Override public Class<? extends S> getSecurityClass() { return _securityClass; } @Override public String getSecurityType() { return _securityType; } @Override public H resolve(OperationContext context, HibernateSecurityMasterDao secMasterSession, Date now, H bean) { return bean; } @Override public void postPersistBean(OperationContext context, HibernateSecurityMasterDao secMasterSession, Date effectiveDate, H bean) { // No op } }