package com.constellio.app.modules.robots.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.robots.model.wrappers.Robot; import com.constellio.app.modules.robots.model.wrappers.RobotLog; import com.constellio.app.services.factories.AppLayerFactory; import com.constellio.model.services.schemas.builders.MetadataSchemaBuilder; import com.constellio.model.services.schemas.builders.MetadataSchemaTypeBuilder; import com.constellio.model.services.schemas.builders.MetadataSchemaTypesBuilder; public class RobotsMigrationTo5_1_3 implements MigrationScript { @Override public String getVersion() { return "5.1.3"; } @Override public void migrate(String collection, MigrationResourcesProvider migrationResourcesProvider, AppLayerFactory appLayerFactory) throws Exception { new SchemasAlterationsFor5_1_3(collection, migrationResourcesProvider, appLayerFactory).migrate(); } static class SchemasAlterationsFor5_1_3 extends MetadataSchemasAlterationHelper { protected SchemasAlterationsFor5_1_3(String collection, MigrationResourcesProvider provider, AppLayerFactory factory) { super(collection, provider, factory); } @Override protected void migrate(MetadataSchemaTypesBuilder builder) { createRobotLogSchemaType(builder, builder.getSchemaType(Robot.SCHEMA_TYPE)); } private void createRobotLogSchemaType(MetadataSchemaTypesBuilder types, MetadataSchemaTypeBuilder robot) { MetadataSchemaTypeBuilder robotLog = types.createNewSchemaType(RobotLog.SCHEMA_TYPE); MetadataSchemaBuilder schema = robotLog.getDefaultSchema(); schema.createUndeletable(RobotLog.ROBOT).defineReferencesTo(robot).setDefaultRequirement(true).setEssential(true); } } }