code: public void visit(CobolPrimitiveType < ? > type) {
          if (type.isValid(getCobolContext(), getHostData(), getLastPos())) {
  
              // Perform conversion for those values that might be needed later
              if (type.isOdoObject() || isCustomVariable(type, getCurFieldName())) {
                  FromHostPrimitiveResult < ? > result = type.fromHost(
                          getCobolContext(), getHostData(), getLastPos());
                  if (result.isSuccess()) {
                      putVariable(getCurFieldName(), result.getValue());
                  } else {
                      throw new FromCobolException(result.getErrorMessage(),
                              getCurFieldFullCobolName(), type);
                  }
              }
              setLastPos(getLastPos() + type.getBytesLen());
  
          } else {
              valid = false;
          }
      }
docs: The logic is similar to
  {@link FromCobolVisitor#visitCobolPrimitiveType(CobolPrimitiveType, PrimitiveTypeHandler)}
  but we try to avoid converting data unless this is needed for range
  comparison or because the field is a custom variable or an ODOObject.
  
  <p/>
  {@inheritDoc}