package gov.hhs.fha.nhinc.subscription.repository; import gov.hhs.fha.nhinc.nhinccomponentsubscriptionrepository.NhincComponentSubscriptionRepositoryPortType; import javax.ejb.Stateless; import javax.jws.WebService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** * Service for the gateway subscription repository. * * @author Neil Webb */ @WebService(serviceName = "NhincComponentSubscriptionRepositoryService", portName = "NhincComponentSubscriptionRepositoryPort", endpointInterface = "gov.hhs.fha.nhinc.nhinccomponentsubscriptionrepository.NhincComponentSubscriptionRepositoryPortType", targetNamespace = "urn:gov:hhs:fha:nhinc:nhinccomponentsubscriptionrepository", wsdlLocation = "META-INF/wsdl/GatewaySubscriptionRepository/NhincComponentSubscriptionRepository.wsdl") @Stateless public class GatewaySubscriptionRepository implements NhincComponentSubscriptionRepositoryPortType { private static Log log = LogFactory.getLog(GatewaySubscriptionRepository.class); public gov.hhs.fha.nhinc.common.subscription.SubscriptionReferenceType storeSubscription(gov.hhs.fha.nhinc.common.subscription.SubscriptionItemType subscriptionItem) { gov.hhs.fha.nhinc.common.subscription.SubscriptionReferenceType subscriptionReference = null; try { subscriptionReference = new SubscriptionRepositoryHelper().storeSubscription(subscriptionItem); } catch(Throwable t) { log.error(t.getMessage(), t); // Return empty reference until fault handling is implemented subscriptionReference = new gov.hhs.fha.nhinc.common.subscription.SubscriptionReferenceType(); } return subscriptionReference; } public gov.hhs.fha.nhinc.common.nhinccommon.AcknowledgementType deleteSubscription(gov.hhs.fha.nhinc.common.subscription.DeleteSubscriptionMessageRequestType deleteSubscriptionMessage) { gov.hhs.fha.nhinc.common.nhinccommon.AcknowledgementType ack = null; try { if(deleteSubscriptionMessage != null) { ack = new SubscriptionRepositoryHelper().deleteSubscription(deleteSubscriptionMessage.getSubscriptionReference()); } } catch (SubscriptionRepositoryException ex) { log.error(ex.getMessage(), ex); // Create an ack here until proper fault handling is established. ack = new gov.hhs.fha.nhinc.common.nhinccommon.AcknowledgementType(); } return ack; } public gov.hhs.fha.nhinc.common.subscription.SubscriptionItemsType retrieveByCriteria(gov.hhs.fha.nhinc.common.subscription.SubscriptionCriteriaType subscriptionCriteria) { gov.hhs.fha.nhinc.common.subscription.SubscriptionItemsType subscriptionItems = null; try { subscriptionItems = new SubscriptionRepositoryHelper().retrieveByCriteria(subscriptionCriteria); } catch (SubscriptionRepositoryException ex) { log.error(ex.getMessage(), ex); // Create empty response until fault handling is added subscriptionItems = new gov.hhs.fha.nhinc.common.subscription.SubscriptionItemsType(); } return subscriptionItems; } public gov.hhs.fha.nhinc.common.subscription.SubscriptionItemType retrieveBySubscriptionReference(gov.hhs.fha.nhinc.common.subscription.RetrieveBySubscriptionReferenceRequestMessageType retrieveBySubscriptionReferenceRequest) { gov.hhs.fha.nhinc.common.subscription.SubscriptionItemType subscriptionItem = null; try { if(retrieveBySubscriptionReferenceRequest != null) { subscriptionItem = new SubscriptionRepositoryHelper().retrieveBySubscriptionReference(retrieveBySubscriptionReferenceRequest.getSubscriptionReference()); } } catch (SubscriptionRepositoryException ex) { log.error(ex.getMessage(), ex); // Create empty response until fault handling is added subscriptionItem = new gov.hhs.fha.nhinc.common.subscription.SubscriptionItemType(); } return subscriptionItem; } }