@Override public <T> EventRepository<T> getEventRepository( final Class<T> eventType, final String namespace) { validateNamespace(namespace); String repositoryName = EventTypeUtils.getRepositoryName(eventType); EventNormalizer<T> normalizer = EventTypeUtils.getNormalizer(eventType); String eventStreamPrefix = String.format("%s:%s", namespace, repositoryName); logger.info( "Creating Event Store repository for {} with prefix {}", eventType.getSimpleName(), eventStreamPrefix); return new EventStoreEventRepository<>( eventStreamPrefix, connection, eventType, objectMapper, normalizer); }
@SuppressWarnings("unchecked") public static <T> EventNormalizer<T> getNormalizer(final Class<T> eventType) { EventType eventTypeData = getEventTypeAnnotation(eventType); if (eventTypeData.normalizer() != null && !eventTypeData.normalizer().equals(EventType.NoNormalizer.class)) { return (EventNormalizer) createInstance(eventTypeData.normalizer()); } else { return null; } }
/** * Gets the configured repository for a given event type, assumed to be annotated with * * @param eventType The base type of events to extract a repository name for. */ public static String getRepositoryName(final Class<?> eventType) { EventType eventTypeData = getEventTypeAnnotation(eventType); if (eventTypeData.repositoryName() == null) { throw new IllegalArgumentException( "Provided event type does not have a configured repository name"); } return eventTypeData.repositoryName(); }
@SuppressWarnings("unchecked") public static <T> EventNormalizer<T> getNormalizer(final Class<T> eventType) { EventType eventTypeData = getEventTypeAnnotation(eventType); if (eventTypeData.normalizer() != null && !eventTypeData.normalizer().equals(EventType.NoNormalizer.class)) { return (EventNormalizer) createInstance(eventTypeData.normalizer()); } else { return null; } }
/** * Gets the configured repository for a given event type, assumed to be annotated with * * @param eventType The base type of events to extract a repository name for. */ public static String getRepositoryName(final Class<?> eventType) { EventType eventTypeData = getEventTypeAnnotation(eventType); if (eventTypeData.repositoryName() == null) { throw new IllegalArgumentException( "Provided event type does not have a configured repository name"); } return eventTypeData.repositoryName(); }
@Override public <T> EventRepository<T> getEventRepository( final Class<T> eventType, final String namespace) { validateNamespace(namespace); String repositoryName = EventTypeUtils.getRepositoryName(eventType); EventNormalizer<T> normalizer = EventTypeUtils.getNormalizer(eventType); String eventStreamPrefix = String.format("%s:%s", namespace, repositoryName); logger.info( "Creating Event Store repository for {} with prefix {}", eventType.getSimpleName(), eventStreamPrefix); return new EventStoreEventRepository<>( eventStreamPrefix, connection, eventType, objectMapper, normalizer); }
@Override public <T> EventRepository<T> getEventRepository( final Class<T> eventType, final String namespace) { validateNamespace(namespace); String repositoryName = EventTypeUtils.getRepositoryName(eventType); EventNormalizer<T> normalizer = EventTypeUtils.getNormalizer(eventType); String eventStreamPrefix = String.format("%s:%s", namespace, repositoryName); logger.info( "Creating Event Store repository for {} with prefix {}", eventType.getSimpleName(), eventStreamPrefix); return new EventStoreEsjcEventRepository<>( eventStreamPrefix, eventStore, eventType, objectMapper, normalizer); }