flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From pnowojski <...@git.apache.org>
Subject [GitHub] flink pull request #6264: [FLINK-8558] [table] Add unified format interfaces...
Date Wed, 11 Jul 2018 07:56:47 GMT
Github user pnowojski commented on a diff in the pull request:

    https://github.com/apache/flink/pull/6264#discussion_r201592609
  
    --- Diff: flink-libraries/flink-table/src/main/scala/org/apache/flink/table/formats/TableFormatFactory.scala
---
    @@ -0,0 +1,85 @@
    +/*
    + * Licensed to the Apache Software Foundation (ASF) under one
    + * or more contributor license agreements.  See the NOTICE file
    + * distributed with this work for additional information
    + * regarding copyright ownership.  The ASF licenses this file
    + * to you under the Apache License, Version 2.0 (the
    + * "License"); you may not use this file except in compliance
    + * with the License.  You may obtain a copy of the License at
    + *
    + *     http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +
    +package org.apache.flink.table.formats
    +
    +import java.util
    +
    +import org.apache.flink.api.common.serialization.{DeserializationSchema, SerializationSchema}
    +
    +/**
    +  * A factory to create different table format instances. This factory is used with Java's
Service
    +  * Provider Interfaces (SPI) for discovering. A factory is called with a set of normalized
    +  * properties that describe the desired format. The factory allows for matching to the
given set of
    +  * properties. See also [[SerializationSchemaFactory]] and [[DeserializationSchemaFactory]]
for
    +  * creating configured instances of format classes accordingly.
    +  *
    +  * Classes that implement this interface need to be added to the
    +  * "META_INF/services/org.apache.flink.table.formats.TableFormatFactory' file of a JAR
file in
    +  * the current classpath to be found.
    +  *
    +  * @tparam T record type that the format produces or consumes
    +  */
    +trait TableFormatFactory[T] {
    +
    +  /**
    +    * Specifies the context that this factory has been implemented for. The framework
guarantees
    +    * to only use the factory if the specified set of properties and values are met.
    +    *
    +    * Typical properties might be:
    +    *   - format.type
    +    *   - format.version
    +    *
    +    * Specified property versions allow the framework to provide backwards compatible
properties
    +    * in case of string format changes:
    +    *   - format.property-version
    +    *
    +    * An empty context means that the factory matches for all requests.
    +    */
    +  def requiredContext(): util.Map[String, String]
    --- End diff --
    
    I still do not understand this name. Could you think about something more descriptive?
It seems to me like this method returns the set of properties that are required to match given
factory. Thus `requiredProperties` seems better, but maybe I'm missing something?


---

Mime
View raw message