code: private static boolean isTransformPossible(byte[] bytes) {
          if (bytes.length < 8) {
              return false;
          }
  		
          // The transform method will be called for all classes, but ASM is only
          // capable of processing some class file format versions.  That's ok
          // because the transformer only modifies classes that have been
          // preprocessed by our build anyway.
          //
          // ASM doesn't provide a way to determine its max supported version, so
          // we hard code the supported version number.
          int classFileVersion = ((bytes[6] & 0xff) << 8) | (bytes[7] & 0xff);
          
          //Limit bytecode that we transform based on JDK retransform compatibility
          //If we have issues here, 1.8 classes will be instead handled by a separate
          //transformer that only does those classes.
          if (isJDK8WithHotReplaceBug)
          	return classFileVersion == Opcodes.V1_8;
          else
          	return false; //Don't do anything except 1.8 classes on specific JDKs
      }
docs: Determines whether or not class bytes can be transformed.
  
  @param bytes the class bytes
  @return true if the class can be transformed