final SchemaCompatibilityResult existing = mMemoizeMap.get(pair); if (existing != null) { if (existing.getCompatibility() == SchemaCompatibilityType.RECURSION_IN_PROGRESS) { return SchemaCompatibilityResult.compatible();
/** * {@inheritDoc} */ @Override public String toString() { return String.format( "SchemaCompatibilityResult{compatibility:%s, type:%s, readerSubset:%s, writerSubset:%s, message:%s, location:%s}", compatibility, schemaIncompatibilityType, readerSubset, writerSubset, message, getLocation()); }
return SchemaCompatibilityResult.incompatible( SchemaIncompatibilityType.READER_FIELD_MISSING_DEFAULT_VALUE, reader, writer, message, location); SchemaCompatibilityResult compatibility = getCompatibility("type", readerFieldSchema, writerField.schema(), location); if (compatibility.getCompatibility() == SchemaCompatibilityType.INCOMPATIBLE) { return compatibility; return SchemaCompatibilityResult.compatible();
case BYTES: case STRING: { return SchemaCompatibilityResult.compatible(); if (nameCheck.getCompatibility() == SchemaCompatibilityType.INCOMPATIBLE) { return nameCheck; if (nameCheck.getCompatibility() == SchemaCompatibilityType.INCOMPATIBLE) { return nameCheck; if (nameCheck.getCompatibility() == SchemaCompatibilityType.INCOMPATIBLE) { return nameCheck; location.push(Integer.toString(i)); SchemaCompatibilityResult compatibility = getCompatibility(reader, writerBranch); if (compatibility.getCompatibility() == SchemaCompatibilityType.INCOMPATIBLE) { String message = String.format("reader union lacking writer type: %s", writerBranch.getType()); return SchemaCompatibilityResult.incompatible( SchemaIncompatibilityType.MISSING_UNION_BRANCH, reader, writer, message, location); return SchemaCompatibilityResult.compatible(); location.push(Integer.toString(i)); SchemaCompatibilityResult result = getCompatibility(reader, s); if (result.getCompatibility() == SchemaCompatibilityType.INCOMPATIBLE) { return result;
case BYTES: case STRING: { return SchemaCompatibilityResult.compatible(); if (nameCheck.getCompatibility() == SchemaCompatibilityType.INCOMPATIBLE) { return nameCheck; if (nameCheck.getCompatibility() == SchemaCompatibilityType.INCOMPATIBLE) { return nameCheck; if (nameCheck.getCompatibility() == SchemaCompatibilityType.INCOMPATIBLE) { return nameCheck; location.push(Integer.toString(i)); SchemaCompatibilityResult compatibility = getCompatibility(reader, writerBranch); if (compatibility.getCompatibility() == SchemaCompatibilityType.INCOMPATIBLE) { String message = String.format("reader union lacking writer type: %s", writerBranch.getType()); return SchemaCompatibilityResult.incompatible( SchemaIncompatibilityType.MISSING_UNION_BRANCH, reader, writer, message, location); return SchemaCompatibilityResult.compatible(); location.push(Integer.toString(i)); SchemaCompatibilityResult result = getCompatibility(reader, s); if (result.getCompatibility() == SchemaCompatibilityType.INCOMPATIBLE) { return result;
final SchemaCompatibilityResult existing = mMemoizeMap.get(pair); if (existing != null) { if (existing.getCompatibility() == SchemaCompatibilityType.RECURSION_IN_PROGRESS) { return SchemaCompatibilityResult.compatible();
switch (compatibility.getCompatibility()) { case INCOMPATIBLE: { message = String.format("Data encoded using writer schema:%n%s%n"
switch (compatibility.getCompatibility()) { case INCOMPATIBLE: { message = String.format("Data encoded using writer schema:%n%s%n"
return SchemaCompatibilityResult.incompatible( SchemaIncompatibilityType.READER_FIELD_MISSING_DEFAULT_VALUE, reader, writer, message, location); SchemaCompatibilityResult compatibility = getCompatibility("type", readerFieldSchema, writerField.schema(), location); if (compatibility.getCompatibility() == SchemaCompatibilityType.INCOMPATIBLE) { return compatibility; return SchemaCompatibilityResult.compatible();
/** * Returns a details object representing an incompatible schema pair, * including error details. * * @param error type of error * @param reader reader schema * @param writer writer schema * @param message message * @param location location of error * * @return a SchemaCompatibilityResult object with INCOMPATIBLE * SchemaCompatibilityType, and state representing the violating * part. */ public static SchemaCompatibilityResult incompatible(SchemaIncompatibilityType error, Schema reader, Schema writer, String message, List<String> location) { return new SchemaCompatibilityResult(SchemaCompatibilityType.INCOMPATIBLE, error, reader, writer, message, location); }
/** * Returns a details object representing an incompatible schema pair, * including error details. * * @param error type of error * @param reader reader schema * @param writer writer schema * @param message message * @param location location of error * * @return a SchemaCompatibilityResult object with INCOMPATIBLE * SchemaCompatibilityType, and state representing the violating * part. */ public static SchemaCompatibilityResult incompatible(SchemaIncompatibilityType error, Schema reader, Schema writer, String message, List<String> location) { return new SchemaCompatibilityResult(SchemaCompatibilityType.INCOMPATIBLE, error, reader, writer, message, location); }
private SchemaCompatibilityResult checkFixedSize(final Schema reader, final Schema writer, final Stack<String> location) { location.push("size"); int actual = reader.getFixedSize(); int expected = writer.getFixedSize(); if (actual != expected) { String message = String.format("expected: %d, found: %d", expected, actual); return SchemaCompatibilityResult.incompatible( SchemaIncompatibilityType.FIXED_SIZE_MISMATCH, reader, writer, message, location); } location.pop(); return SchemaCompatibilityResult.compatible(); }
private SchemaCompatibilityResult checkSchemaNames(final Schema reader, final Schema writer, final Stack<String> location) { location.push("name"); if (!schemaNameEquals(reader, writer)) { String message = String.format("expected: %s", writer.getFullName()); return SchemaCompatibilityResult.incompatible( SchemaIncompatibilityType.NAME_MISMATCH, reader, writer, message, location); } location.pop(); return SchemaCompatibilityResult.compatible(); }
private SchemaCompatibilityResult checkSchemaNames(final Schema reader, final Schema writer, final Stack<String> location) { location.push("name"); if (!schemaNameEquals(reader, writer)) { String message = String.format("expected: %s", writer.getFullName()); return SchemaCompatibilityResult.incompatible( SchemaIncompatibilityType.NAME_MISMATCH, reader, writer, message, location); } location.pop(); return SchemaCompatibilityResult.compatible(); }
private SchemaCompatibilityResult checkFixedSize(final Schema reader, final Schema writer, final Stack<String> location) { location.push("size"); int actual = reader.getFixedSize(); int expected = writer.getFixedSize(); if (actual != expected) { String message = String.format("expected: %d, found: %d", expected, actual); return SchemaCompatibilityResult.incompatible( SchemaIncompatibilityType.FIXED_SIZE_MISMATCH, reader, writer, message, location); } location.pop(); return SchemaCompatibilityResult.compatible(); }
private SchemaCompatibilityResult typeMismatch(final Schema reader, final Schema writer, final Stack<String> location) { String message = String.format("reader type: %s not compatible with writer type: %s", reader.getType(), writer.getType()); return SchemaCompatibilityResult.incompatible(SchemaIncompatibilityType.TYPE_MISMATCH, reader, writer, message, location); } }
/** * {@inheritDoc} */ @Override public String toString() { return String.format( "SchemaCompatibilityResult{compatibility:%s, type:%s, readerSubset:%s, writerSubset:%s, message:%s, location:%s}", compatibility, schemaIncompatibilityType, readerSubset, writerSubset, message, getLocation()); }
private SchemaCompatibilityResult checkReaderEnumContainsAllWriterEnumSymbols( final Schema reader, final Schema writer, final Stack<String> location) { location.push("symbols"); final Set<String> symbols = new TreeSet<String>(writer.getEnumSymbols()); symbols.removeAll(reader.getEnumSymbols()); if (!symbols.isEmpty()) { return SchemaCompatibilityResult.incompatible( SchemaIncompatibilityType.MISSING_ENUM_SYMBOLS, reader, writer, symbols.toString(), location); } location.pop(); return SchemaCompatibilityResult.compatible(); }
public CompatibilityResult validate(Schema readerSchema, Schema writerSchema) { SchemaPairCompatibility schemaPairCompatibility = checkReaderWriterCompatibility(readerSchema, writerSchema); SchemaCompatibilityResult result = schemaPairCompatibility.getResult(); return result.getCompatibility() == SchemaCompatibilityType.COMPATIBLE ? CompatibilityResult.createCompatibleResult(writerSchema.toString()) : CompatibilityResult.createIncompatibleResult(result.getMessage(), result.getLocation(), writerSchema.toString()); }
public CompatibilityResult validate(Schema readerSchema, Schema writerSchema) { SchemaPairCompatibility schemaPairCompatibility = checkReaderWriterCompatibility(readerSchema, writerSchema); SchemaCompatibilityResult result = schemaPairCompatibility.getResult(); return result.getCompatibility() == SchemaCompatibilityType.COMPATIBLE ? CompatibilityResult.createCompatibleResult(writerSchema.toString()) : CompatibilityResult.createIncompatibleResult(result.getMessage(), result.getLocation(), writerSchema.toString()); }