private InterceptorConstants getOrInsertInterceptorConstants(Class interceptorClass)
      throws IOException {
    if (interceptorClass.getDeclaredMethods().length == 0) {
      throw new InvalidClassException("Interceptor class format not valid.");
    }

    InterceptorConstants interceptorConstants = new InterceptorConstants();

    interceptorConstants.setInterceptorClassName(
        getOrInsertUtf8(interceptorClass.getName().replace(".", "/")));
    interceptorConstants.setInterceptorClass(
        getOrInsertClass(interceptorConstants.getInterceptorClassName()));

    interceptorConstants.setInterceptorMethodName(
        getOrInsertUtf8(Constants.INTERCEPTOR_METHOD_NAME));
    interceptorConstants.setInterceptorMethodType(
        getOrInsertUtf8(Constants.INTERCEPTOR_METHOD_TYPE));
    interceptorConstants.setInterceptorMethodNameAndType(
        getOrInsertNameAndType(
            interceptorConstants.getInterceptorMethodName(),
            interceptorConstants.getInterceptorMethodType()));
    interceptorConstants.setInterceptorMethod(
        getOrInsertMethodRef(
            interceptorConstants.getInterceptorClass(),
            interceptorConstants.getInterceptorMethodNameAndType()));

    interceptorConstants.setConstructorName(getOrInsertUtf8(Constants.DEFAULT_CONSTRUCTOR_NAME));
    interceptorConstants.setConstructorType(getOrInsertUtf8(Constants.DEFAULT_CONSTRUCTOR_TYPE));
    interceptorConstants.setConstructorNameAndType(
        getOrInsertNameAndType(
            interceptorConstants.getConstructorName(), interceptorConstants.getConstructorType()));
    interceptorConstants.setConstructor(
        getOrInsertMethodRef(
            interceptorConstants.getInterceptorClass(),
            interceptorConstants.getConstructorNameAndType()));

    return interceptorConstants;
  }