code: protected boolean isValidInternal(Class < T > javaClass,
              CobolContext cobolContext, byte[] hostData, int start) {
  
          int end = start + getBytesLen();
  
          // examine nibbles in each byte in turn
          int[] nibbles = new int[2];
  
          // all nibbles, except the last one, must hold valid digits
          for (int i = start; i < end - 1; i++) {
              setNibbles(nibbles, hostData[i]);
              if (!isDigit(nibbles[0]) || !isDigit(nibbles[1])) {
                  return false;
              }
          }
  
          // Check last byte
          setNibbles(nibbles, hostData[end - 1]);
          if (!isDigit(nibbles[0])) {
              return false;
          }
          // Last byte must hold a valid sign (in the right nibble)
  		if (isSigned()) {
  			if (nibbles[1] != cobolContext.getPositiveSignNibbleValue()
  					&& nibbles[1] != cobolContext.getNegativeSignNibbleValue()
  					&& nibbles[1] != cobolContext.getUnspecifiedSignNibbleValue()) {
  				return false;
  			}
  		} else {
  			if (nibbles[1] != cobolContext.getUnspecifiedSignNibbleValue()) {
  				return false;
  			}
  		}
  
          return true;
      }
docs: {@inheritDoc}