blob: 2015bbe60d648d86c33a582d2c9bae9b5274e5c8 [file] [log] [blame]
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -08001/**
2* Copyright 2012, Big Switch Networks, Inc.
3* Originally created by David Erickson, Stanford University
4*
5* Licensed under the Apache License, Version 2.0 (the "License"); you may
6* not use this file except in compliance with the License. You may obtain
7* a copy of the License at
8*
9* http://www.apache.org/licenses/LICENSE-2.0
10*
11* Unless required by applicable law or agreed to in writing, software
12* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14* License for the specific language governing permissions and limitations
15* under the License.
16**/
17
18package net.floodlightcontroller.devicemanager.internal;
19
20import java.util.Iterator;
21
22/**
23 * An iterator for handling device index queries
24 */
25public class DeviceIndexInterator implements Iterator<Device> {
26 private DeviceManagerImpl deviceManager;
27 private Iterator<Long> subIterator;
28
29 /**
30 * Construct a new device index iterator referring to a device manager
31 * instance and an iterator over device keys
32 *
33 * @param deviceManager the device manager
34 * @param subIterator an iterator over device keys
35 */
36 public DeviceIndexInterator(DeviceManagerImpl deviceManager,
37 Iterator<Long> subIterator) {
38 super();
39 this.deviceManager = deviceManager;
40 this.subIterator = subIterator;
41 }
42
43 @Override
44 public boolean hasNext() {
45 return subIterator.hasNext();
46 }
47
48 @Override
49 public Device next() {
50 Long next = subIterator.next();
51 return deviceManager.deviceMap.get(next);
52 }
53
54 @Override
55 public void remove() {
56 subIterator.remove();
57 }
58
59}