HelpTopic.java
// 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.doris.qe.help;
import com.google.common.base.Splitter;
import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import java.util.List;
import java.util.Map;
// Stolen from MySQL help_topic table.
// Used to store one help topic.
public class HelpTopic implements HelpObjectIface {
public static final String DESCRIPTION = "description";
public static final String EXAMPLE = "example";
public static final String KEYWORDS = "keywords";
private static final String URL = "url";
private static final String CATEGORY = "category";
private String name = "";
private String description = "";
private String example = "";
private String url = "";
private List<String> keywords = Lists.newArrayList();
private String category = "";
public String getCategory() {
return category;
}
public List<String> getKeywords() {
return keywords;
}
public String getUrl() {
return url;
}
public String getExample() {
return example;
}
public String getDescription() {
return description;
}
public String getName() {
return name;
}
@Override
public void loadFrom(Map.Entry<String, Map<String, String>> doc) {
// Name, must be not empty.
if (Strings.isNullOrEmpty(doc.getKey())) {
return;
}
name = doc.getKey().toUpperCase();
// Description
String desc = doc.getValue().get(DESCRIPTION);
if (!Strings.isNullOrEmpty(desc)) {
description = desc;
}
// Example
String example = doc.getValue().get(EXAMPLE);
if (!Strings.isNullOrEmpty(example)) {
this.example = example;
}
// Url
String url = doc.getValue().get(URL);
if (!Strings.isNullOrEmpty(url)) {
this.url = url;
}
// Keyword
String keyword = doc.getValue().get(KEYWORDS);
if (!Strings.isNullOrEmpty(keyword)) {
List<String> keywordTexts = Lists.newArrayList(
Splitter.onPattern("\n").trimResults().omitEmptyStrings().split(keyword));
for (String keywordText : keywordTexts) {
if (keywordText.startsWith("```")) {
continue;
}
this.keywords.addAll(Lists.newArrayList(
Splitter.onPattern(",").trimResults().omitEmptyStrings().split(keywordText)));
}
}
// Category
String category = doc.getValue().get(CATEGORY);
if (!Strings.isNullOrEmpty(category)) {
this.category = category;
}
}
@Override
public String toString() {
return "name: " + name + ", desc: " + description;
}
}