@Override public ObjectTypeAndNamePredicateBuilder getObjectExclusionPredicateBuilder() { return new ObjectTypeAndNamePredicateBuilder(ObjectTypeAndNamePredicateBuilder.FilterType.EXCLUDE); }
@Override public ObjectTypeAndNamePredicateBuilder getObjectExclusionPredicateBuilder() { return new ObjectTypeAndNamePredicateBuilder(ObjectTypeAndNamePredicateBuilder.FilterType.EXCLUDE); }
@Override public ObjectTypeAndNamePredicateBuilder getObjectExclusionPredicateBuilder() { return new ObjectTypeAndNamePredicateBuilder(ObjectTypeAndNamePredicateBuilder.FilterType.EXCLUDE); }
@Override public ObjectTypeAndNamePredicateBuilder getObjectExclusionPredicateBuilder() { return new ObjectTypeAndNamePredicateBuilder(ObjectTypeAndNamePredicateBuilder.FilterType.EXCLUDE); }
@Override public ObjectTypeAndNamePredicateBuilder getObjectExclusionPredicateBuilder() { return new ObjectTypeAndNamePredicateBuilder(ObjectTypeAndNamePredicateBuilder.FilterType.EXCLUDE); }
public ObjectTypeAndNamePredicateBuilder add(ImmutableMultimap<String, String> otherObjectNamesByType) { if (otherObjectNamesByType == null) { return this; } MutableSetMultimap<String, String> empty = Multimaps.mutable.set.empty(); empty.putAll(this.objectNamesByType); empty.putAll(otherObjectNamesByType); return new ObjectTypeAndNamePredicateBuilder(empty.toImmutable(), this.filterType); }
public static ObjectTypeAndNamePredicateBuilder parse(String input, FilterType filterType) { ImmutableList<String> fullPredicateParts = ArrayAdapter.adapt(input.split(PREDICATE_SPLITTER)).toImmutable(); MutableListMultimap<String, String> objectNamesByType = Multimaps.mutable.list.empty(); for (String fullPredicatePart : fullPredicateParts) { ImmutableList<String> predicatePart = ArrayAdapter.adapt(fullPredicatePart.split(SINGLE_PREDICATE_SPLITTER)).toImmutable(); Validate.isTrue(predicatePart.size() == 2, "Must only have 1 delimiter " + SINGLE_PREDICATE_SPLITTER + " in this clause " + fullPredicatePart + " to find 2 parts, but found " + predicatePart.size() + " parts"); for (String objectName : predicatePart.get(1).split(PART_SPLITTER)) { objectNamesByType.put(predicatePart.get(0), objectName); } } return new ObjectTypeAndNamePredicateBuilder(objectNamesByType.toImmutable(), filterType); }
public ObjectTypeAndNamePredicateBuilder add(ImmutableMultimap<String, String> otherObjectNamesByType) { if (otherObjectNamesByType == null) { return this; } MutableSetMultimap<String, String> empty = Multimaps.mutable.set.empty(); empty.putAll(this.objectNamesByType); empty.putAll(otherObjectNamesByType); return new ObjectTypeAndNamePredicateBuilder(empty.toImmutable(), this.filterType); }
public static ObjectTypeAndNamePredicateBuilder parse(String input, FilterType filterType) { ImmutableList<String> fullPredicateParts = ArrayAdapter.adapt(input.split(PREDICATE_SPLITTER)).toImmutable(); MutableListMultimap<String, String> objectNamesByType = Multimaps.mutable.list.empty(); for (String fullPredicatePart : fullPredicateParts) { ImmutableList<String> predicatePart = ArrayAdapter.adapt(fullPredicatePart.split(SINGLE_PREDICATE_SPLITTER)).toImmutable(); Validate.isTrue(predicatePart.size() == 2, "Must only have 1 delimiter " + SINGLE_PREDICATE_SPLITTER + " in this clause " + fullPredicatePart + " to find 2 parts, but found " + predicatePart.size() + " parts"); for (String objectName : predicatePart.get(1).split(PART_SPLITTER)) { objectNamesByType.put(predicatePart.get(0), objectName); } } return new ObjectTypeAndNamePredicateBuilder(objectNamesByType.toImmutable(), filterType); }
private void conversionTest(String testName, String platformName) { final File outputFolder = new File("./target/revengTest/" + testName); FileUtils.deleteQuietly(outputFolder); final ReladomoSchemaConverter reladomoSchemaConverter = new ReladomoSchemaConverter(); final ChangeType tableChangeType = mock(ChangeType.class); when(tableChangeType.getName()).thenReturn(ChangeType.TABLE_STR); when(tableChangeType.getDirectoryName()).thenReturn("table"); DbPlatform platform = mock(DbPlatform.class); when(platform.getName()).thenReturn(platformName); when(platform.getChangeType(ChangeType.TABLE_STR)).thenReturn(tableChangeType); when(platform.getObjectExclusionPredicateBuilder()).thenReturn(new ObjectTypeAndNamePredicateBuilder(ObjectTypeAndNamePredicateBuilder.FilterType.EXCLUDE)); when(platform.convertDbObjectName()).thenReturn(Functions.getStringPassThru()); reladomoSchemaConverter.convertDdlsToDaFormat(platform, new File("./src/test/resources/reveng/input/" + testName), outputFolder, "yourSchema", true, null); DirectoryAssert.assertDirectoriesEqual(new File("./src/test/resources/reveng/expected/" + testName), new File(outputFolder, "final")); } }
private Predicate<? super ChecksumEntry> getPlatformInclusionPredicate(DbEnvironment env) { // 1) exclude those tables that are excluded by default from source code, e.g. explain tables or others that users configure ImmutableSet<Predicate<? super ChecksumEntry>> schemaObjectNamePredicates = env.getSchemas().collect(new Function<Schema, Predicate<? super ChecksumEntry>>() { @Override public Predicate<? super ChecksumEntry> valueOf(Schema schema) { return schema.getObjectExclusionPredicateBuilder().build(ChecksumEntry.TO_OBJECT_TYPE, ChecksumEntry.TO_NAME1); } }); // 2) exclude the audit tables MutableMultimap<String, String> tablesToExclude = Multimaps.mutable.set.empty(); tablesToExclude.putAll(ChangeType.TABLE_STR, Sets.immutable.with( env.getPlatform().convertDbObjectName().valueOf(getArtifactDeployerDao().getAuditContainerName()), env.getPlatform().convertDbObjectName().valueOf(dbChecksumManager.getChecksumContainerName()), env.getPlatform().convertDbObjectName().valueOf(getDeployExecutionDao().getExecutionContainerName()), env.getPlatform().convertDbObjectName().valueOf(getDeployExecutionDao().getExecutionAttributeContainerName()) )); ObjectTypeAndNamePredicateBuilder auditTablePredicateBuilder = new ObjectTypeAndNamePredicateBuilder(tablesToExclude.toImmutable(), ObjectTypeAndNamePredicateBuilder.FilterType.EXCLUDE); Predicates<? super ChecksumEntry> auditTablePredicate = auditTablePredicateBuilder.build(ChecksumEntry.TO_OBJECT_TYPE, ChecksumEntry.TO_NAME1); return auditTablePredicate.and(schemaObjectNamePredicates); }
private Predicate<? super ChecksumEntry> getPlatformInclusionPredicate(DbEnvironment env) { // 1) exclude those tables that are excluded by default from source code, e.g. explain tables or others that users configure ImmutableSet<Predicate<? super ChecksumEntry>> schemaObjectNamePredicates = env.getSchemas().collect(new Function<Schema, Predicate<? super ChecksumEntry>>() { @Override public Predicate<? super ChecksumEntry> valueOf(Schema schema) { return schema.getObjectExclusionPredicateBuilder().build(ChecksumEntry.TO_OBJECT_TYPE, ChecksumEntry.TO_NAME1); } }); // 2) exclude the audit tables MutableMultimap<String, String> tablesToExclude = Multimaps.mutable.set.empty(); tablesToExclude.putAll(ChangeType.TABLE_STR, Sets.immutable.with( env.getPlatform().convertDbObjectName().valueOf(getArtifactDeployerDao().getAuditContainerName()), env.getPlatform().convertDbObjectName().valueOf(dbChecksumManager.getChecksumContainerName()), env.getPlatform().convertDbObjectName().valueOf(getDeployExecutionDao().getExecutionContainerName()), env.getPlatform().convertDbObjectName().valueOf(getDeployExecutionDao().getExecutionAttributeContainerName()) )); ObjectTypeAndNamePredicateBuilder auditTablePredicateBuilder = new ObjectTypeAndNamePredicateBuilder(tablesToExclude.toImmutable(), ObjectTypeAndNamePredicateBuilder.FilterType.EXCLUDE); Predicates<? super ChecksumEntry> auditTablePredicate = auditTablePredicateBuilder.build(ChecksumEntry.TO_OBJECT_TYPE, ChecksumEntry.TO_NAME1); return auditTablePredicate.and(schemaObjectNamePredicates); }