/** * Copyright (c) 2016, All Contributors (see CONTRIBUTORS file) * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package com.eventsourcing.repository; import com.eventsourcing.Entity; import com.eventsourcing.EntitySubscriber; /** * {@link EntitySubscriber} that subscribes to all entities that are inherited from * a certain class. * @param <T> */ public class ClassEntitySubscriber<T extends Entity> implements EntitySubscriber<T> { private final Class<T> klass; public ClassEntitySubscriber(Class<T> klass) { this.klass = klass; } @Override public boolean matches(T entity) { return klass.isAssignableFrom(entity.getClass()); } }