You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@inlong.apache.org by he...@apache.org on 2022/03/15 10:19:31 UTC
[incubator-inlong] branch master updated: [INLONG-3146][Manager] Optimize field type enums (#3147)
This is an automated email from the ASF dual-hosted git repository.
healchow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-inlong.git
The following commit(s) were added to refs/heads/master by this push:
new 19cf9ee [INLONG-3146][Manager] Optimize field type enums (#3147)
19cf9ee is described below
commit 19cf9ee6b8a4f3727a086d149a82e3e0bfeaeeda
Author: kipshi <48...@users.noreply.github.com>
AuthorDate: Tue Mar 15 18:19:26 2022 +0800
[INLONG-3146][Manager] Optimize field type enums (#3147)
---
.../inlong/manager/client/api/SinkField.java | 1 +
.../inlong/manager/client/api/StreamField.java | 31 +-----------
.../manager/client/api/impl/InlongStreamImpl.java | 2 +-
.../client/api/util/InlongStreamSinkTransfer.java | 2 +-
.../inlong/manager/common/enums/FieldType.java | 57 ++++++++++++++++++++++
.../thirdparty/sort/util/FieldInfoUtils.java | 36 +++++++-------
6 files changed, 80 insertions(+), 49 deletions(-)
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/SinkField.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/SinkField.java
index 3dee543..a728a72 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/SinkField.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/SinkField.java
@@ -21,6 +21,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
+import org.apache.inlong.manager.common.enums.FieldType;
@Data
@NoArgsConstructor
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/StreamField.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/StreamField.java
index cc1661a..992c500 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/StreamField.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/StreamField.java
@@ -22,8 +22,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
-
-import java.util.Locale;
+import org.apache.inlong.manager.common.enums.FieldType;
@Data
@NoArgsConstructor
@@ -34,34 +33,6 @@ public class StreamField {
@ApiModelProperty("Field index")
private int index;
- public enum FieldType {
- INT,
- LONG,
- DOUBLE,
- FLOAT,
- STRING,
- CHAR,
- BYTE,
- BINARY,
- BOOLEAN,
- DATE,
- TIMESTAMP;
-
- @Override
- public String toString() {
- return name().toLowerCase(Locale.ROOT);
- }
-
- public static FieldType forName(String name) {
- for (FieldType value : values()) {
- if (value.toString().equals(name)) {
- return value;
- }
- }
- throw new IllegalArgumentException(String.format("Unsupported FieldType : %s", name));
- }
- }
-
@ApiModelProperty(value = "Field type", required = true)
private FieldType fieldType;
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/InlongStreamImpl.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/InlongStreamImpl.java
index 1228871..a4ca118 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/InlongStreamImpl.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/InlongStreamImpl.java
@@ -25,12 +25,12 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.compress.utils.Lists;
import org.apache.inlong.manager.client.api.InlongStream;
import org.apache.inlong.manager.client.api.StreamField;
-import org.apache.inlong.manager.client.api.StreamField.FieldType;
import org.apache.inlong.manager.client.api.StreamSink;
import org.apache.inlong.manager.client.api.StreamSource;
import org.apache.inlong.manager.client.api.util.AssertUtil;
import org.apache.inlong.manager.client.api.util.InlongStreamSinkTransfer;
import org.apache.inlong.manager.client.api.util.InlongStreamSourceTransfer;
+import org.apache.inlong.manager.common.enums.FieldType;
import org.apache.inlong.manager.common.pojo.sink.SinkResponse;
import org.apache.inlong.manager.common.pojo.source.SourceResponse;
import org.apache.inlong.manager.common.pojo.stream.FullStreamResponse;
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/util/InlongStreamSinkTransfer.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/util/InlongStreamSinkTransfer.java
index 2c48e91..9456cc1 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/util/InlongStreamSinkTransfer.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/util/InlongStreamSinkTransfer.java
@@ -22,12 +22,12 @@ import org.apache.commons.compress.utils.Lists;
import org.apache.inlong.manager.client.api.DataFormat;
import org.apache.inlong.manager.client.api.DataSeparator;
import org.apache.inlong.manager.client.api.SinkField;
-import org.apache.inlong.manager.client.api.StreamField.FieldType;
import org.apache.inlong.manager.client.api.StreamSink;
import org.apache.inlong.manager.client.api.auth.DefaultAuthentication;
import org.apache.inlong.manager.client.api.sink.ClickHouseSink;
import org.apache.inlong.manager.client.api.sink.HiveSink;
import org.apache.inlong.manager.client.api.sink.KafkaSink;
+import org.apache.inlong.manager.common.enums.FieldType;
import org.apache.inlong.manager.common.enums.FileFormat;
import org.apache.inlong.manager.common.enums.SinkType;
import org.apache.inlong.manager.common.pojo.sink.SinkFieldRequest;
diff --git a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/enums/FieldType.java b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/enums/FieldType.java
new file mode 100644
index 0000000..5cb23d0
--- /dev/null
+++ b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/enums/FieldType.java
@@ -0,0 +1,57 @@
+/*
+ * 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.inlong.manager.common.enums;
+
+import org.apache.inlong.manager.common.util.Preconditions;
+
+import java.util.Locale;
+
+public enum FieldType {
+ INT,
+ TINYINT,
+ SMALLINT,
+ BIGINT,
+ SHORT,
+ LONG,
+ DOUBLE,
+ FLOAT,
+ DECIMAL,
+ STRING,
+ FIXED,
+ BYTE,
+ BINARY,
+ BOOLEAN,
+ DATE,
+ TIME,
+ TIMESTAMP;
+
+ @Override
+ public String toString() {
+ return name().toLowerCase(Locale.ROOT);
+ }
+
+ public static FieldType forName(String name) {
+ Preconditions.checkNotNull(name, "FieldType should not be null");
+ for (FieldType value : values()) {
+ if (value.toString().equals(name) || value.toString().equals(name.toUpperCase(Locale.ROOT))) {
+ return value;
+ }
+ }
+ throw new IllegalArgumentException(String.format("Unsupported FieldType : %s", name));
+ }
+}
diff --git a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/thirdparty/sort/util/FieldInfoUtils.java b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/thirdparty/sort/util/FieldInfoUtils.java
index b7de742..bb386f8 100644
--- a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/thirdparty/sort/util/FieldInfoUtils.java
+++ b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/thirdparty/sort/util/FieldInfoUtils.java
@@ -18,6 +18,7 @@
package org.apache.inlong.manager.service.thirdparty.sort.util;
import org.apache.commons.lang3.StringUtils;
+import org.apache.inlong.manager.common.enums.FieldType;
import org.apache.inlong.manager.common.enums.MetaFieldType;
import org.apache.inlong.manager.common.pojo.sink.SinkFieldResponse;
import org.apache.inlong.sort.formats.common.ArrayFormatInfo;
@@ -180,45 +181,46 @@ public class FieldInfoUtils {
*/
public static FormatInfo convertFieldFormat(String type) {
FormatInfo formatInfo;
- switch (type) {
- case "boolean":
+ FieldType fieldType = FieldType.forName(type);
+ switch (fieldType) {
+ case BOOLEAN:
formatInfo = new BooleanFormatInfo();
break;
- case "tinyint":
- case "byte":
+ case TINYINT:
+ case BYTE:
formatInfo = new ByteFormatInfo();
break;
- case "smallint":
- case "short":
+ case SMALLINT:
+ case SHORT:
formatInfo = new ShortFormatInfo();
break;
- case "int":
+ case INT:
formatInfo = new IntFormatInfo();
break;
- case "bigint":
- case "long":
+ case BIGINT:
+ case LONG:
formatInfo = new LongFormatInfo();
break;
- case "float":
+ case FLOAT:
formatInfo = new FloatFormatInfo();
break;
- case "double":
+ case DOUBLE:
formatInfo = new DoubleFormatInfo();
break;
- case "decimal":
+ case DECIMAL:
formatInfo = new DecimalFormatInfo();
break;
- case "date":
+ case DATE:
formatInfo = new DateFormatInfo();
break;
- case "time":
+ case TIME:
formatInfo = new TimeFormatInfo();
break;
- case "timestamp":
+ case TIMESTAMP:
formatInfo = new TimestampFormatInfo();
break;
- case "binary":
- case "fixed":
+ case BINARY:
+ case FIXED:
formatInfo = new ArrayFormatInfo(ByteTypeInfo::new);
break;
default: // default is string