001package jmri.jmrit.logixng;
002
003import jmri.NamedBean;
004
005/**
006 * Factory class for male sockets. This class is used when a tool wants to add
007 * extra male sockets around the male sockets for actions and expressions. An
008 * example is the debugger.
009 * 
010 * @author Daniel Bergqvist Copyright 2020
011 * @param <T> the type of male socket
012 */
013public interface MaleSocketFactory<T extends NamedBean> {
014    
015    /**
016     * Encapsulate a male socket into another male socket.
017     * @param manager the manager that registers this male socket
018     * @param maleSocket the male socket to be encapsulated
019     * @return the new male socket that encapsulates the old male socket
020     */
021    T encapsulateMaleSocket(BaseManager<T> manager, T maleSocket);
022    
023}