@Override
	public boolean hasNext() {
		if ((classIterator == null) && (instanceIterator == null)) {
			return false;
		}
		
		if (classIterator != null) {
			if (!classIterator.hasNext()) {
				classIterator = null;
				
				if (instanceIterator == null) {
					return false;
				} else {
					if (!instanceIterator.hasNext()) {
						instanceIterator = null;
						return false;
					} else {
						return true;
					}
				}
			} else {
				return true;
			}
		} else {
			if (instanceIterator == null) {
				return false;
			} else {
				if (!instanceIterator.hasNext()) {
					instanceIterator = null;
					return false;
				} else {
					return true;
				}
			}
		}
	}