code: protected void generateConstructor(SourceWriter sourceWriter, String simpleName, JClassType inputType, PojoDescriptor<?> pojoDescriptor,
        GeneratorContext context) {
  
      generateSourcePublicConstructorDeclaration(sourceWriter, simpleName);
      sourceWriter.print("super(new ");
      sourceWriter.print(SimpleGenericTypeLimited.class.getSimpleName());
      sourceWriter.print("(");
      sourceWriter.print(inputType.getName());
      sourceWriter.print(".class), ");
      sourceWriter.print(AbstractPojoDescriptorBuilderLimited.class.getSimpleName());
      sourceWriter.println(".getInstance());");
  
      // local variable for property descriptor
      sourceWriter.print(PojoPropertyDescriptorImpl.class.getSimpleName());
      sourceWriter.println(" propertyDescriptor;");
  
      JClassType superType = getConfiguration().getSupportedSuperType(inputType, context.getTypeOracle());
      StatefulPropertyGenerator state = new StatefulPropertyGenerator(sourceWriter, superType);
  
      for (PojoPropertyDescriptor propertyDescriptor : pojoDescriptor.getPropertyDescriptors()) {
        state.generatePropertyDescriptorBlock(propertyDescriptor);
      }
      generateSourceCloseBlock(sourceWriter);
    }
docs: Generates the constructor of the {@link Class} to generate.
  
  @param sourceWriter is the {@link SourceWriter} where to {@link SourceWriter#print(String) write} the
  source code to.
  @param simpleName is the {@link Class#getSimpleName() simple name} of the {@link Class} to generate.
  @param inputType is the {@link JClassType} reflecting the input-type that triggered the generation via
  {@link com.google.gwt.core.client.GWT#create(Class)}.
  @param pojoDescriptor is the {@link PojoDescriptor}.
  @param context is the {@link GeneratorContext}.