Search in sources :

Example 1 with ValidationResult

use of org.alfresco.util.schemacomp.ValidationResult in project alfresco-repository by Alfresco.

the class NameValidator method validate.

@Override
public void validate(DbObject reference, DbObject target, DiffContext ctx) {
    String name = target.getName();
    if (log.isDebugEnabled()) {
        log.debug("Validating: pattern: [" + pattern + "], reference: " + reference + ", target: " + target);
    }
    if (pattern != null && !pattern.matcher(name).matches()) {
        if (log.isDebugEnabled()) {
            log.debug("Pattern [" + pattern + "] not matched.");
        }
        String message = I18NUtil.getMessage("system.schema_comp.name_validator", pattern);
        ValidationResult result = new ValidationResult(new DbProperty(target, "name"), message);
        ctx.getComparisonResults().add(result);
    } else {
        if (log.isDebugEnabled()) {
            log.debug("Pattern [" + pattern + "] matched OK.");
        }
    }
}
Also used : ValidationResult(org.alfresco.util.schemacomp.ValidationResult) DbProperty(org.alfresco.util.schemacomp.DbProperty)

Example 2 with ValidationResult

use of org.alfresco.util.schemacomp.ValidationResult in project alfresco-repository by Alfresco.

the class IndexColumnsValidator method validate.

@Override
public void validate(DbObject reference, DbObject target, DiffContext ctx) {
    if (!(target instanceof Index)) {
        throw new AlfrescoRuntimeException("IndexColumnsValidator could be used only in context of index object but was: " + target.toString());
    }
    List<String> referenceColumnNames = ((Index) reference).getColumnNames();
    List<String> targetColumnNames = ((Index) target).getColumnNames();
    for (int i = 0; i < targetColumnNames.size(); i++) {
        String columnName = targetColumnNames.get(i);
        if (getPattern() != null && !getPattern().matcher(columnName).matches()) {
            if (log.isDebugEnabled()) {
                log.debug("Pattern [" + getPattern() + "] not matched.");
            }
            String message = I18NUtil.getMessage("system.schema_comp.name_validator", getPattern());
            ValidationResult result = new ValidationResult(new DbProperty(target, "columnNames", i), message);
            ctx.getComparisonResults().add(result);
        } else {
            if (log.isDebugEnabled()) {
                log.debug("Pattern [" + getPattern() + "] matched OK.");
            }
        }
    }
    if (targetColumnNames.size() != referenceColumnNames.size()) {
        if (log.isDebugEnabled()) {
            log.debug("Number of columns in index " + target.getName() + "doesn't match expected result");
        }
        String message = I18NUtil.getMessage("system.schema_comp.index_columns_validator", targetColumnNames.size(), referenceColumnNames.size());
        ValidationResult result = new ValidationResult(new DbProperty(target, "columnNames"), message);
        ctx.getComparisonResults().add(result);
    } else {
        if (log.isDebugEnabled()) {
            log.debug("Number of columns is equivalent.");
        }
    }
}
Also used : AlfrescoRuntimeException(org.alfresco.error.AlfrescoRuntimeException) Index(org.alfresco.util.schemacomp.model.Index) ValidationResult(org.alfresco.util.schemacomp.ValidationResult) DbProperty(org.alfresco.util.schemacomp.DbProperty)

Example 3 with ValidationResult

use of org.alfresco.util.schemacomp.ValidationResult in project alfresco-repository by Alfresco.

the class TypeNameOnlyValidator method validate.

@Override
public void validate(DbObject reference, DbObject target, DiffContext ctx) {
    if (!(target instanceof Column)) {
        throw new AlfrescoRuntimeException("TypeNameOnlyValidator could be used only in context of column object but was: " + target.toString());
    }
    String referenceTypeName = ((Column) reference).getType();
    String targetTypeName = ((Column) target).getType();
    if (referenceTypeName.contains(TYPE_SIZE_SPLITTER)) {
        referenceTypeName = referenceTypeName.substring(0, referenceTypeName.indexOf(TYPE_SIZE_SPLITTER));
    }
    if (targetTypeName.contains(TYPE_SIZE_SPLITTER)) {
        targetTypeName = targetTypeName.substring(0, targetTypeName.indexOf(TYPE_SIZE_SPLITTER));
    }
    if (!referenceTypeName.equals(targetTypeName)) {
        String message = I18NUtil.getMessage("system.schema_comp.column_names_validator", targetTypeName, referenceTypeName);
        ValidationResult result = new ValidationResult(new DbProperty(target, "type"), message);
        ctx.getComparisonResults().add(result);
    }
}
Also used : Column(org.alfresco.util.schemacomp.model.Column) AlfrescoRuntimeException(org.alfresco.error.AlfrescoRuntimeException) ValidationResult(org.alfresco.util.schemacomp.ValidationResult) DbProperty(org.alfresco.util.schemacomp.DbProperty)

Example 4 with ValidationResult

use of org.alfresco.util.schemacomp.ValidationResult in project alfresco-repository by Alfresco.

the class SchemaVersionValidator method validate.

@Override
public void validate(DbObject referenceObj, DbObject targetObj, DiffContext ctx) {
    Schema reference = (Schema) referenceObj;
    Schema target = (Schema) targetObj;
    if (target.getVersion() < reference.getVersion()) {
        DbProperty targetProperty = new DbProperty(target, "version");
        String message = I18NUtil.getMessage("system.schema_comp.schema_version_validator", reference.getVersion());
        ctx.getComparisonResults().add(new ValidationResult(targetProperty, message));
    }
}
Also used : Schema(org.alfresco.util.schemacomp.model.Schema) ValidationResult(org.alfresco.util.schemacomp.ValidationResult) DbProperty(org.alfresco.util.schemacomp.DbProperty)

Example 5 with ValidationResult

use of org.alfresco.util.schemacomp.ValidationResult in project alfresco-repository by Alfresco.

the class SchemaVersionValidatorTest method validateWhenTargetVersionPredatesReference.

@Test
public void validateWhenTargetVersionPredatesReference() {
    reference = schemaWithVersion(501);
    target = schemaWithVersion(500);
    validator.validate(reference, target, ctx);
    assertEquals(1, results.size());
    ValidationResult result = (ValidationResult) results.get(0);
    assertEquals(500, result.getValue());
    assertEquals("version", result.getDbProperty().getPropertyName());
    assertSame(target, result.getDbProperty().getDbObject());
}
Also used : ValidationResult(org.alfresco.util.schemacomp.ValidationResult) Test(org.junit.Test)

Aggregations

ValidationResult (org.alfresco.util.schemacomp.ValidationResult)5 DbProperty (org.alfresco.util.schemacomp.DbProperty)4 AlfrescoRuntimeException (org.alfresco.error.AlfrescoRuntimeException)2 Column (org.alfresco.util.schemacomp.model.Column)1 Index (org.alfresco.util.schemacomp.model.Index)1 Schema (org.alfresco.util.schemacomp.model.Schema)1 Test (org.junit.Test)1