public List<CharSequence> getConstructorAnnotations() {
    if (constructorAnnotations == null) {
      List<ExecutableElement> constructors = ElementFilter.constructorsIn(element.getEnclosedElements());
      for (ExecutableElement c : constructors) {
        if (c.getParameters().isEmpty()) {
          Set<Modifier> modifiers = c.getModifiers();
          if (modifiers.contains(Modifier.PRIVATE)) {
            report()
                .withElement(c)
                .error("Constructor in an abstract value type should not be private");
          }
          constructorAnnotations =
              Annotations.getAnnotationLines(
                  c,
                  Collections.<String>emptySet(),
                  true,
                  false,
                  ElementType.CONSTRUCTOR,
                  newTypeStringResolver(),
                  null);
        }
      }
      if (constructorAnnotations == null) {
        for (ExecutableElement c : constructors) {
          report()
              .withElement(c)
              .error("Constructor should not have parameters in an abstract value type to be extended");
        }
        constructorAnnotations = ImmutableList.of();
      }
    }
    return constructorAnnotations;
  }
Should be called when it is known that there type adapters generation provided.
@return the type adapters annotation
value-processor/src/org/immutables/value/processor/meta/ValueType.java