| /* | |
| * Copyright 2018 The WebRTC project authors. All Rights Reserved. | |
| * | |
| * Use of this source code is governed by a BSD-style license | |
| * that can be found in the LICENSE file in the root of the source | |
| * tree. An additional intellectual property rights grant can be found | |
| * in the file PATENTS. All contributing project authors may | |
| * be found in the AUTHORS file in the root of the source tree. | |
| */ | |
| package org.webrtc; | |
| import javax.annotation.Nullable; | |
| /** | |
| * PeerConnectionDependencies holds all PeerConnection dependencies that are | |
| * applied per PeerConnection. A dependency is distinct from a configuration | |
| * as it defines significant executable code that can be provided by a user of | |
| * the API. | |
| */ | |
| public final class PeerConnectionDependencies { | |
| // Mandatory dependencies. | |
| private final PeerConnection.Observer observer; | |
| // Optional fields. | |
| private final SSLCertificateVerifier sslCertificateVerifier; | |
| public static class Builder { | |
| private PeerConnection.Observer observer; | |
| private SSLCertificateVerifier sslCertificateVerifier; | |
| private Builder(PeerConnection.Observer observer) { | |
| this.observer = observer; | |
| } | |
| public Builder setSSLCertificateVerifier(SSLCertificateVerifier sslCertificateVerifier) { | |
| this.sslCertificateVerifier = sslCertificateVerifier; | |
| return this; | |
| } | |
| // Observer is a required dependency and so is forced in the construction of the object. | |
| public PeerConnectionDependencies createPeerConnectionDependencies() { | |
| return new PeerConnectionDependencies(observer, sslCertificateVerifier); | |
| } | |
| } | |
| public static Builder builder(PeerConnection.Observer observer) { | |
| return new Builder(observer); | |
| } | |
| PeerConnection.Observer getObserver() { | |
| return observer; | |
| } | |
| @Nullable | |
| SSLCertificateVerifier getSSLCertificateVerifier() { | |
| return sslCertificateVerifier; | |
| } | |
| private PeerConnectionDependencies( | |
| PeerConnection.Observer observer, SSLCertificateVerifier sslCertificateVerifier) { | |
| this.observer = observer; | |
| this.sslCertificateVerifier = sslCertificateVerifier; | |
| } | |
| } |