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.fluentcore.arm.models.implementation;
import com.microsoft.azure.Page;
import com.microsoft.azure.PagedList;
import com.microsoft.azure.management.resources.ResourceGroup;
import com.microsoft.azure.management.resources.implementation.PageImpl;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
Defines a list of resources paginated across resource groups.
Type parameters: - <E> – the item type
/**
* Defines a list of resources paginated across resource groups.
*
* @param <E> the item type
*/
public abstract class GroupPagedList<E> extends PagedList<E> {
private Iterator<ResourceGroup> resourceGroupItr;
Creates an instance from a list of resource groups.
Params: - resourceGroupList – the list of resource groups
/**
* Creates an instance from a list of resource groups.
*
* @param resourceGroupList the list of resource groups
*/
public GroupPagedList(PagedList<ResourceGroup> resourceGroupList) {
this.resourceGroupItr = resourceGroupList.iterator();
setCurrentPage(nextPage("dummy"));
}
@Override
public Page<E> nextPage(String s) {
if (resourceGroupItr.hasNext()) {
ResourceGroup resourceGroup = resourceGroupItr.next();
PageImpl<E> page = new PageImpl<>();
page.setItems(listNextGroup(resourceGroup.name()));
page.setNextPageLink(s);
return page;
} else {
// return an empty page without next link so that iteration will terminate
PageImpl<E> page = new PageImpl<>();
page.setItems(new ArrayList<E>());
return page;
}
}
Override this method to implement how to list resources in a resource group.
Params: - resourceGroupName – the name of the resource group
Returns: the list of resources in this group.
/**
* Override this method to implement how to list resources in a resource group.
*
* @param resourceGroupName the name of the resource group
* @return the list of resources in this group.
*/
public abstract List<E> listNextGroup(String resourceGroupName);
}