3e7b30b25cef7299c57069aff47c987eba21fc5d
[aaf/authz.git] / auth / auth-batch / src / main / java / org / onap / aaf / auth / batch / helpers / Visitor.java
1 /**
2  * ============LICENSE_START====================================================
3  * org.onap.aaf
4  * ===========================================================================
5  * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
6  * Modifications Copyright (C) 2019 IBM.
7  * ===========================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  * 
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  * 
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END====================================================
20  */
21
22 package org.onap.aaf.auth.batch.helpers;
23
24 @FunctionalInterface
25 public interface Visitor<T> {
26     void visit(T t);
27     
28     public static class Multi<T> implements Visitor<T> {
29         private final Visitor<T>[] visitors;
30         @SafeVarargs
31         public Multi(Visitor<T> ... vs) {
32             visitors  = vs;
33         }
34         
35         @Override
36         public void visit(T t) {
37             for(Visitor<T> v : visitors) {
38                 v.visit(t);
39             }
40         }
41     };
42 }