public static Observable<? extends DataCenterInfo> forDataCenterType(DataCenterType type) { switch (type) { case Basic: return Observable.just(BasicDataCenterInfo.fromSystemData()); case AWS: return new AwsDataCenterInfoProvider().dataCenterInfo(); } throw new IllegalStateException("Unhandled type " + type); } }
@Override public Observable<AwsDataCenterInfo> dataCenterInfo() { if (dataCenterInfoRef.get() != null) { return dataCenterInfoRef.get(); } dataCenterInfoRef.compareAndSet(null, readMetaInfo()); return dataCenterInfoRef.get(); }