code: protected boolean hasStamp(CtClass candidateClass) {
      boolean hasStamp;
      try {
        hasStamp = null != candidateClass.getDeclaredField(createStampFieldName());
      } catch (NotFoundException e) {
        hasStamp = false;
      }
      if (LOGGER.isDebugEnabled()) {
        LOGGER.debug("Stamp {}{} found in class {}",
                     createStampFieldName(),
                     (hasStamp ? "" : " NOT"),
                     candidateClass.getName());
      }
      return hasStamp;
    }
docs: Indicates whether a class holds a stamp or not.
  <p>
  By default, this method uses a boolean field named {@value #STAMP_FIELD_NAME} as the stamp. Any
  class overriding this method should also override {@link #applyStamp(CtClass)} and
  {@link #removeStamp(CtClass) }.
  </p>
  
  @param candidateClass the class to check must not be {@code null}.
  
  @return {@code true} if the class owns the stamp, otherwise {@code false}.
  
  @throws NullPointerException if passed {@code candidateClass} is {@code null}.
  @see CtClass#getDeclaredField(String)