class MetadataDiffer {

    private static void diff(SwiftMetaData oldMeta, SwiftMetaData newMeta, Consumer<SwiftMetaDataColumn> columnMetaHandler) throws SwiftMetaDataException {
        for (int i = 0; i < newMeta.getColumnCount(); i++) {
            SwiftMetaDataColumn newColumnMeta = newMeta.getColumn(i + 1);

            Optional<SwiftMetaDataColumn> columnMeta = getColumn(oldMeta, newColumnMeta.getName());
            if (!columnMeta.isPresent()) {
                columnMetaHandler.accept(newColumnMeta);
                continue;
            }
            SwiftMetaDataColumn oldColumnMeta = columnMeta.get();
            if (!hasSameType(oldColumnMeta, newColumnMeta)) {
                SwiftLoggers.getLogger().warn("modify column type from {} to {} is not supported", oldColumnMeta, newColumnMeta);
            }
        }
    }

    public  MetadataDiffer(SwiftMetaData oldMeta, SwiftMetaData newMeta);

}