@@ -0,0 +1,1131 @@
+/*******************************************************************************%0A * Copyright (c) 2015 Alexander Kerner. All rights reserved.%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A *   http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A ******************************************************************************/%0A%0Apackage net.sf.kerner.utils.visitor;%0A%0Apublic abstract class VisitorCounting%3CE%3E implements Visitor%3CE%3E %7B%0A%0A%09protected int cnt = 0;%0A%0A%09public synchronized int getCount() %7B%0A%09%09return cnt;%0A%09%7D%0A%0A%09public synchronized final Void transform(E element) %7B%0A%09%09transform(element, cnt);%0A%09%09cnt++;%0A%09%09return null;%0A%09%7D%0A%0A%09public abstract Void transform(E element, int cnt);%0A%0A%7D%0A

introduce VisitorCounting.