Package org.apache.avro

# Class LogicalType

java.lang.Object
org.apache.avro.LogicalType

Direct Known Subclasses:
  `LogicalTypes.BigDecimal`, `LogicalTypes.Date`, `LogicalTypes.Decimal`, `LogicalTypes.Duration`, `LogicalTypes.LocalTimestampMicros`, `LogicalTypes.LocalTimestampMillis`, `LogicalTypes.LocalTimestampNanos`, `LogicalTypes.TimeMicros`, `LogicalTypes.TimeMillis`, `LogicalTypes.TimestampMicros`, `LogicalTypes.TimestampMillis`, `LogicalTypes.TimestampNanos`, `LogicalTypes.Uuid`

public class LogicalType extends Object
Logical types provides an opt-in way to extend Avro's types. Logical types specify a way of representing a high-level type as a base Avro type. For example, a date is specified as the number of days after the unix epoch (or before using a negative value). This enables extensions to Avro's type system without breaking binary compatibility. Older versions see the base type and ignore the logical type.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`LOGICAL_TYPE_PROP`

## Constructor Summary

Constructors
Constructor
Description
`LogicalType(String logicalTypeName)`

## Method Summary

Modifier and Type
Method
Description
`Schema`
`addToSchema(Schema schema)`
Add this logical type to the given Schema.
`String`
`getName()`
Get the name of this logical type.
`void`
`validate(Schema schema)`
Validate this logical type for the given Schema.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### LOGICAL_TYPE_PROP

public static final String LOGICAL_TYPE_PROP

See Also:
  - Constant Field Values

## Constructor Details

### LogicalType

public LogicalType(String logicalTypeName)

## Method Details

### getName

public String getName()
Get the name of this logical type.

This name is set as the Schema property "logicalType".

Returns:
  the String name of the logical type

### addToSchema

public Schema addToSchema(Schema schema)
Add this logical type to the given Schema.

The "logicalType" property will be set to this type's name, and other type-specific properties may be added. The Schema is first validated to ensure it is compatible.

Parameters:
  `schema` - a Schema
Returns:
  the modified Schema
Throws:
  `IllegalArgumentException` - if the type and schema are incompatible

### validate

public void validate(Schema schema)
Validate this logical type for the given Schema.

This will throw an exception if the Schema is incompatible with this type. For example, a date is stored as an int and is incompatible with a fixed Schema.

Parameters:
  `schema` - a Schema
Throws:
  `IllegalArgumentException` - if the type and schema are incompatible