// Path: src/main/java/org/gwtproject/event/shared/Event.java
// public static class Type<H> {
//   private static int nextHashCode;
//   private final int index;
// 
//   /** Constructor. */
//   public Type() {
//     index = ++nextHashCode;
//   }
// 
//   @Override
//   public final int hashCode() {
//     return index;
//   }
// 
//   @Override
//   public String toString() {
//     return "Event type";
//   }
// }


import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import org.gwtproject.event.shared.Event.Type;
/*
 * Copyright 2011 The GWT Project Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package org.gwtproject.event.shared;


/**
 * Wraps an EventBus to hold on to any HandlerRegistrations, so that they can easily all be cleared
 * at once.
 */
public class ResettableEventBus extends EventBus {
  private final EventBus wrapped;
  private final Set<HandlerRegistration> registrations = new HashSet<>();

  public ResettableEventBus(EventBus wrappedBus) {
    this.wrapped = wrappedBus;
  }

  @Override
// Path: src/main/java/org/gwtproject/event/shared/Event.java
// public static class Type<H> {
//   private static int nextHashCode;
//   private final int index;
// 
//   /** Constructor. */
//   public Type() {
//     index = ++nextHashCode;
//   }
// 
//   @Override
//   public final int hashCode() {
//     return index;
//   }
// 
//   @Override
//   public String toString() {
//     return "Event type";
//   }
// }


// Path: src/main/java/org/gwtproject/event/shared/ResettableEventBus.java
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import org.gwtproject.event.shared.Event.Type;

/*
 * Copyright 2011 The GWT Project Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package org.gwtproject.event.shared;


/**
 * Wraps an EventBus to hold on to any HandlerRegistrations, so that they can easily all be cleared
 * at once.
 */
public class ResettableEventBus extends EventBus {
  private final EventBus wrapped;
  private final Set<HandlerRegistration> registrations = new HashSet<>();

  public ResettableEventBus(EventBus wrappedBus) {
    this.wrapped = wrappedBus;
  }

  @Override
  public <H> HandlerRegistration addHandler(Type<H> type, H handler) {