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.FemaleSocketListener; 010import jmri.jmrit.logixng.FemaleStringExpressionSocket; 011import jmri.jmrit.logixng.MaleStringExpressionSocket; 012import jmri.jmrit.logixng.MaleSocket; 013import jmri.jmrit.logixng.StringExpressionManager; 014 015/** 016 * Default implementation of the Female String Expression socket 017 */ 018public class DefaultFemaleStringExpressionSocket extends AbstractFemaleSocket 019 implements FemaleStringExpressionSocket { 020 021 public DefaultFemaleStringExpressionSocket(Base parent, FemaleSocketListener listener, String name) { 022 super(parent, listener, name); 023 } 024 025 /** {@inheritDoc} */ 026 @Override 027 public boolean isCompatible(MaleSocket socket) { 028 return socket instanceof MaleStringExpressionSocket; 029 } 030 031 /** {@inheritDoc} */ 032 @Override 033 public String evaluate() throws JmriException { 034 if (isConnected()) { 035 return ((MaleStringExpressionSocket)getConnectedSocket()).evaluate(); 036 } else { 037 return ""; 038 } 039 } 040 041 /** {@inheritDoc} */ 042 @Override 043 public boolean getTriggerOnChange() { 044 throw new UnsupportedOperationException("Not supported"); 045 } 046 047 /** {@inheritDoc} */ 048 @Override 049 public void setTriggerOnChange(boolean triggerOnChange) { 050 throw new UnsupportedOperationException("Not supported"); 051 } 052 053 /** {@inheritDoc} */ 054 @Override 055 public String getShortDescription(Locale locale) { 056 return Bundle.getMessage(locale, "DefaultFemaleStringExpressionSocket_Short"); 057 } 058 059 /** {@inheritDoc} */ 060 @Override 061 public String getLongDescription(Locale locale) { 062 return Bundle.getMessage(locale, "DefaultFemaleStringExpressionSocket_Long", getName()); 063 } 064 065 /** {@inheritDoc} */ 066 @Override 067 public Map<Category, List<Class<? extends Base>>> getConnectableClasses() { 068 return InstanceManager.getDefault(StringExpressionManager.class).getExpressionClasses(); 069 } 070 071 /** {@inheritDoc} */ 072 @Override 073 public void disposeMe() { 074 // Do nothing 075 } 076 077}