public void shutdown() throws FilterNotFound {
    if (filterId_ != Integer.MIN_VALUE) {
      pushSupplier_.remove_filter(filterId_);
    }

    Assert.assertTrue(!pushSupplier_._non_existent());
    pushSupplier_.disconnect_structured_push_supplier();

    if (filter_ != null) {
      filter_.destroy();
    }
  }
  public void connect(EventChannel channel, boolean useOrSemantic)
      throws AdminLimitExceeded, AlreadyConnected, TypeError {
    StructuredPushConsumerPOATie receiverTie = new StructuredPushConsumerPOATie(this);

    ConsumerAdmin _consumerAdmin = channel.default_consumer_admin();

    IntHolder _proxyIdHolder = new IntHolder();
    pushSupplier_ =
        StructuredProxyPushSupplierHelper.narrow(
            _consumerAdmin.obtain_notification_push_supplier(
                ClientType.STRUCTURED_EVENT, _proxyIdHolder));

    Assert.assertNotNull(pushSupplier_);
    Assert.assertNotNull(pushSupplier_.MyType());
    Assert.assertEquals(pushSupplier_.MyType(), ProxyType.PUSH_STRUCTURED);

    Assert.assertEquals(_consumerAdmin, pushSupplier_.MyAdmin());
    pushSupplier_.connect_structured_push_consumer(
        StructuredPushConsumerHelper.narrow(receiverTie._this(orb_)));

    connected_ = true;
  }
 public void setFilter(Filter filter) {
   filter_ = filter;
   filterId_ = pushSupplier_.add_filter(filter);
 }