// com/mindviewinc/util/CountingGenerator.java // ©2015 MindView LLC: see Copyright.txt // Simple generator implementations. package com.mindviewinc.util; public class CountingGenerator { public static class Boolean implements Generator { private boolean value = false; @Override public java.lang.Boolean next() { value = !value; // Just flips back and forth return value; } } public static class Byte implements Generator { private byte value = 0; @Override public java.lang.Byte next() { return value++; } } static char[] chars = ("abcdefghijklmnopqrstuvwxyz" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ").toCharArray(); public static class Character implements Generator { int index = -1; @Override public java.lang.Character next() { index = (index + 1) % chars.length; return chars[index]; } } public static class String implements Generator { private int length = 7; Generator cg = new Character(); public String() {} public String(int length) { this.length = length; } @Override public java.lang.String next() { char[] buf = new char[length]; for(int i = 0; i < length; i++) buf[i] = cg.next(); return new java.lang.String(buf); } } public static class Short implements Generator { private short value = 0; @Override public java.lang.Short next() { return value++; } } public static class Integer implements Generator { private int value = 0; @Override public java.lang.Integer next() { return value++; } } public static class Long implements Generator { private long value = 0; @Override public java.lang.Long next() { return value++; } } public static class Float implements Generator { private float value = 0; @Override public java.lang.Float next() { float result = value; value += 1.0; return result; } } public static class Double implements Generator { private double value = 0.0; @Override public java.lang.Double next() { double result = value; value += 1.0; return result; } } }