Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License. See License.txt in the project root for
license information.
/**
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for
* license information.
*/
package com.microsoft.azure.management.resources.implementation;
import com.microsoft.azure.Page;
import com.microsoft.azure.PagedList;
import com.microsoft.azure.management.resources.Location;
import com.microsoft.azure.management.resources.ManagedByTenant;
import com.microsoft.azure.management.resources.Subscription;
import com.microsoft.azure.management.resources.SubscriptionPolicies;
import com.microsoft.azure.management.resources.SubscriptionState;
import com.microsoft.azure.management.resources.fluentcore.arm.Region;
import com.microsoft.azure.management.resources.fluentcore.model.implementation.IndexableWrapperImpl;
import com.microsoft.azure.management.resources.fluentcore.utils.PagedListConverter;
import rx.Observable;
import java.util.List;
The implementation of Subscription
. /**
* The implementation of {@link Subscription}.
*/
final class SubscriptionImpl extends
IndexableWrapperImpl<SubscriptionInner>
implements
Subscription {
private final SubscriptionsInner client;
SubscriptionImpl(SubscriptionInner innerModel, final SubscriptionsInner client) {
super(innerModel);
this.client = client;
}
@Override
public String subscriptionId() {
return this.inner().subscriptionId();
}
@Override
public String tenantId() {
return this.inner().tenantId();
}
@Override
public String displayName() {
return this.inner().displayName();
}
@Override
public SubscriptionState state() {
return this.inner().state();
}
@Override
public SubscriptionPolicies subscriptionPolicies() {
return this.inner().subscriptionPolicies();
}
@Override
public List<ManagedByTenant> managedByTenants() {
return this.inner().managedByTenants();
}
@Override
public PagedList<Location> listLocations() {
PagedListConverter<LocationInner, Location> converter = new PagedListConverter<LocationInner, Location>() {
@Override
public Observable<Location> typeConvertAsync(LocationInner locationInner) {
return Observable.just((Location) new LocationImpl(locationInner));
}
};
return converter.convert(toPagedList(client.listLocations(this.subscriptionId())));
}
@Override
public Location getLocationByRegion(Region region) {
if (region != null) {
PagedList<Location> locations = listLocations();
for (Location location : locations) {
if (region.equals(location.region())) {
return location;
}
}
}
return null;
}
private PagedList<LocationInner> toPagedList(List<LocationInner> list) {
PageImpl<LocationInner> page = new PageImpl<>();
page.setItems(list);
page.setNextPageLink(null);
return new PagedList<LocationInner>(page) {
@Override
public Page<LocationInner> nextPage(String nextPageLink) {
return null;
}
};
}
}