public Optional<T> or(Optional<T> elseCase) { return isPresent() ? this : elseCase; }
public boolean isAbsent() { return !isPresent(); }
public T get() { if (!isPresent()) { throw new IllegalStateException("You must check if data is present before using get()"); } return data; }
public T or(T elseCase) { return isPresent() ? get() : elseCase; }
public Optional<T> or(Func0<Optional<T>> elseFunc) { return isPresent() ? this : elseFunc.call(); }
private DefaultDataSourceFactory createDataSourceFactory(DefaultBandwidthMeter bandwidthMeter) { if (dataSourceFactory.isPresent()) { return new DefaultDataSourceFactory(context, bandwidthMeter, dataSourceFactory.get()); } else { return new DefaultDataSourceFactory(context, "user-agent", bandwidthMeter); } }
boolean clearSelectionOverrideFor(TrackType trackType, RendererTypeRequester rendererTypeRequester) { Optional<Integer> rendererIndex = rendererTrackIndexExtractor.extract(trackType, mappedTrackInfoLength(), rendererTypeRequester); if (rendererIndex.isPresent()) { trackSelector.setParameters(trackSelector .buildUponParameters() .clearSelectionOverrides(rendererIndex.get()) ); return true; } else { return false; } }
boolean supportsTrackSwitching(TrackType trackType, RendererTypeRequester rendererTypeRequester, TrackGroupArray trackGroups, int groupIndex) { Optional<Integer> audioRendererIndex = rendererTrackIndexExtractor.extract(trackType, mappedTrackInfoLength(), rendererTypeRequester); return audioRendererIndex.isPresent() && trackGroups.get(groupIndex).length > 0 && trackInfo().getAdaptiveSupport(audioRendererIndex.get(), groupIndex, false) != RendererCapabilities.ADAPTIVE_NOT_SUPPORTED; } }
boolean setSelectionOverride(TrackType trackType, RendererTypeRequester rendererTypeRequester, TrackGroupArray trackGroups, DefaultTrackSelector.SelectionOverride selectionOverride) { Optional<Integer> rendererIndex = rendererTrackIndexExtractor.extract(trackType, mappedTrackInfoLength(), rendererTypeRequester); if (rendererIndex.isPresent()) { trackSelector.setParameters(trackSelector .buildUponParameters() .setSelectionOverride(rendererIndex.get(), trackGroups, selectionOverride) ); return true; } else { return false; } }