/** * 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.graphrbac.implementation; import com.microsoft.azure.PagedList; import com.microsoft.azure.management.apigeneration.LangDefinition; import com.microsoft.azure.management.graphrbac.User; import com.microsoft.azure.management.graphrbac.Users; import com.microsoft.azure.management.resources.fluentcore.arm.collection.implementation.ReadableWrappersImpl; import com.microsoft.azure.management.resources.fluentcore.arm.models.HasManager; import com.microsoft.azure.management.resources.fluentcore.model.HasInner; import com.microsoft.rest.ServiceFuture; import com.microsoft.rest.ServiceCallback; import rx.Observable; import rx.functions.Func1; /** * The implementation of Users and its parent interfaces. */ @LangDefinition(ContainerName = "/Microsoft.Azure.Management.Fluent.Graph.RBAC") class UsersImpl extends ReadableWrappersImpl< User, UserImpl, UserInner> implements Users, HasManager<GraphRbacManager>, HasInner<UsersInner> { private UsersInner innerCollection; private GraphRbacManager manager; UsersImpl( final UsersInner client, final GraphRbacManager graphRbacManager) { this.innerCollection = client; this.manager = graphRbacManager; } @Override public PagedList<User> list() { return wrapList(this.innerCollection.list()); } @Override protected UserImpl wrapModel(UserInner userInner) { if (userInner == null) { return null; } return new UserImpl(userInner, this.innerCollection); } @Override public UserImpl getByObjectId(String objectId) { return new UserImpl(innerCollection.get(objectId), innerCollection); } @Override public UserImpl getByUserPrincipalName(String upn) { return new UserImpl(innerCollection.get(upn), innerCollection); } @Override public ServiceFuture<User> getByUserPrincipalNameAsync(String upn, final ServiceCallback<User> callback) { return ServiceFuture.fromBody(getByUserPrincipalNameAsync(upn), callback); } @Override public Observable<User> getByUserPrincipalNameAsync(String upn) { return innerCollection.getAsync(upn) .map(new Func1<UserInner, User>() { @Override public User call(UserInner userInnerServiceResponse) { return new UserImpl(userInnerServiceResponse, innerCollection); } }); } @Override public GraphRbacManager manager() { return this.manager; } @Override public UsersInner inner() { return this.innerCollection; } @Override public Observable<User> listAsync() { return wrapPageAsync(this.inner().listAsync()); } }