package org.jactr.tools.grapher.core.probe; /* * default logging */ import java.util.concurrent.Executor; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jactr.core.event.IParameterEvent; import org.jactr.core.event.IParameterListener; import org.jactr.core.model.IModel; import org.jactr.core.utils.parameter.IParameterized; public class ModelProbe extends AbstractParameterizedProbe<IModel> { /** * Logger definition */ static private final transient Log LOGGER = LogFactory .getLog(ModelProbe.class); private IParameterListener _listener; public ModelProbe(String name, IModel parameterized) { super(name, parameterized); } @Override public void install(IModel parameterized, Executor executor) { _listener = new IParameterListener() { public void parameterChanged(IParameterEvent pe) { set(pe.getParameterName(), pe.getNewParameterValue()); } }; parameterized.addListener(_listener, executor); } @Override protected AbstractParameterizedProbe<IModel> newInstance(IModel parameterized) { return new ModelProbe(parameterized.getName(), parameterized); } @Override protected IParameterized asParameterized(IModel parameterizedObject) { return parameterizedObject; } }