@Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final GenericImpl other = (GenericImpl) obj;
        if (!Objects.equals(this.lowerBound, other.lowerBound)) {
            return false;
        }
        if (!Objects.equals(this.upperBounds, other.upperBounds)) {
            return false;
        }
        return this.type == other.type;
    }
Copy constructor.

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