com.spotify.mobius.Next.effects()方法的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(4.1k)|赞(0)|评价(0)|浏览(111)

本文整理了Java中com.spotify.mobius.Next.effects()方法的一些代码示例,展示了Next.effects()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Next.effects()方法的具体详情如下:
包路径:com.spotify.mobius.Next
类名称:Next
方法名:effects

Next.effects介绍

[英]Get the effects of this Next.

Will return an empty set if there are no effects.
[中]下一步,看看这个的效果。
如果没有效果,将返回一个空集。

代码示例

代码示例来源:origin: spotify/mobius

  1. /** Check if this Next contains effects. */
  2. public final boolean hasEffects() {
  3. return !effects().isEmpty();
  4. }

代码示例来源:origin: com.spotify.mobius/mobius-core

  1. /** Check if this Next contains effects. */
  2. public final boolean hasEffects() {
  3. return !effects().isEmpty();
  4. }

代码示例来源:origin: spotify/mobius

  1. @Override
  2. protected boolean matchesSafely(Next<M, F> item, Description mismatchDescription) {
  3. if (!item.hasEffects()) {
  4. mismatchDescription.appendText("no effects");
  5. return false;
  6. } else if (!matcher.matches(item.effects())) {
  7. mismatchDescription.appendText("bad effects: ");
  8. matcher.describeMismatch(item.effects(), mismatchDescription);
  9. return false;
  10. } else {
  11. mismatchDescription.appendText("has effects: ");
  12. matcher.describeMismatch(item.effects(), mismatchDescription);
  13. return true;
  14. }
  15. }

代码示例来源:origin: spotify/mobius

  1. @Override
  2. public void afterUpdate(M model, E event, Next<M, F> result) {
  3. if (result.hasModel()) {
  4. LOGGER.debug(LOGGING_PREFIX + "Model updated: {}", loggingTag, result.modelUnsafe());
  5. }
  6. for (F effect : result.effects()) {
  7. LOGGER.debug(LOGGING_PREFIX + "Effect dispatched: {}", loggingTag, effect);
  8. }
  9. }

代码示例来源:origin: spotify/mobius

  1. @Override
  2. public void afterUpdate(M model, E event, Next<M, F> result) {
  3. if (result.hasModel()) {
  4. Log.d(tag, "Model updated: " + result.modelUnsafe());
  5. }
  6. for (F effect : result.effects()) {
  7. Log.d(tag, "Effect dispatched: " + effect);
  8. }
  9. }

代码示例来源:origin: spotify/mobius

  1. synchronized void update(E event) {
  2. if (!initialised) {
  3. eventsReceivedBeforeInit.add(event);
  4. return;
  5. }
  6. Next<M, F> next = store.update(event);
  7. next.ifHasModel(
  8. new Consumer<M>() {
  9. @Override
  10. public void accept(M model) {
  11. dispatchModel(model);
  12. }
  13. });
  14. dispatchEffects(next.effects());
  15. }

代码示例来源:origin: com.spotify.mobius/mobius-core

  1. synchronized void update(E event) {
  2. if (!initialised) {
  3. eventsReceivedBeforeInit.add(event);
  4. return;
  5. }
  6. Next<M, F> next = store.update(event);
  7. next.ifHasModel(
  8. new Consumer<M>() {
  9. @Override
  10. public void accept(M model) {
  11. dispatchModel(model);
  12. }
  13. });
  14. dispatchEffects(next.effects());
  15. }

代码示例来源:origin: spotify/mobius

  1. @Test
  2. public void shouldNotBeSensitiveToExternalMutation() throws Exception {
  3. Set<String> inputs = new HashSet<>();
  4. inputs.add("in");
  5. Next<String, String> next = Next.next("#", inputs);
  6. inputs.add("don't want to see this one");
  7. assertThat(next.effects(), equalTo((Set) Sets.newHashSet("in")));
  8. }

代码示例来源:origin: spotify/mobius

  1. @Test
  2. public void canMergeInnerEffects() throws Exception {
  3. Next<String, String> outerNext = Next.next("m", effects("f1", "f2"));
  4. Next<?, String> innerNext = dispatch(effects("f2", "f3"));
  5. Next<String, String> merged =
  6. Next.next(
  7. outerNext.modelOrElse("fail"), unionSets(innerNext.effects(), outerNext.effects()));
  8. assertEquals(Next.next("m", effects("f1", "f2", "f3")), merged);
  9. }

代码示例来源:origin: spotify/mobius

  1. @Nonnull
  2. public final Next<M, F> update(M model, E event) {
  3. MI innerModel = checkNotNull(modelExtractor().apply(model));
  4. EI innerEvent = checkNotNull(eventExtractor().apply(event));
  5. Next<MI, FI> innerNext = checkNotNull(innerUpdate().update(innerModel, innerEvent));
  6. M newModel = model;
  7. boolean modelUpdated = innerNext.hasModel();
  8. if (modelUpdated) {
  9. newModel = checkNotNull(modelUpdater().apply(model, innerNext.modelUnsafe()));
  10. }
  11. return checkNotNull(
  12. innerEffectHandler().handleInnerEffects(newModel, modelUpdated, innerNext.effects()));
  13. }

代码示例来源:origin: spotify/mobius

  1. @Test
  2. public void canMergeInnerEffectsAndModel() throws Exception {
  3. Set<String> effects = setOf("f1", "f2");
  4. Next<Integer, String> innerNext = Next.next(1, effects("f2", "f3"));
  5. Next<String, String> merged =
  6. Next.next("m" + innerNext.modelOrElse(0), unionSets(effects, innerNext.effects()));
  7. assertEquals(Next.next("m1", effects("f1", "f2", "f3")), merged);
  8. }

相关文章