private void validateMetaTypes() { for (Collection<EntityType> entityTypes : Arrays.asList( context.supertypes.values(), context.entityTypes.values(), context.extensionTypes.values(), context.embeddableTypes.values(), context.projectionTypes.values())) { for (EntityType entityType : entityTypes) { for (Property property : entityType.getProperties()) { if (property.getInits() != null && property.getInits().size() > 0) { validateInits(entityType, property); } } } } }
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; if (!((EntityType) property.getType()).getPropertyNames().contains(initProperty)) { processingEnv .getMessager() .printMessage( Kind.ERROR, "Illegal inits of " + entityType.getFullName() + "." + property.getName() + ": " + initProperty + " not found"); } } } }