code: public PojoBuilder withCompleteConstructor() {
  		pojoCreationCheck();
  
  		// first we need to check if there are any fields to add to constructor
  		// because default constructor (without fields) is already present
  		Map<String, JFieldVar> nonTransientAndNonStaticFields = getNonTransientAndNonStaticFields();
  
  		// if nonTransientAndNonStaticFields is not empty
  		if (!Optional.ofNullable(nonTransientAndNonStaticFields).map(Map::isEmpty).orElse(true)) {
  			// Create complete constructor
  			JMethod constructor = this.pojo.constructor(JMod.PUBLIC);
  			Map<String, JVar> superParametersToAdd = getSuperParametersToAdd(this.pojo);
  			addSuperConstructorInvocation(constructor, superParametersToAdd);
  			constructor.javadoc().add("Creates a new " + this.pojo.name() + ".");
  
  			Iterator<Map.Entry<String, JFieldVar>> iterator = nonTransientAndNonStaticFields.entrySet().iterator();
  
  			while (iterator.hasNext()) {
  				Map.Entry<String, JFieldVar> pair = iterator.next();
  
  				constructor.param(pair.getValue().type(), pair.getKey());
  				constructor.body().assign(JExpr._this().ref(pair.getKey()), JExpr.ref(pair.getKey()));
  			}
  		}
  
  		return this;
  	}
docs: Adds a constructor with all the fields in the POJO. If no fields are
  present it will not create an empty constructor because default
  constructor (without fields) is already present.
  
  @return This builder instance