package com.constellio.app.modules.rm.migrations;
import com.constellio.app.entities.modules.MetadataSchemasAlterationHelper;
import com.constellio.app.entities.modules.MigrationResourcesProvider;
import com.constellio.app.entities.modules.MigrationScript;
import com.constellio.app.modules.rm.model.calculators.document.DocumentMimeTypeCalculator;
import com.constellio.app.modules.rm.wrappers.Document;
import com.constellio.app.services.factories.AppLayerFactory;
import com.constellio.model.entities.schemas.MetadataValueType;
import com.constellio.model.services.schemas.builders.MetadataSchemaTypesBuilder;
public class RMMigrationTo7_0_5 implements MigrationScript {
AppLayerFactory appLayerFactory;
String collection;
MigrationResourcesProvider migrationResourcesProvider;
@Override
public String getVersion() {
return "7.0.5";
}
@Override
public void migrate(String collection, MigrationResourcesProvider provider, AppLayerFactory factory)
throws Exception {
this.appLayerFactory = factory;
this.collection = collection;
migrationResourcesProvider = provider;
new SchemaAlterationsFor7_0_5(collection, provider, factory).migrate();
}
public static class SchemaAlterationsFor7_0_5 extends MetadataSchemasAlterationHelper {
protected SchemaAlterationsFor7_0_5(String collection, MigrationResourcesProvider provider, AppLayerFactory factory) {
super(collection, provider, factory);
}
@Override
protected void migrate(MetadataSchemaTypesBuilder typesBuilder) {
typesBuilder.getDefaultSchema(Document.SCHEMA_TYPE).create(Document.MIME_TYPE).setType(MetadataValueType.STRING)
.defineDataEntry().asCalculated(DocumentMimeTypeCalculator.class);
}
}
}