@@ -0,0 +1,1599 @@
+/*%0A * Copyright (c) 2012 Mateusz Parzonka, Eric Bodden%0A * All rights reserved. This program and the accompanying materials%0A * are made available under the terms of the Eclipse Public License v1.0%0A * which accompanies this distribution, and is available at%0A * http://www.eclipse.org/legal/epl-v10.html%0A *%0A * Contributors:%0A * Mateusz Parzonka - initial API and implementation%0A */%0Apackage prm4j.indexing;%0A%0Aimport prm4j.api.IBaseMonitor;%0Aimport prm4j.api.IParametricMonitor;%0A%0A/**%0A * A concrete monitor instance, representing the internal state of a %7B@link IParametricMonitor%7D for one single concrete%0A * variable binding.%0A *%0A * @param %3CA%3E%0A *            the type of the auxiliary data usable by base monitors%0A */%0Apublic abstract class AbstractBaseMonitor%3CA%3E implements IBaseMonitor%3CA, AbstractBaseMonitor%3CA%3E%3E %7B%0A%0A    // low level access%0A    private ILowLevelBinding%3CA%3E%5B%5D bindings;%0A    // low level access%0A    private long tau;%0A%0A    /**%0A     * Creates a low level deep copy of this monitor.%0A     *%0A     * @param bindings%0A     * @return%0A     */%0A    final AbstractBaseMonitor%3CA%3E copy(ILowLevelBinding%3CA%3E%5B%5D bindings) %7B%0A%09AbstractBaseMonitor%3CA%3E copy = copy();%0A%09copy.setBindings(bindings);%0A%09copy.setTau(tau);%0A%09return copy;%0A    %7D%0A%0A    private final void setBindings(ILowLevelBinding%3CA%3E%5B%5D bindings) %7B%0A%09this.bindings = bindings;%0A    %7D%0A%0A    final ILowLevelBinding%3CA%3E%5B%5D getLowLevelBindings() %7B%0A%09return bindings;%0A    %7D%0A%0A    protected final prm4j.api.IBinding%5B%5D getBindings() %7B%0A%09// upcast%0A%09return bindings;%0A    %7D%0A%0A    final long getTau() %7B%0A%09return tau;%0A    %7D%0A%0A    final void setTau(long tau) %7B%0A%09this.tau = tau;%0A    %7D%0A%0A%7D%0A

Add abstract base monitor