package com.constellio.app.modules.es.migrations; import java.util.ArrayList; import java.util.List; import com.constellio.app.entities.modules.MigrationResourcesProvider; import com.constellio.app.entities.modules.MigrationScript; import com.constellio.app.entities.schemasDisplay.SchemaDisplayConfig; import com.constellio.app.services.factories.AppLayerFactory; import com.constellio.app.services.schemasDisplay.SchemaDisplayManagerTransaction; import com.constellio.app.services.schemasDisplay.SchemasDisplayManager; import com.constellio.model.entities.schemas.MetadataSchema; import com.constellio.model.entities.schemas.MetadataSchemaType; import com.constellio.model.services.schemas.MetadataSchemasManager; public class ESMigrationTo6_4 implements MigrationScript { @Override public String getVersion() { return "6.4"; } @Override public void migrate(String collection, MigrationResourcesProvider provider, AppLayerFactory factory) throws Exception { configureTableMetadatas(collection, factory); } private void configureTableMetadatas(String collection, AppLayerFactory factory) { SchemaDisplayManagerTransaction transaction = new SchemaDisplayManagerTransaction(); MetadataSchemasManager metadataSchemasManager = factory.getModelLayerFactory().getMetadataSchemasManager(); List<MetadataSchemaType> schemaTypes = metadataSchemasManager .getSchemaTypes(collection).getSchemaTypes(); SchemasDisplayManager manager = factory.getMetadataSchemasDisplayManager(); for (MetadataSchemaType metadataSchemaType : schemaTypes) { for (MetadataSchema metadataSchema : metadataSchemaType.getCustomSchemas()) { if (!metadataSchema.getCode().contains(" ")) { SchemaDisplayConfig customConfig = manager.getSchema(collection, metadataSchema.getCode()); SchemaDisplayConfig newCustomConfig = customConfig.withTableMetadataCodes(new ArrayList<String>()); transaction.add(newCustomConfig); } } SchemaDisplayConfig config = manager.getSchema(collection, metadataSchemaType.getDefaultSchema().getCode()); SchemaDisplayConfig newConfig = config.withTableMetadataCodes(config.getSearchResultsMetadataCodes()); transaction.add(newConfig); } manager.execute(transaction); } }