public static <P extends PortType> JavaPort<P> createJavaPort(boolean positive, P portType, ComponentCore owner) { return new JavaPort<P>(positive, portType, owner); } }
@Override public <P extends PortType> Negative<P> createNegativePort(Class<P> portType) { JavaPort<P> negativePort = new JavaPort<P>(false, PortType.getPortType(portType), this); JavaPort<P> positivePort = new JavaPort<P>(true, PortType.getPortType(portType), parent); negativePort.setPair(positivePort); positivePort.setPair(negativePort); Positive<?> existing = positivePorts.put(portType, positivePort); if (existing != null) { throw new RuntimeException("Cannot create multiple negative " + portType.getCanonicalName()); } return negativePort; }
@Override public <P extends PortType> Positive<P> createPositivePort(Class<P> portType) { JavaPort<P> negativePort = new JavaPort<P>(false, PortType.getPortType(portType), parent); JavaPort<P> positivePort = new JavaPort<P>(true, PortType.getPortType(portType), this); negativePort.setPair(positivePort); positivePort.setPair(negativePort); Negative<?> existing = negativePorts.put(portType, negativePort); if (existing != null) { throw new RuntimeException("Cannot create multiple positive " + portType.getCanonicalName()); } return positivePort; }
@Override public Negative<ControlPort> createControlPort() { negativeControl = new JavaPort<ControlPort>(false, PortType.getPortType(ControlPort.class), this); positiveControl = new JavaPort<ControlPort>(true, PortType.getPortType(ControlPort.class), parent); positiveControl.setPair(negativeControl); negativeControl.setPair(positiveControl); negativeControl.doSubscribe(handleStart); negativeControl.doSubscribe(handleStop); negativeControl.doSubscribe(handleKill); negativeControl.doSubscribe(handleStarted); negativeControl.doSubscribe(handleStopped); negativeControl.doSubscribe(handleKilled); negativeControl.doInternalSubscribe(handleFault); negativeControl.doInternalSubscribe(configHandler); return negativeControl; }