001package net.automatalib.commons.util.collections;
002
003import java.util.ListIterator;
004
005public class CharRangeIterator implements ListIterator<Character> {
006        
007        private final IntRangeIterator delegate;
008 
009        public CharRangeIterator(char low, int step, int size) {
010                this(low, step, size, 0);
011        }
012        
013        public CharRangeIterator(char low, int step, int size, int curr) {
014                this(new IntRangeIterator(low, step, size, curr));
015        }
016        
017        
018        public CharRangeIterator(IntRangeIterator delegate) {
019                this.delegate = delegate;
020        }
021
022        @Override
023        public boolean hasNext() {
024                return delegate.hasNext();
025        }
026
027        @Override
028        public Character next() {
029                return Character.valueOf((char)delegate.intNext());
030        }
031
032        @Override
033        public boolean hasPrevious() {
034                return delegate.hasPrevious();
035        }
036
037        @Override
038        public Character previous() {
039                return Character.valueOf((char)delegate.intPrevious());
040        }
041
042        @Override
043        public int nextIndex() {
044                return delegate.nextIndex();
045        }
046
047        @Override
048        public int previousIndex() {
049                return delegate.previousIndex();
050        }
051
052        @Override
053        public void remove() {
054                throw new UnsupportedOperationException();
055        }
056
057        @Override
058        public void set(Character e) {
059                throw new UnsupportedOperationException();
060        }
061
062        @Override
063        public void add(Character e) {
064                throw new UnsupportedOperationException();
065        }
066
067}