@SuppressWarnings("unchecked") public static <T> ResolvedObservers<T> of(Set<ObserverMethod<? super T>> observers) { if (observers.isEmpty()) { return (ResolvedObservers<T>) EMPTY; } boolean metadataRequired = false; List<ObserverMethod<? super T>> immediateObservers = new ArrayList<ObserverMethod<? super T>>(); List<ObserverMethod<? super T>> transactionObservers = new ArrayList<ObserverMethod<? super T>>(); for (ObserverMethod<? super T> observer : observers) { if (TransactionPhase.IN_PROGRESS == observer.getTransactionPhase()) { immediateObservers.add(observer); } else { transactionObservers.add(observer); } if (!metadataRequired && Observers.isEventMetadataRequired(observer)) { metadataRequired = true; } } return new ResolvedObservers<T>(ImmutableList.copyOf(immediateObservers), ImmutableList.copyOf(transactionObservers), metadataRequired); }
@SuppressWarnings("unchecked") public static <T> ResolvedObservers<T> of(List<ObserverMethod<? super T>> observers) { if (observers.isEmpty()) { return (ResolvedObservers<T>) EMPTY; } boolean metadataRequired = false; List<ObserverMethod<? super T>> immediateSyncObservers = new ArrayList<ObserverMethod<? super T>>(); List<ObserverMethod<? super T>> transactionObservers = new ArrayList<ObserverMethod<? super T>>(); List<ObserverMethod<? super T>> asyncObservers = new ArrayList<ObserverMethod<? super T>>(); for (ObserverMethod<? super T> observer : observers) { if(observer.isAsync()) { asyncObservers.add(observer); } else if (TransactionPhase.IN_PROGRESS == observer.getTransactionPhase()) { immediateSyncObservers.add(observer); } else { transactionObservers.add(observer); } if (!metadataRequired && Observers.isEventMetadataRequired(observer)) { metadataRequired = true; } } return new ResolvedObservers<>(copyOf(immediateSyncObservers), copyOf(asyncObservers), copyOf(transactionObservers), metadataRequired); }
@SuppressWarnings("unchecked") public static <T> ResolvedObservers<T> of(List<ObserverMethod<? super T>> observers) { if (observers.isEmpty()) { return (ResolvedObservers<T>) EMPTY; } boolean metadataRequired = false; List<ObserverMethod<? super T>> immediateSyncObservers = new ArrayList<ObserverMethod<? super T>>(); List<ObserverMethod<? super T>> transactionObservers = new ArrayList<ObserverMethod<? super T>>(); List<ObserverMethod<? super T>> asyncObservers = new ArrayList<ObserverMethod<? super T>>(); for (ObserverMethod<? super T> observer : observers) { if(observer.isAsync()) { asyncObservers.add(observer); } else if (TransactionPhase.IN_PROGRESS == observer.getTransactionPhase()) { immediateSyncObservers.add(observer); } else { transactionObservers.add(observer); } if (!metadataRequired && Observers.isEventMetadataRequired(observer)) { metadataRequired = true; } } return new ResolvedObservers<>(copyOf(immediateSyncObservers), copyOf(asyncObservers), copyOf(transactionObservers), metadataRequired); }
@SuppressWarnings("unchecked") public static <T> ResolvedObservers<T> of(List<ObserverMethod<? super T>> observers) { if (observers.isEmpty()) { return (ResolvedObservers<T>) EMPTY; } boolean metadataRequired = false; List<ObserverMethod<? super T>> immediateSyncObservers = new ArrayList<ObserverMethod<? super T>>(); List<ObserverMethod<? super T>> transactionObservers = new ArrayList<ObserverMethod<? super T>>(); List<ObserverMethod<? super T>> asyncObservers = new ArrayList<ObserverMethod<? super T>>(); for (ObserverMethod<? super T> observer : observers) { if(observer.isAsync()) { asyncObservers.add(observer); } else if (TransactionPhase.IN_PROGRESS == observer.getTransactionPhase()) { immediateSyncObservers.add(observer); } else { transactionObservers.add(observer); } if (!metadataRequired && Observers.isEventMetadataRequired(observer)) { metadataRequired = true; } } return new ResolvedObservers<>(copyOf(immediateSyncObservers), copyOf(asyncObservers), copyOf(transactionObservers), metadataRequired); }
@SuppressWarnings("unchecked") public static <T> ResolvedObservers<T> of(List<ObserverMethod<? super T>> observers) { if (observers.isEmpty()) { return (ResolvedObservers<T>) EMPTY; } boolean metadataRequired = false; List<ObserverMethod<? super T>> immediateSyncObservers = new ArrayList<ObserverMethod<? super T>>(); List<ObserverMethod<? super T>> transactionObservers = new ArrayList<ObserverMethod<? super T>>(); List<ObserverMethod<? super T>> asyncObservers = new ArrayList<ObserverMethod<? super T>>(); for (ObserverMethod<? super T> observer : observers) { if(observer.isAsync()) { asyncObservers.add(observer); } else if (TransactionPhase.IN_PROGRESS == observer.getTransactionPhase()) { immediateSyncObservers.add(observer); } else { transactionObservers.add(observer); } if (!metadataRequired && Observers.isEventMetadataRequired(observer)) { metadataRequired = true; } } return new ResolvedObservers<>(copyOf(immediateSyncObservers), copyOf(asyncObservers), copyOf(transactionObservers), metadataRequired); }
@SuppressWarnings("unchecked") public static <T> ResolvedObservers<T> of(List<ObserverMethod<? super T>> observers) { if (observers.isEmpty()) { return (ResolvedObservers<T>) EMPTY; } boolean metadataRequired = false; List<ObserverMethod<? super T>> immediateSyncObservers = new ArrayList<ObserverMethod<? super T>>(); List<ObserverMethod<? super T>> transactionObservers = new ArrayList<ObserverMethod<? super T>>(); List<ObserverMethod<? super T>> asyncObservers = new ArrayList<ObserverMethod<? super T>>(); for (ObserverMethod<? super T> observer : observers) { if(observer.isAsync()) { asyncObservers.add(observer); } else if (TransactionPhase.IN_PROGRESS == observer.getTransactionPhase()) { immediateSyncObservers.add(observer); } else { transactionObservers.add(observer); } if (!metadataRequired && Observers.isEventMetadataRequired(observer)) { metadataRequired = true; } } return new ResolvedObservers<>(copyOf(immediateSyncObservers), copyOf(asyncObservers), copyOf(transactionObservers), metadataRequired); }