001package jmri.jmrit.logixng.implementation; 002 003import java.util.List; 004import java.util.Locale; 005import java.util.Map; 006 007import jmri.*; 008import jmri.jmrit.logixng.Base; 009import jmri.jmrit.logixng.DigitalActionManager; 010import jmri.jmrit.logixng.FemaleSocketListener; 011import jmri.jmrit.logixng.MaleSocket; 012import jmri.jmrit.logixng.FemaleDigitalActionSocket; 013import jmri.jmrit.logixng.MaleDigitalActionSocket; 014 015/** 016 * Default implementation of the Female Digital Action socket 017 */ 018public class DefaultFemaleDigitalActionSocket 019 extends AbstractFemaleSocket 020 implements FemaleDigitalActionSocket { 021 022 023 public DefaultFemaleDigitalActionSocket(Base parent, FemaleSocketListener listener, String name) { 024 super(parent, listener, name); 025 } 026 027 @Override 028 public boolean isCompatible(MaleSocket socket) { 029 return socket instanceof MaleDigitalActionSocket; 030 } 031 032 @Override 033 public void execute() throws JmriException { 034 if (isConnected()) { 035 ((MaleDigitalActionSocket)getConnectedSocket()).execute(); 036 } 037 } 038 039 @Override 040 public String getShortDescription(Locale locale) { 041 return Bundle.getMessage(locale, "DefaultFemaleDigitalActionSocket_Short"); 042 } 043 044 @Override 045 public String getLongDescription(Locale locale) { 046 return Bundle.getMessage(locale, "DefaultFemaleDigitalActionSocket_Long", getName()); 047 } 048 049 @Override 050 public Map<Category, List<Class<? extends Base>>> getConnectableClasses() { 051 return InstanceManager.getDefault(DigitalActionManager.class).getActionClasses(); 052 } 053 054 /** {@inheritDoc} */ 055 @Override 056 public void disposeMe() { 057 // Do nothing 058 } 059 060}