public void addProperty(Property field) {
        if (!propertyNames.contains(field.getName())) {
            propertyNames.add(field.getName());
            escapedPropertyNames.add(field.getEscapedName());
            properties.add(validateField(field));
        }
    }
Create a new {@code EntityType} instance for the given type and superTypes

@param type the type to be used
@param superTypes the super types to be used
@param variableNameFunction the variable name function to be used
querydsl-codegen/src/main/java/com/querydsl/codegen/EntityType.java