-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Delta Kernel] Add Delta Kernel java interfaces
Adds the initial java interfaces for Delta Kernel #1783. Also adds javastyle checks and some javadoc settings. N/A. Only adds interfaces. Closes #1808
- Loading branch information
1 parent
8e8ef79
commit a03ed32
Showing
56 changed files
with
3,566 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
<!-- | ||
~ 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. | ||
--> | ||
|
||
<!DOCTYPE suppressions PUBLIC | ||
"-//Puppy Crawl//DTD Suppressions 1.1//EN" | ||
"https://checkstyle.org/dtds/suppressions_1_1.dtd"> | ||
|
||
<!-- | ||
This file contains suppression rules for Checkstyle checks. | ||
Ideally only files that cannot be modified (e.g. third-party code) | ||
should be added here. All other violations should be fixed. | ||
--> | ||
|
||
<suppressions> | ||
</suppressions> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,221 @@ | ||
<!-- | ||
~ 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. | ||
--> | ||
|
||
<!DOCTYPE module PUBLIC | ||
"-//Puppy Crawl//DTD Check Configuration 1.3//EN" | ||
"https://checkstyle.org/dtds/configuration_1_3.dtd"> | ||
|
||
<!-- | ||
Checkstyle configuration based on the Google coding conventions from: | ||
- Google Java Style | ||
https://google.github.io/styleguide/javaguide.html | ||
with Spark-specific changes from: | ||
https://spark.apache.org/contributing.html#code-style-guide | ||
Checkstyle is very configurable. Be sure to read the documentation at | ||
http://checkstyle.sf.net (or in your downloaded distribution). | ||
Most Checks are configurable, be sure to consult the documentation. | ||
To completely disable a check, just comment it out or delete it from the file. | ||
Authors: Max Vetrenko, Ruslan Diachenko, Roman Ivanov. | ||
--> | ||
|
||
<module name = "Checker"> | ||
<property name="charset" value="UTF-8"/> | ||
|
||
<property name="severity" value="error"/> | ||
|
||
<property name="fileExtensions" value="java, properties, xml"/> | ||
|
||
<module name="SuppressionFilter"> | ||
<property name="file" value="dev/checkstyle-suppressions.xml"/> | ||
</module> | ||
|
||
<!-- Checks for whitespace --> | ||
<!-- See http://checkstyle.sf.net/config_whitespace.html --> | ||
<module name="FileTabCharacter"> | ||
<property name="eachLine" value="true"/> | ||
</module> | ||
|
||
<module name="RegexpSingleline"> | ||
<!-- \s matches whitespace character, $ matches end of line. --> | ||
<property name="format" value="\s+$"/> | ||
<property name="message" value="No trailing whitespace allowed."/> | ||
</module> | ||
|
||
<module name="LineLength"> | ||
<property name="max" value="100"/> | ||
<property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/> | ||
</module> | ||
|
||
<module name="NewlineAtEndOfFile"/> | ||
|
||
<module name="TreeWalker"> | ||
<!-- | ||
If you wish to turn off checking for a section of code, you can put a comment in the source | ||
before and after the section, with the following syntax: | ||
// checkstyle.off: XXX (such as checkstyle.off: NoFinalizer) | ||
... // stuff that breaks the styles | ||
// checkstyle.on: XXX (such as checkstyle.on: NoFinalizer) | ||
--> | ||
<module name="SuppressionCommentFilter"> | ||
<property name="offCommentFormat" value="checkstyle\.off\: ([\w\|]+)"/> | ||
<property name="onCommentFormat" value="checkstyle\.on\: ([\w\|]+)"/> | ||
<property name="checkFormat" value="$1"/> | ||
</module> | ||
<module name="OuterTypeFilename"/> | ||
<module name="IllegalTokenText"> | ||
<property name="tokens" value="STRING_LITERAL, CHAR_LITERAL"/> | ||
<property name="format" value="\\u00(08|09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)"/> | ||
<property name="message" value="Avoid using corresponding octal or Unicode escape."/> | ||
</module> | ||
<module name="AvoidEscapedUnicodeCharacters"> | ||
<property name="allowEscapesForControlCharacters" value="true"/> | ||
<property name="allowByTailComment" value="true"/> | ||
<property name="allowNonPrintableEscapes" value="true"/> | ||
</module> | ||
<module name="NoLineWrap"/> | ||
<module name="EmptyBlock"> | ||
<property name="option" value="TEXT"/> | ||
<property name="tokens" value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/> | ||
</module> | ||
<module name="NeedBraces"> | ||
<property name="allowSingleLineStatement" value="true"/> | ||
</module> | ||
<module name="OneStatementPerLine"/> | ||
<module name="ArrayTypeStyle"/> | ||
<module name="FallThrough"/> | ||
<module name="UpperEll"/> | ||
<module name="ModifierOrder"/> | ||
<module name="SeparatorWrap"> | ||
<property name="tokens" value="DOT"/> | ||
<property name="option" value="nl"/> | ||
</module> | ||
<module name="SeparatorWrap"> | ||
<property name="tokens" value="COMMA"/> | ||
<property name="option" value="EOL"/> | ||
</module> | ||
<module name="PackageName"> | ||
<property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/> | ||
<message key="name.invalidPattern" | ||
value="Package name ''{0}'' must match pattern ''{1}''."/> | ||
</module> | ||
<module name="ClassTypeParameterName"> | ||
<property name="format" value="([A-Z][a-zA-Z0-9]*$)"/> | ||
<message key="name.invalidPattern" | ||
value="Class type name ''{0}'' must match pattern ''{1}''."/> | ||
</module> | ||
<module name="MethodTypeParameterName"> | ||
<property name="format" value="([A-Z][a-zA-Z0-9]*)"/> | ||
<message key="name.invalidPattern" | ||
value="Method type name ''{0}'' must match pattern ''{1}''."/> | ||
</module> | ||
<module name="GenericWhitespace"> | ||
<message key="ws.followed" | ||
value="GenericWhitespace ''{0}'' is followed by whitespace."/> | ||
<message key="ws.preceded" | ||
value="GenericWhitespace ''{0}'' is preceded with whitespace."/> | ||
<message key="ws.illegalFollow" | ||
value="GenericWhitespace ''{0}'' should followed by whitespace."/> | ||
<message key="ws.notPreceded" | ||
value="GenericWhitespace ''{0}'' is not preceded with whitespace."/> | ||
</module> | ||
<module name="MethodParamPad"/> | ||
<module name="AnnotationLocation"> | ||
<property name="tokens" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF"/> | ||
</module> | ||
<module name="AnnotationLocation"> | ||
<property name="tokens" value="VARIABLE_DEF"/> | ||
<property name="allowSamelineMultipleAnnotations" value="true"/> | ||
</module> | ||
<module name="MethodName"> | ||
<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9_]*$"/> | ||
<message key="name.invalidPattern" | ||
value="Method name ''{0}'' must match pattern ''{1}''."/> | ||
</module> | ||
<module name="EmptyCatchBlock"> | ||
<property name="exceptionVariableName" value="expected"/> | ||
</module> | ||
<module name="CommentsIndentation"/> | ||
<module name="UnusedImports"/> | ||
<module name="RedundantImport"/> | ||
<module name="RedundantModifier"/> | ||
<module name="RegexpSinglelineJava"> | ||
<property name="format" value="throw new \w+Error\("/> | ||
<property name="message" value="Avoid throwing error in application code."/> | ||
</module> | ||
<module name="RegexpSinglelineJava"> | ||
<property name="format" value="Objects\.toStringHelper"/> | ||
<property name="message" value="Avoid using Object.toStringHelper. Use ToStringBuilder instead." /> | ||
</module> | ||
<module name="RegexpSinglelineJava"> | ||
<property name="format" value="new (java\.lang\.)?(Byte|Integer|Long|Short)\("/> | ||
<property name="message" value="Use static factory 'valueOf' or 'parseXXX' instead of the deprecated constructors." /> | ||
</module> | ||
<module name="Indentation"> | ||
<property name="basicOffset" value="4"/> | ||
<property name="braceAdjustment" value="0"/> | ||
<property name="caseIndent" value="4"/> | ||
<property name="throwsIndent" value="4"/> | ||
<property name="lineWrappingIndentation" value="4"/> | ||
<property name="arrayInitIndent" value="4"/> | ||
</module> | ||
|
||
<!-- | ||
We use the following import order: | ||
import java.* | ||
import javax.* | ||
<blank line> | ||
import scala.* | ||
<blank line> | ||
import all other imports | ||
<blank line> | ||
import io.delta.kernel.* | ||
import io.delta.kernel.internal.* | ||
--> | ||
<module name="ImportOrder"> | ||
<property name="separated" value="true"/> | ||
<property name="ordered" value="true"/> | ||
<property name="groups" value="java.,javax.,scala,*,io.delta.kernel,io.delta.kernel.internal"/> | ||
</module> | ||
|
||
<!-- | ||
As per https://checkstyle.sourceforge.io/config_imports.html, "There is no flexibility to | ||
enforce empty lines between some groups and no empty lines between other groups." However, | ||
sometimes we want import X to come before import Y, yet we do not want them to be separated | ||
by a blank line. This suppression is how we achieve that. | ||
--> | ||
<!-- io.delta.kernel and io.delta.kernel.internal --> | ||
<module name="SuppressionXpathSingleFilter"> | ||
<property name="checks" value="ImportOrder"/> | ||
<property name="message" value="^'io.delta.kernel.internal\..*'.*"/> | ||
</module> | ||
<!-- java and javax --> | ||
<module name="SuppressionXpathSingleFilter"> | ||
<property name="checks" value="ImportOrder"/> | ||
<property name="message" value="^'javax\..*'.*"/> | ||
</module> | ||
</module> | ||
</module> |
29 changes: 29 additions & 0 deletions
29
kernel/kernel-api/src/main/java/io/delta/kernel/InvalidExpressionException.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
/* | ||
* Copyright (2023) The Delta Lake Project Authors. | ||
* | ||
* Licensed 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 io.delta.kernel; | ||
|
||
import io.delta.kernel.expressions.Expression; | ||
|
||
/** | ||
* Thrown when the given {@link Expression} is not valid. | ||
* TODO: we may need to divide this further into multiple exceptions. | ||
*/ | ||
public class InvalidExpressionException | ||
extends Exception | ||
{ | ||
} |
Oops, something went wrong.