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
17 package org.openehealth.ipf.platform.camel.ihe.atna;
18
19 import org.apache.camel.Endpoint;
20 import org.openehealth.ipf.commons.audit.AuditContext;
21 import org.openehealth.ipf.commons.ihe.core.atna.AuditDataset;
22 import org.openehealth.ipf.commons.ihe.core.atna.AuditStrategy;
23
24 /**
25 * Endpoint that supports ATNA auditing. Usually the {@link AuditStrategy}
26 * instances are obtained from the accompanying {@link AuditableComponent}.
27 *
28 * @since 3.1
29 */
30 public interface AuditableEndpoint<AuditDatasetType extends AuditDataset> extends Endpoint {
31
32 /**
33 * Returns client-side audit strategy instance.
34 *
35 * @return client-side audit strategy instance
36 */
37 AuditStrategy<AuditDatasetType> getClientAuditStrategy();
38
39 /**
40 * Returns server-side audit strategy instance.
41 *
42 * @return server-side audit strategy instance
43 */
44 AuditStrategy<AuditDatasetType> getServerAuditStrategy();
45
46 /**
47 * @return <tt>true</tt> when ATNA auditing should be performed.
48 */
49 default boolean isAudit() {
50 return getAuditContext().isAuditEnabled();
51 }
52
53 /**
54 * @return audit context to be used for this endpoint
55 */
56 AuditContext getAuditContext();
57
58 }