102 lines
3.2 KiB
Java
102 lines
3.2 KiB
Java
package jmri.jmrit.logixng;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
|
|
|
|
import jmri.*;
|
|
import jmri.implementation.VirtualSignalHead;
|
|
import jmri.jmrit.entryexit.DestinationPoints;
|
|
import jmri.jmrit.entryexit.EntryExitPairs;
|
|
import jmri.jmrit.entryexit.PointDetails;
|
|
import jmri.jmrit.entryexit.Source;
|
|
|
|
/**
|
|
* Classes for testing transits
|
|
* @author Daniel Bergqvist (C) 2023
|
|
*/
|
|
public class TransitScaffold {
|
|
|
|
public static void initTransits() {
|
|
InstanceManager.setDefault(EntryExitPairs.class, new MyEntryExitPairs());
|
|
}
|
|
|
|
public static class MyDestinationPoints extends DestinationPoints {
|
|
MyDestinationPoints(PointDetails point, String id, Source src) {
|
|
super(point, id, src);
|
|
}
|
|
|
|
@Override
|
|
public void setActiveEntryExit(boolean boo) {
|
|
super.setActiveEntryExit(boo);
|
|
}
|
|
}
|
|
|
|
private static class MyPointDetails extends PointDetails {
|
|
MyPointDetails() {
|
|
super(null, null);
|
|
}
|
|
|
|
@Override
|
|
public String getDisplayName() {
|
|
return "DisplayName";
|
|
}
|
|
|
|
@Override
|
|
public NamedBean getRefObject() {
|
|
return InstanceManager.getDefault(SignalHeadManager.class)
|
|
.getBySystemName("IHTransitScaffold");
|
|
}
|
|
}
|
|
|
|
private static class MyEntryExitPairs extends EntryExitPairs {
|
|
final PointDetails point;
|
|
final Source src;
|
|
final MyDestinationPoints dp1;
|
|
final MyDestinationPoints dp2;
|
|
final MyDestinationPoints myBeanEntryExit;
|
|
|
|
MyEntryExitPairs() {
|
|
InstanceManager.getDefault(SignalHeadManager.class)
|
|
.register(new VirtualSignalHead("IHTransitScaffold"));
|
|
point = new MyPointDetails();
|
|
src = new Source(point);
|
|
dp1 = new MyDestinationPoints(new MyPointDetails(), "DP1", src);
|
|
dp2 = new MyDestinationPoints(new MyPointDetails(), "DP2", src);
|
|
myBeanEntryExit = new MyDestinationPoints(new MyPointDetails(), "MyBeanEntryExit", src);
|
|
assertDoesNotThrow( () -> {
|
|
dp1.setUserName("Destination point 1");
|
|
dp2.setUserName("Destination point 2");
|
|
myBeanEntryExit.setUserName("Destination point MyBean");
|
|
}, "Exception thrown while setting userName :");
|
|
}
|
|
|
|
@Override
|
|
public DestinationPoints getBySystemName(String systemName) {
|
|
switch (systemName) {
|
|
case "DP1":
|
|
return dp1;
|
|
case "DP2":
|
|
return dp2;
|
|
case "MyBeanEntryExit":
|
|
return myBeanEntryExit;
|
|
default:
|
|
throw new IllegalArgumentException("Unknown system name: "+systemName);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public DestinationPoints getNamedBean(String name) {
|
|
switch (name) {
|
|
case "Destination point 1":
|
|
return dp1;
|
|
case "Destination point 2":
|
|
return dp2;
|
|
case "Destination point MyBean":
|
|
return myBeanEntryExit;
|
|
default:
|
|
return getBySystemName(name);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|