1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18 package org.apache.spark.sql.catalyst.expressions; 19 20 import org.apache.spark.annotation.DeveloperApi; 21 22 import java.lang.annotation.Retention; 23 import java.lang.annotation.RetentionPolicy; 24 25 /** 26 * ::DeveloperApi:: 27 28 * A function description type which can be recognized by FunctionRegistry, and will be used to 29 * show the usage of the function in human language. 30 * 31 * `usage()` will be used for the function usage in brief way. 32 * `extended()` will be used for the function usage in verbose way, suppose 33 * an example will be provided. 34 * 35 * And we can refer the function name by `_FUNC_`, in `usage` and `extended`, as it's 36 * registered in `FunctionRegistry`. 37 */ 38 @DeveloperApi 39 @Retention(RetentionPolicy.RUNTIME) 40 public @interface ExpressionDescription { usage()41 String usage() default "_FUNC_ is undocumented"; extended()42 String extended() default "\n No example/argument for _FUNC_.\n"; 43 } 44