public DataMapAdapter()

in src/main/java/org/apache/cayenne/modeler/adapters/DataMapAdapter.java [63:108]


    public DataMapAdapter(final DataMap dataMap)
    {
        // Must be assigned before property binding.
        this.dataMap = dataMap;

        try
        {
            nameProperty = bindString(DATA_MAP_NAME);
//            locationProperty = JavaBeanStringPropertyBuilder.create().bean(dataMap).name("map").build();

            // TODO: Fix Cayenne?  The DEFAULT_QUOTE_SQL_IDENTIFIERS_PROPERTY constant is incorrect.
            quoteSQLIdentifiersProperty = bindBoolean(QUOTE_SQL_IDENTIFIERS);

            defaultCatalogProperty = bindString(DataMap.DEFAULT_CATALOG_PROPERTY);
            defaultSchemaProperty  = bindString(DataMap.DEFAULT_SCHEMA_PROPERTY);
            defaultPackageProperty = bindString(DataMap.DEFAULT_PACKAGE_PROPERTY);

            defaultSuperclassProperty = bindString(DataMap.DEFAULT_SUPERCLASS_PROPERTY);
            defaultLockTypeProperty   = bindInteger(DataMap.DEFAULT_LOCK_TYPE_PROPERTY);

            clientSupportedProperty         = bindBoolean(DataMap.CLIENT_SUPPORTED_PROPERTY);
            defaultClientPackageProperty    = bindString(DataMap.DEFAULT_CLIENT_PACKAGE_PROPERTY);
            defaultClientSuperclassProperty = bindString(DataMap.DEFAULT_CLIENT_SUPERCLASS_PROPERTY);
        }
        catch (final NoSuchMethodException e)
        {
            throw new RuntimeException("Fix the builder.", e);
        }

        // Create ObjectEntityAdapters for all object entities.
        dataMap.getObjEntities().stream().forEach(objEntity -> objectEntityAdapters.add(new ObjectEntityAdapter(objEntity)));

        objectEntityAdapters.stream().forEach(objectEntityAdapter -> objectEntityAdapter.setDataMapAdapter(this));

        // Sort the ObjectEntityAdapters (by their name).
        sortObjectEntities();

        // Add change listeners for all ObjectEntityAdapter name changes and automatically re-sort.
        objectEntityAdapters.stream().forEach(objectEntityAdapter ->
            objectEntityAdapter.nameProperty().addListener((observable, oldValue, newValue) -> sortObjectEntities()));

        // Create DatabaseEntityAdapters for all database entities.
        dataMap.getDbEntities().stream().forEach(dbEntity -> databaseEntityAdapters.add(new DatabaseEntityAdapter(dbEntity)));

        databaseEntityAdapters.stream().forEach(databaseEntityAdapter -> databaseEntityAdapter.setDataMapAdapter(this));
    }