summaryrefslogtreecommitdiff
path: root/src/main/java/com/it_jaros/jscanner/PortRange.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/it_jaros/jscanner/PortRange.java')
-rw-r--r--src/main/java/com/it_jaros/jscanner/PortRange.java36
1 files changed, 3 insertions, 33 deletions
diff --git a/src/main/java/com/it_jaros/jscanner/PortRange.java b/src/main/java/com/it_jaros/jscanner/PortRange.java
index 9e66371..3a735c5 100644
--- a/src/main/java/com/it_jaros/jscanner/PortRange.java
+++ b/src/main/java/com/it_jaros/jscanner/PortRange.java
@@ -2,17 +2,12 @@ package com.it_jaros.jscanner;
import java.util.BitSet;
import java.util.Iterator;
-import java.util.NoSuchElementException;
-public class PortRange implements Iterator<Integer> {
+public class PortRange {
public static final int MIN_PORT = 1;
public static final int MAX_PORT = 65535;
private final BitSet specifiedPorts = new BitSet(MAX_PORT);
- private final BitSet availablePorts = new BitSet(MAX_PORT);
-
- private int currentPortCursor;
- private int done = 0;
public PortRange(String ports) {
if (ports == null || "".equals(ports)) {
@@ -22,9 +17,6 @@ public class PortRange implements Iterator<Integer> {
} else {
parsePortRange(ports);
}
-
- availablePorts.or(specifiedPorts);
- currentPortCursor = availablePorts.nextSetBit(MIN_PORT);
}
/**
@@ -80,29 +72,7 @@ public class PortRange implements Iterator<Integer> {
}
}
- @Override
- public Integer next() {
- int p = availablePorts.nextSetBit(currentPortCursor);
- if (p > 0) {
- availablePorts.clear(p);
- currentPortCursor = p + 1;
- done++;
- return p;
- }
-
- throw new NoSuchElementException("Reached end of port range");
- }
-
- @Override
- public boolean hasNext() {
- return availablePorts.nextSetBit(currentPortCursor) > 0;
- }
-
- public int getTotal() {
- return specifiedPorts.cardinality();
- }
-
- public int getDone() {
- return done;
+ public Iterator<Integer> iterator() {
+ return new PortRangeIterator(specifiedPorts);
}
} \ No newline at end of file