All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.openehealth.ipf.commons.ihe.hl7v3.Hl7v3WsTransactionConfiguration Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2010 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.openehealth.ipf.commons.ihe.hl7v3;

import lombok.Getter;
import org.openehealth.ipf.commons.ihe.core.atna.AuditStrategy;
import org.openehealth.ipf.commons.ihe.hl7v3.audit.Hl7v3AuditDataset;
import org.openehealth.ipf.commons.ihe.ws.WsTransactionConfiguration;
import org.openehealth.ipf.commons.xml.CombinedXmlValidationProfile;

import javax.xml.namespace.QName;

/**
 * @author Dmytro Rud
 */
public class Hl7v3WsTransactionConfiguration extends WsTransactionConfiguration {

    @Getter private final String nakRootElementName;
    @Getter private final String controlActProcessCode;
    @Getter private final CombinedXmlValidationProfile requestValidationProfile;
    @Getter private final CombinedXmlValidationProfile responseValidationProfile;
    @Getter private final boolean includeQuantities;

    /**
     * Constructs the transaction configuration.
     *
     * @param name
     *          name of the transaction.
     * @param description
     *          human-readable description of the transaction.
     * @param isQuery
     *          true if this transaction describes a query, false otherwise.
     * @param clientAuditStrategy
     *          {@link AuditStrategy} to be used on client side to accomplish ATNA audit.
     * @param serverAuditStrategy
     *          {@link AuditStrategy} to be used on server side to accomplish ATNA audit.
     * @param serviceName
     *      the qualified name of the service.
     * @param sei
     *      service endpoint interface.
     * @param bindingName
     *      the qualified name of the binding to use.
     * @param mtom
     *      {@code true} if this service requires MTOM.
     * @param wsdlLocation
     *      the location of the WSDL of this webservice.
     * @param nakRootElementName
     *      root element name of automatically generated NAKs.
     * @param controlActProcessCode
     *      when not {@code null}, the {@code <controlActProcess>}
     *      element with the given code ID will be created in the NAK.
     * @param auditRequestPayload
     *      whether request payload is needed for ATNA audit.
     * @param supportAsynchrony
     *      whether producers can request asynchronous responses via WSA.
     * @param includeQuantities
     *      whether the elements resultTotalQuantity, resultCurrentQuantity,
     *      resultRemainingQuantity will be included into the NAK.
     */
    public Hl7v3WsTransactionConfiguration(
            String name,
            String description,
            boolean isQuery,
            AuditStrategy clientAuditStrategy,
            AuditStrategy serverAuditStrategy,
            QName serviceName,
            Class sei,
            QName bindingName,
            boolean mtom,
            String wsdlLocation,
            String nakRootElementName,
            String controlActProcessCode,
            boolean auditRequestPayload,
            boolean supportAsynchrony,
            CombinedXmlValidationProfile requestValidationProfile,
            CombinedXmlValidationProfile responseValidationProfile,
            boolean includeQuantities)
    {
        super(name, description, isQuery, clientAuditStrategy, serverAuditStrategy,
                serviceName, sei, bindingName, mtom, wsdlLocation,
                true, false, auditRequestPayload, supportAsynchrony);

        this.nakRootElementName = nakRootElementName;
        this.controlActProcessCode = controlActProcessCode;
        this.requestValidationProfile = requestValidationProfile;
        this.responseValidationProfile = responseValidationProfile;
        this.includeQuantities = includeQuantities;
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy