@Override
	public Type asType() {
	    if (lowerBound == null || "?".equals(lowerBound)) {
	        if (upperBounds.isEmpty()) {
	            throw new UnsupportedOperationException(
	                "This generic has neither lower or upper bound, so it " +
                    "can't be parsed into a Type.");
            } else if (upperBounds.size() > 1) {
                throw new UnsupportedOperationException(
                    "Since no lowerBound is specified, this Generic needs " +
                    "exactly one upper bound for a Type to be parsed. " +
                    "Instead, it has " + upperBounds);
            } else {
                return upperBounds.get(0);
            }
        }
		return SimpleType.create(lowerBound);
	}
Copy constructor.

@param prototype  the prototype
common-parent/codegen/src/main/java/com/speedment/common/codegen/internal/model/GenericImpl.java