- private AtomicInteger sequenceNumbers;
- private Map<Integer, DocumentType> documentTypes;
- private Transformations transformations;
- private Map<Integer, Filter> filters;
- private Map<Integer, Destination> destinations;
-
- public XMLRouter() {
- sequenceNumbers = new AtomicInteger(1);
- documentTypes = new LinkedHashMap<Integer, DocumentType>();
- transformations = new Transformations();
- filters = new LinkedHashMap<Integer, Filter>();
- destinations = new LinkedHashMap<Integer, Destination>();
- }
-
- @Override
- public Id<DocumentType> addDocumentType(DocumentType aType) {
- int seqno = sequenceNumbers.getAndIncrement();
- documentTypes.put(seqno, aType);
- return new Id<DocumentType>(seqno);
- }
-
- @Override
- public void removeDocumentType(Id<DocumentType> aId) {
- documentTypes.remove(aId);
- }
-
- @Override
- public Collection<DocumentType> getDocumentTypes() {
- return Collections.unmodifiableCollection(documentTypes.values());
- }
+ private AtomicLong sequenceNumbers;
+ private EventListener listener;
+ private Clock clock;
+ private AtomicLong nextEventId;