package org.apache.haox.event; import java.util.concurrent.atomic.AtomicInteger; public abstract class AbstractInternalEventHandler extends AbstractEventHandler implements InternalEventHandler { private int id = -1; protected EventHandler handler; private static AtomicInteger idGen = new AtomicInteger(1); public AbstractInternalEventHandler() { super(); this.id = idGen.getAndIncrement(); init(); } public AbstractInternalEventHandler(EventHandler handler) { this(); this.handler = handler; } protected void setEventHandler(EventHandler handler) { this.handler = handler; } @Override public int id() { return id; } public abstract void init(); protected void process(Event event) { handler.handle(event); } @Override public EventType[] getInterestedEvents() { return handler.getInterestedEvents(); } }