protected void validateInits(EntityType entityType, Property property) {
        for (String init : property.getInits()) {
            if (!init.startsWith("*") && property.getType() instanceof EntityType) {
                String initProperty = init.contains(".") ? init.substring(0, init.indexOf('.')) : init;
                Set<String> propertyNames = ((EntityType) property.getType()).getPropertyNames();
                if (!propertyNames.contains(initProperty)) {
                    processingEnv.getMessager().printMessage(Kind.ERROR,
                            "Illegal inits of " + entityType.getFullName() + "." + property.getName() + ": " +
                                    initProperty + " not found in " + propertyNames);
                }
            }
        }
    }
{@code AbstractQuerydslProcessor} is the base class for Querydsl annotation processors and
contains the main processing logic. The subclasses just provide the configuration.

@author tiwe
querydsl-apt/src/main/java/com/querydsl/apt/AbstractQuerydslProcessor.java