package com.sequenceiq.cloudbreak.reactor.api.event; import org.apache.commons.lang3.StringUtils; import com.sequenceiq.cloudbreak.cloud.Acceptable; import com.sequenceiq.cloudbreak.cloud.event.Selectable; import reactor.rx.Promise; public class StackEvent implements Selectable, Acceptable { private String selector; private Long stackId; private Promise<Boolean> accepted; public StackEvent(Long stackId) { this(null, stackId); } public StackEvent(String selector, Long stackId) { this.selector = selector; this.stackId = stackId; this.accepted = new Promise<>(); } public StackEvent(String selector, Long stackId, Promise<Boolean> accepted) { this.selector = selector; this.stackId = stackId; this.accepted = accepted; } @Override public Long getStackId() { return stackId; } @Override public String selector() { return StringUtils.isNotEmpty(selector) ? selector : EventSelectorUtil.selector(getClass()); } @Override public Promise<Boolean> accepted() { return accepted; } }