Skip to content
This repository has been archived by the owner on Nov 1, 2022. It is now read-only.

Commit

Permalink
fixed some errors
Browse files Browse the repository at this point in the history
  • Loading branch information
Florian122 committed Oct 28, 2020
1 parent c5ddcc2 commit bc593a8
Show file tree
Hide file tree
Showing 4 changed files with 88 additions and 35 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public static CommandModelJournalProvider using(final Stage stage, final Sourced

final EntryAdapterProvider entryAdapterProvider = EntryAdapterProvider.instance(stage.world());

entryAdapterProvider.registerAdapter(PortfolioCreated.class, new PortfolioPlaceholderDefinedAdapter());
entryAdapterProvider.registerAdapter(PortfolioCreated.class, new EventAdapter<>());

final Journal<String> journal =
StoreActorBuilder.from(stage, Model.COMMAND, dispatcher, StorageType.JOURNAL, Settings.properties(), true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,29 @@
import io.vlingo.symbio.BaseEntry.TextEntry;
import io.vlingo.symbio.EntryAdapter;
import io.vlingo.symbio.Metadata;
import io.vlingo.symbio.Source;

public final class PortfolioPlaceholderDefinedAdapter implements EntryAdapter<PortfolioCreated,TextEntry> {
public final class EventAdapter<T extends Source<?>> implements EntryAdapter<T, TextEntry> {

@Override
public PortfolioCreated fromEntry(final TextEntry entry) {
public T fromEntry(final TextEntry entry) {
return JsonSerialization.deserialized(entry.entryData(), entry.typed());
}

@Override
public TextEntry toEntry(final PortfolioCreated source, final Metadata metadata) {
public TextEntry toEntry(final T source, final Metadata metadata) {
final String serialization = JsonSerialization.serialized(source);
return new TextEntry(PortfolioCreated.class, 1, serialization, metadata);
}

@Override
public TextEntry toEntry(final PortfolioCreated source, final String id, final Metadata metadata) {
public TextEntry toEntry(final T source, final String id, final Metadata metadata) {
final String serialization = JsonSerialization.serialized(source);
return new TextEntry(id, PortfolioCreated.class, 1, serialization, metadata);
}

@Override
public TextEntry toEntry(final PortfolioCreated source, final int version, final String id, final Metadata metadata) {
public TextEntry toEntry(final T source, final int version, final String id, final Metadata metadata) {
final String serialization = JsonSerialization.serialized(source);
return new TextEntry(id, PortfolioCreated.class, 1, serialization, version, metadata);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package com.whz.portfolio.infrastructure.persistence;

import com.whz.portfolio.infrastructure.PortfolioData;

import io.vlingo.common.serialization.JsonSerialization;
import io.vlingo.symbio.Metadata;
import io.vlingo.symbio.State.TextState;
import io.vlingo.symbio.StateAdapter;

public class PortfolioDataStateAdapter implements StateAdapter<PortfolioData, TextState> {

@Override
public int typeVersion() {
return 1;
}

@Override
public PortfolioData fromRawState(final TextState raw) {
return JsonSerialization.deserialized(raw.data, raw.typed());
}

@Override
public TextState toRawState(String id, PortfolioData state, int stateVersion, Metadata metadata) {
final String serialization = JsonSerialization.serialized(state);
return new TextState(id, PortfolioData.class, typeVersion(), serialization, stateVersion, metadata);
}

@Override
public TextState toRawState(PortfolioData state, int stateVersion, Metadata metadata) {
final String serialization = JsonSerialization.serialized(state);
return new TextState(state.id, PortfolioData.class, typeVersion(), serialization, stateVersion, metadata);
}

@Override
public <ST> ST fromRawState(TextState raw, Class<ST> stateType) {
return JsonSerialization.deserialized(raw.data, stateType);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,18 @@
import java.util.Arrays;
import java.util.List;

import com.whz.portfolio.infrastructure.PortfolioData;
import com.whz.portfolio.infrastructure.persistence.PortfolioQueries;
import com.whz.portfolio.infrastructure.persistence.PortfolioQueriesActor;
import com.whz.portfolio.model.portfolio.PortfolioCreated;

import io.vlingo.actors.Definition;
import io.vlingo.actors.Protocols;
import io.vlingo.actors.Stage;
import io.vlingo.lattice.model.stateful.StatefulTypeRegistry;
import io.vlingo.lattice.model.stateful.StatefulTypeRegistry.Info;
import io.vlingo.symbio.EntryAdapterProvider;
import io.vlingo.symbio.StateAdapterProvider;
import io.vlingo.symbio.store.dispatch.Dispatcher;
import io.vlingo.symbio.store.dispatch.DispatcherControl;
import io.vlingo.symbio.store.dispatch.Dispatchable;
Expand All @@ -21,43 +25,52 @@
import io.vlingo.xoom.annotation.persistence.Persistence.StorageType;

public class QueryModelStateStoreProvider {
private static QueryModelStateStoreProvider instance;
private static QueryModelStateStoreProvider instance;

public final StateStore store;
public final PortfolioQueries portfolioQueries;
public final StateStore store;
public final PortfolioQueries portfolioQueries;

public static QueryModelStateStoreProvider instance() {
return instance;
}
public static QueryModelStateStoreProvider instance() {
return instance;
}

public static QueryModelStateStoreProvider using(final Stage stage, final StatefulTypeRegistry registry) {
final Dispatcher noop = new Dispatcher() {
public void controlWith(final DispatcherControl control) { }
public void dispatch(Dispatchable d) { }
};
public static QueryModelStateStoreProvider using(final Stage stage, final StatefulTypeRegistry registry) {
final Dispatcher noop = new Dispatcher() {
public void controlWith(final DispatcherControl control) {
}

return using(stage, registry, noop);
}
public void dispatch(Dispatchable d) {
}
};

@SuppressWarnings("rawtypes")
public static QueryModelStateStoreProvider using(final Stage stage, final StatefulTypeRegistry registry, final Dispatcher dispatcher) {
if (instance != null) {
return instance;
}
return using(stage, registry, noop);
}

new EntryAdapterProvider(stage.world()); // future use
@SuppressWarnings("rawtypes")
public static QueryModelStateStoreProvider using(final Stage stage, final StatefulTypeRegistry registry,
final Dispatcher dispatcher) {
if (instance != null) {
return instance;
}

final StateStore store =
StoreActorBuilder.from(stage, Model.QUERY, dispatcher, StorageType.STATE_STORE, Settings.properties(), true);
new EntryAdapterProvider(stage.world()); // future use
final StateAdapterProvider stateAdapterProvider = new StateAdapterProvider(stage.world());
stateAdapterProvider.registerAdapter(PortfolioData.class, new PortfolioDataStateAdapter());

instance = new QueryModelStateStoreProvider(stage, store);
final StateStore store = StoreActorBuilder.from(stage, Model.QUERY, dispatcher, StorageType.STATE_STORE,
Settings.properties(), true);

return instance;
}
// nicht vom generator erstellt worden
registry.register(new Info(store, PortfolioData.class, PortfolioData.class.getSimpleName()));

@SuppressWarnings({ "unchecked", "rawtypes" })
private QueryModelStateStoreProvider(final Stage stage, final StateStore store) {
this.store = store;
this.portfolioQueries = stage.actorFor(PortfolioQueries.class, PortfolioQueriesActor.class, store);
}
instance = new QueryModelStateStoreProvider(stage, store);

return instance;
}

@SuppressWarnings({ "unchecked", "rawtypes" })
private QueryModelStateStoreProvider(final Stage stage, final StateStore store) {
this.store = store;
this.portfolioQueries = stage.actorFor(PortfolioQueries.class, PortfolioQueriesActor.class, store);
}
}

0 comments on commit bc593a8

Please sign in to comment.