1 /*
2 * Copyright 2015 the original author or authors.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package org.openehealth.ipf.platform.camel.ihe.atna.interceptor;
17
18 import org.apache.camel.Exchange;
19 import org.openehealth.ipf.commons.ihe.core.atna.AuditDataset;
20 import org.openehealth.ipf.commons.ihe.core.atna.AuditStrategy;
21 import org.openehealth.ipf.platform.camel.ihe.atna.AuditableEndpoint;
22 import org.openehealth.ipf.platform.camel.ihe.core.Interceptor;
23
24 /**
25 * Interface for Auditing interceptors. Usually the {@link AuditStrategy} is obtained
26 * from the {@link AuditableEndpoint}
27 *
28 * @author Christian Ohr
29 * @since 3.1
30 */
31 public interface AuditInterceptor<T extends AuditDataset, E extends AuditableEndpoint<T>> extends Interceptor<E> {
32
33 String AUDIT_DATASET_HEADER = "AuditDataset";
34
35 /**
36 * Returns the audit strategy instance configured for this interceptor.
37 */
38 AuditStrategy<T> getAuditStrategy();
39
40 /**
41 * Determines local and remote network addresses on the basis of the
42 * given exchange and stores them into the given audit dataset.
43 */
44 void determineParticipantsAddresses(Exchange exchange, T auditDataset);
45 }