/* * Copyright (c) 2011-2012 EMC Corporation * All Rights Reserved */ package com.emc.storageos.cimadapter.connections.celerra; // StorageOS imports import com.emc.storageos.cimadapter.connections.cim.CimConnection; import com.emc.storageos.cimadapter.connections.cim.CimConnectionInfo; import com.emc.storageos.cimadapter.connections.cim.CimConstants; import com.emc.storageos.cimadapter.connections.cim.CimFilterMap; import com.emc.storageos.cimadapter.connections.cim.CimListener; import com.emc.storageos.cimadapter.processors.CelerraIndicationProcessor; import com.emc.storageos.cimadapter.processors.CimIndicationProcessor; /** * Represents an ECOM connection to a CIM Provider. Essentially a CIM connection * but with special processing for ECOM indications. */ public class CelerraConnection extends CimConnection { // The list of message specifications for Celerra connections. private static volatile CelerraMessageSpecList s_messageSpecs; /** * Constructs a Celerra connection. * * @param connectionInfo The bean containing the connection information. * @param listener The CIM indication listener for this connection. * @param filterMap The indication filters to be subscribed for this * connection. * @param messageSpecs The list of Celerra message specifications from the * connection manager configuration. */ public CelerraConnection(CimConnectionInfo connectionInfo, CimListener listener, CimFilterMap filterMap, CelerraMessageSpecList messageSpecs) throws Exception { super(connectionInfo, listener, filterMap); s_messageSpecs = messageSpecs; } /** * Getter for the Celera message specifications for Celerra connections. * * @return The Celera message specifications for Celerra connections. */ public CelerraMessageSpecList getMessageSpecs() { return s_messageSpecs; } @Override /** * {@inheritDoc} */ public String getConnectionType() { return CimConstants.ECOM_FILE_CONNECTION_TYPE; } @Override /** * {@inheritDoc} */ protected CimIndicationProcessor getDefaultIndicationProcessor() { if (_dfltIndicationProcessor == null) { _dfltIndicationProcessor = new CelerraIndicationProcessor(this); } return _dfltIndicationProcessor; } }