class DataModelerEventObserver {

    public void onDataObjectCreated(@Observes DataObjectCreatedEvent event) {
        Path descriptorPath;
        PersistenceDescriptorModel persistenceDescriptor;

        if (isPersistable(event.getCurrentDataObject())) {
            descriptorPath = descriptorService.calculatePersistenceDescriptorPath(event.getCurrentModule());
            persistenceDescriptor = safeLoad(descriptorPath);
            if (persistenceDescriptor != null &&
                    !containsClass(persistenceDescriptor.getPersistenceUnit(), event.getCurrentDataObject().getClassName())) {
                persistenceDescriptor.getPersistenceUnit().getClasses().add(new PersistableDataObject(event.getCurrentDataObject().getClassName()));
                descriptorService.save(descriptorPath,
                                       persistenceDescriptor,
                                       null,
                                       "Entity added to persistence descriptor");
            }
        }
    }

    public  DataModelerEventObserver();
    @Inject public  DataModelerEventObserver(final PersistenceDescriptorService descriptorService,
                                    final @Named("ioStrategy") IOService ioService);

}