embulk-filter-calcite 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +13 -0
- data/.travis.yml +4 -0
- data/CHANGELOG.md +3 -0
- data/README.md +61 -0
- data/build.gradle +112 -0
- data/config/checkstyle/checkstyle.xml +128 -0
- data/config/checkstyle/default.xml +108 -0
- data/gradle/wrapper/gradle-wrapper.jar +0 -0
- data/gradle/wrapper/gradle-wrapper.properties +6 -0
- data/gradlew +160 -0
- data/gradlew.bat +90 -0
- data/lib/embulk/filter/calcite.rb +3 -0
- data/src/main/java/org/embulk/filter/calcite/CalciteFilterPlugin.java +309 -0
- data/src/main/java/org/embulk/filter/calcite/PageConverter.java +119 -0
- data/src/main/java/org/embulk/filter/calcite/adapter/page/PageEnumerator.java +56 -0
- data/src/main/java/org/embulk/filter/calcite/adapter/page/PageFieldType.java +44 -0
- data/src/main/java/org/embulk/filter/calcite/adapter/page/PageSchema.java +26 -0
- data/src/main/java/org/embulk/filter/calcite/adapter/page/PageSchemaFactory.java +26 -0
- data/src/main/java/org/embulk/filter/calcite/adapter/page/PageTable.java +69 -0
- data/src/main/java/org/embulk/filter/calcite/getter/FilterColumnGetterFactory.java +45 -0
- data/src/main/java/org/embulk/filter/calcite/getter/UTCTimestampColumnGetter.java +41 -0
- data/src/test/java/org/embulk/filter/calcite/TestCalciteFilterPlugin.java +96 -0
- data/src/test/resources/org/embulk/filter/calcite/test/test_int_ops_expected.csv +4 -0
- data/src/test/resources/org/embulk/filter/calcite/test/test_int_ops_filter.yml +2 -0
- data/src/test/resources/org/embulk/filter/calcite/test/test_int_ops_in.yml +18 -0
- data/src/test/resources/org/embulk/filter/calcite/test/test_int_ops_source.csv +5 -0
- data/src/test/resources/org/embulk/filter/calcite/test/test_simple_expected.csv +4 -0
- data/src/test/resources/org/embulk/filter/calcite/test/test_simple_filter.yml +2 -0
- data/src/test/resources/org/embulk/filter/calcite/test/test_simple_in.yml +18 -0
- data/src/test/resources/org/embulk/filter/calcite/test/test_simple_source.csv +5 -0
- data/src/test/resources/org/embulk/filter/calcite/test/test_string_ops_expected.csv +4 -0
- data/src/test/resources/org/embulk/filter/calcite/test/test_string_ops_filter.yml +2 -0
- data/src/test/resources/org/embulk/filter/calcite/test/test_string_ops_in.yml +18 -0
- data/src/test/resources/org/embulk/filter/calcite/test/test_string_ops_source.csv +5 -0
- data/src/test/resources/org/embulk/filter/calcite/test/test_where_int_cond_expected.csv +2 -0
- data/src/test/resources/org/embulk/filter/calcite/test/test_where_int_cond_filter.yml +2 -0
- data/src/test/resources/org/embulk/filter/calcite/test/test_where_int_cond_in.yml +18 -0
- data/src/test/resources/org/embulk/filter/calcite/test/test_where_int_cond_source.csv +5 -0
- data/src/test/resources/org/embulk/filter/calcite/test/test_where_string_cond_expected.csv +2 -0
- data/src/test/resources/org/embulk/filter/calcite/test/test_where_string_cond_filter.yml +2 -0
- data/src/test/resources/org/embulk/filter/calcite/test/test_where_string_cond_in.yml +18 -0
- data/src/test/resources/org/embulk/filter/calcite/test/test_where_string_cond_source.csv +5 -0
- metadata +137 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: fb9b57b9556e4b1ea27783f26a9e4f13275b8b92
|
4
|
+
data.tar.gz: 61227ab14eceb59c0e2d40d04a101f12077cbc11
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d8a5c2ebc604a0af4ac45ab1c113ce2deedcaa651fd5533098fb9fc05a75f529ab8b48c522469fb71d1a89da89b8c5dd43c8f9b1540735055e074f8c8f47dca3
|
7
|
+
data.tar.gz: adc86d69db46d7b426e3d869dcc687cf7324a278d6f202a0d89ac05d08124c4c0480cf288da14549644f0b7940f494f344ae08024d659000a9745f9d5b798f51
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/CHANGELOG.md
ADDED
data/README.md
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
# Apache Calcite filter plugin for Embulk
|
2
|
+
|
3
|
+
## Overview
|
4
|
+
|
5
|
+
* **Plugin type**: filter
|
6
|
+
|
7
|
+
This plugin allows users to translate rows flexibly by SQL queries specified by them.
|
8
|
+
|
9
|
+
## Architecture
|
10
|
+
|
11
|
+
This plugin allows translating rows by SQL queries in Pages received from input plugin and sending the query results to next filter or output plugin as modified Pages. It uses [Apache Calcite](https://calcite.apache.org/), which is the foundation for your next high-performance database and enbles executing SQL queries to customized storage by the [custom adaptor](https://calcite.apache.org/docs/tutorial.html). The plugin applies Page storage adaptor to Apache Calcite and then enables executing SQL queries to Pages via JDBC Driver provided.
|
12
|
+
|
13
|
+
Here is Embulk config example for this plugin:
|
14
|
+
|
15
|
+
```yaml
|
16
|
+
filters:
|
17
|
+
- type: calcite
|
18
|
+
query: SELECT * FROM $PAGES
|
19
|
+
```
|
20
|
+
|
21
|
+
Users can define `SELECT` query as query option in the filter config section. `$PAGES` represents Pages that input plugin creates and sends. `$PAGES` schema is Embulk input schema given. On the other hand, the output schema of the plugin is built from the metadata of query result. Embulk types are converted into Apache Calcite types internally. This is type mapping between Embulk and Apache Calcite.
|
22
|
+
|
23
|
+
| Embulk type | Apache Calcite type | JDBC type |
|
24
|
+
| ----------- | ------------------- | ------------------- |
|
25
|
+
| boolean | BOOLEAN | java.lang.Boolean |
|
26
|
+
| long | BIGINT | java.lang.Long |
|
27
|
+
| double | DOUBLE | java.lang.Double |
|
28
|
+
| timestamp | TIMESTAMP | java.sql.Timestamp |
|
29
|
+
| string | VARCHAR | java.lang.String |
|
30
|
+
| json | VARCHAR | java.lang.String |
|
31
|
+
|
32
|
+
Data types by Apache Calcite: https://calcite.apache.org/docs/reference.html#data-types
|
33
|
+
|
34
|
+
## Configuration
|
35
|
+
|
36
|
+
- **query**: SQL to run (string)
|
37
|
+
- **default_timezone**: If the sql type of a column is `date`/`time`/`datetime` and the embulk type is `string`, column values are formatted int this default_timezone. You can overwrite timezone for each columns using column_options option. (string, default: `UTC`)
|
38
|
+
|
39
|
+
## Example
|
40
|
+
|
41
|
+
This config enables removing rows not associated to id 1 and 2 from Pages.
|
42
|
+
```yaml
|
43
|
+
filters:
|
44
|
+
- type: calcite
|
45
|
+
query: SELECT * FROM $PAGES WHERE id IN (1, 2)
|
46
|
+
```
|
47
|
+
|
48
|
+
This enables adding new column and inserting the value combined 2 string column values.
|
49
|
+
```yaml
|
50
|
+
filters:
|
51
|
+
- type: calcite
|
52
|
+
query: SELECT first_name || last_name AS name, * FROM $PAGES
|
53
|
+
```
|
54
|
+
|
55
|
+
SQL language provided by Apache Calcite: https://calcite.apache.org/docs/reference.html
|
56
|
+
|
57
|
+
## Build
|
58
|
+
|
59
|
+
```
|
60
|
+
$ ./gradlew gem # -t to watch change of files and rebuild continuously
|
61
|
+
```
|
data/build.gradle
ADDED
@@ -0,0 +1,112 @@
|
|
1
|
+
plugins {
|
2
|
+
id "com.jfrog.bintray" version "1.7"
|
3
|
+
id "com.github.jruby-gradle.base" version "0.1.5"
|
4
|
+
id "java"
|
5
|
+
id "checkstyle"
|
6
|
+
id "findbugs"
|
7
|
+
id "jacoco"
|
8
|
+
}
|
9
|
+
import com.github.jrubygradle.JRubyExec
|
10
|
+
|
11
|
+
repositories {
|
12
|
+
mavenCentral()
|
13
|
+
jcenter()
|
14
|
+
maven { url "https://dl.bintray.com/embulk-input-jdbc/maven" } // for embulk-input-jdbc
|
15
|
+
}
|
16
|
+
configurations {
|
17
|
+
provided
|
18
|
+
}
|
19
|
+
|
20
|
+
version = "0.1.0"
|
21
|
+
|
22
|
+
sourceCompatibility = 1.7
|
23
|
+
targetCompatibility = 1.7
|
24
|
+
|
25
|
+
dependencies {
|
26
|
+
compile "org.embulk:embulk-core:0.8.17"
|
27
|
+
provided "org.embulk:embulk-core:0.8.17"
|
28
|
+
compile "org.embulk.input.jdbc:embulk-input-jdbc:0.8.2"
|
29
|
+
compile "org.apache.calcite:calcite-core:1.11.0"
|
30
|
+
|
31
|
+
testCompile "junit:junit:4.+"
|
32
|
+
testCompile "org.embulk:embulk-core:0.8.17:tests"
|
33
|
+
testCompile "org.embulk:embulk-standards:0.8.17"
|
34
|
+
testCompile "org.embulk:embulk-test:0.8.17"
|
35
|
+
}
|
36
|
+
|
37
|
+
task classpath(type: Copy, dependsOn: ["jar"]) {
|
38
|
+
doFirst { file("classpath").deleteDir() }
|
39
|
+
from (configurations.runtime - configurations.provided + files(jar.archivePath))
|
40
|
+
into "classpath"
|
41
|
+
}
|
42
|
+
clean { delete "classpath" }
|
43
|
+
|
44
|
+
checkstyle {
|
45
|
+
configFile = file("${project.rootDir}/config/checkstyle/checkstyle.xml")
|
46
|
+
toolVersion = '6.14.1'
|
47
|
+
}
|
48
|
+
checkstyleMain {
|
49
|
+
configFile = file("${project.rootDir}/config/checkstyle/default.xml")
|
50
|
+
ignoreFailures = true
|
51
|
+
}
|
52
|
+
checkstyleTest {
|
53
|
+
configFile = file("${project.rootDir}/config/checkstyle/default.xml")
|
54
|
+
ignoreFailures = true
|
55
|
+
}
|
56
|
+
task checkstyle(type: Checkstyle) {
|
57
|
+
classpath = sourceSets.main.output + sourceSets.test.output
|
58
|
+
source = sourceSets.main.allJava + sourceSets.test.allJava
|
59
|
+
}
|
60
|
+
|
61
|
+
tasks.withType(FindBugs) {
|
62
|
+
reports {
|
63
|
+
xml.enabled = false
|
64
|
+
html.enabled = true
|
65
|
+
}
|
66
|
+
}
|
67
|
+
findbugs {
|
68
|
+
ignoreFailures = true
|
69
|
+
}
|
70
|
+
|
71
|
+
task gem(type: JRubyExec, dependsOn: ["gemspec", "classpath"]) {
|
72
|
+
jrubyArgs "-rrubygems/gem_runner", "-eGem::GemRunner.new.run(ARGV)", "build"
|
73
|
+
script "${project.name}.gemspec"
|
74
|
+
doLast { ant.move(file: "${project.name}-${project.version}.gem", todir: "pkg") }
|
75
|
+
}
|
76
|
+
|
77
|
+
task gemPush(type: JRubyExec, dependsOn: ["gem"]) {
|
78
|
+
jrubyArgs "-rrubygems/gem_runner", "-eGem::GemRunner.new.run(ARGV)", "push"
|
79
|
+
script "pkg/${project.name}-${project.version}.gem"
|
80
|
+
}
|
81
|
+
|
82
|
+
task "package"(dependsOn: ["gemspec", "classpath"]) << {
|
83
|
+
println "> Build succeeded."
|
84
|
+
println "> You can run embulk with '-L ${file(".").absolutePath}' argument."
|
85
|
+
}
|
86
|
+
|
87
|
+
task gemspec {
|
88
|
+
ext.gemspecFile = file("${project.name}.gemspec")
|
89
|
+
inputs.file "build.gradle"
|
90
|
+
outputs.file gemspecFile
|
91
|
+
doLast { gemspecFile.write($/
|
92
|
+
Gem::Specification.new do |spec|
|
93
|
+
spec.name = "${project.name}"
|
94
|
+
spec.version = "${project.version}"
|
95
|
+
spec.authors = ["Muga Nishizawa"]
|
96
|
+
spec.summary = %[Apache Calcite filter plugin for Embulk]
|
97
|
+
spec.description = %[Translate schema and column values by SQL-like query provided by Apache Calcite.]
|
98
|
+
spec.email = ["muga.nishizawa@gmail.com"]
|
99
|
+
spec.licenses = ["Apache 2.0"]
|
100
|
+
spec.homepage = "https://github.com/muga/embulk-filter-calcite"
|
101
|
+
|
102
|
+
spec.files = `git ls-files`.split("\n") + Dir["classpath/*.jar"]
|
103
|
+
spec.test_files = spec.files.grep(%r"^(test|spec)/")
|
104
|
+
spec.require_paths = ["lib"]
|
105
|
+
|
106
|
+
spec.add_development_dependency 'bundler', ['~> 1.0']
|
107
|
+
spec.add_development_dependency 'rake', ['>= 10.0']
|
108
|
+
end
|
109
|
+
/$)
|
110
|
+
}
|
111
|
+
}
|
112
|
+
clean { delete "${project.name}.gemspec" }
|
@@ -0,0 +1,128 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!DOCTYPE module PUBLIC
|
3
|
+
"-//Puppy Crawl//DTD Check Configuration 1.3//EN"
|
4
|
+
"http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
|
5
|
+
<module name="Checker">
|
6
|
+
<!-- https://github.com/facebook/presto/blob/master/src/checkstyle/checks.xml -->
|
7
|
+
<module name="FileTabCharacter"/>
|
8
|
+
<module name="NewlineAtEndOfFile">
|
9
|
+
<property name="lineSeparator" value="lf"/>
|
10
|
+
</module>
|
11
|
+
<module name="RegexpMultiline">
|
12
|
+
<property name="format" value="\r"/>
|
13
|
+
<property name="message" value="Line contains carriage return"/>
|
14
|
+
</module>
|
15
|
+
<module name="RegexpMultiline">
|
16
|
+
<property name="format" value=" \n"/>
|
17
|
+
<property name="message" value="Line has trailing whitespace"/>
|
18
|
+
</module>
|
19
|
+
<module name="RegexpMultiline">
|
20
|
+
<property name="format" value="\{\n\n"/>
|
21
|
+
<property name="message" value="Blank line after opening brace"/>
|
22
|
+
</module>
|
23
|
+
<module name="RegexpMultiline">
|
24
|
+
<property name="format" value="\n\n\s*\}"/>
|
25
|
+
<property name="message" value="Blank line before closing brace"/>
|
26
|
+
</module>
|
27
|
+
<module name="RegexpMultiline">
|
28
|
+
<property name="format" value="\n\n\n"/>
|
29
|
+
<property name="message" value="Multiple consecutive blank lines"/>
|
30
|
+
</module>
|
31
|
+
<module name="RegexpMultiline">
|
32
|
+
<property name="format" value="\n\n\Z"/>
|
33
|
+
<property name="message" value="Blank line before end of file"/>
|
34
|
+
</module>
|
35
|
+
<module name="RegexpMultiline">
|
36
|
+
<property name="format" value="Preconditions\.checkNotNull"/>
|
37
|
+
<property name="message" value="Use of checkNotNull"/>
|
38
|
+
</module>
|
39
|
+
|
40
|
+
<module name="TreeWalker">
|
41
|
+
<module name="EmptyBlock">
|
42
|
+
<property name="option" value="text"/>
|
43
|
+
<property name="tokens" value="
|
44
|
+
LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_IF,
|
45
|
+
LITERAL_FOR, LITERAL_TRY, LITERAL_WHILE, INSTANCE_INIT, STATIC_INIT"/>
|
46
|
+
</module>
|
47
|
+
<module name="EmptyStatement"/>
|
48
|
+
<module name="EmptyForInitializerPad"/>
|
49
|
+
<module name="EmptyForIteratorPad">
|
50
|
+
<property name="option" value="space"/>
|
51
|
+
</module>
|
52
|
+
<module name="MethodParamPad">
|
53
|
+
<property name="allowLineBreaks" value="true"/>
|
54
|
+
<property name="option" value="nospace"/>
|
55
|
+
</module>
|
56
|
+
<module name="ParenPad"/>
|
57
|
+
<module name="TypecastParenPad"/>
|
58
|
+
<module name="NeedBraces"/>
|
59
|
+
<module name="LeftCurly">
|
60
|
+
<property name="option" value="nl"/>
|
61
|
+
<property name="tokens" value="CLASS_DEF, CTOR_DEF, INTERFACE_DEF, METHOD_DEF"/>
|
62
|
+
</module>
|
63
|
+
<module name="LeftCurly">
|
64
|
+
<property name="option" value="eol"/>
|
65
|
+
<property name="tokens" value="
|
66
|
+
LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR,
|
67
|
+
LITERAL_IF, LITERAL_SWITCH, LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE"/>
|
68
|
+
</module>
|
69
|
+
<module name="RightCurly">
|
70
|
+
<property name="option" value="alone"/>
|
71
|
+
</module>
|
72
|
+
<module name="GenericWhitespace"/>
|
73
|
+
<module name="WhitespaceAfter"/>
|
74
|
+
<module name="NoWhitespaceBefore"/>
|
75
|
+
|
76
|
+
<module name="UpperEll"/>
|
77
|
+
<module name="DefaultComesLast"/>
|
78
|
+
<module name="ArrayTypeStyle"/>
|
79
|
+
<module name="MultipleVariableDeclarations"/>
|
80
|
+
<module name="ModifierOrder"/>
|
81
|
+
<module name="OneStatementPerLine"/>
|
82
|
+
<module name="StringLiteralEquality"/>
|
83
|
+
<module name="MutableException"/>
|
84
|
+
<module name="EqualsHashCode"/>
|
85
|
+
<module name="InnerAssignment"/>
|
86
|
+
<module name="InterfaceIsType"/>
|
87
|
+
<module name="HideUtilityClassConstructor"/>
|
88
|
+
|
89
|
+
<module name="MemberName"/>
|
90
|
+
<module name="LocalVariableName"/>
|
91
|
+
<module name="LocalFinalVariableName"/>
|
92
|
+
<module name="TypeName"/>
|
93
|
+
<module name="PackageName"/>
|
94
|
+
<module name="ParameterName"/>
|
95
|
+
<module name="StaticVariableName"/>
|
96
|
+
<module name="ClassTypeParameterName">
|
97
|
+
<property name="format" value="^[A-Z][0-9]?$"/>
|
98
|
+
</module>
|
99
|
+
<module name="MethodTypeParameterName">
|
100
|
+
<property name="format" value="^[A-Z][0-9]?$"/>
|
101
|
+
</module>
|
102
|
+
|
103
|
+
<module name="AvoidStarImport"/>
|
104
|
+
<module name="RedundantImport"/>
|
105
|
+
<module name="UnusedImports"/>
|
106
|
+
<module name="ImportOrder">
|
107
|
+
<property name="groups" value="*,javax,java"/>
|
108
|
+
<property name="separated" value="true"/>
|
109
|
+
<property name="option" value="bottom"/>
|
110
|
+
<property name="sortStaticImportsAlphabetically" value="true"/>
|
111
|
+
</module>
|
112
|
+
|
113
|
+
<module name="WhitespaceAround">
|
114
|
+
<property name="allowEmptyConstructors" value="true"/>
|
115
|
+
<property name="allowEmptyMethods" value="true"/>
|
116
|
+
<property name="ignoreEnhancedForColon" value="false"/>
|
117
|
+
<property name="tokens" value="
|
118
|
+
ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN,
|
119
|
+
BXOR, BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, EQUAL, GE, GT, LAND, LE,
|
120
|
+
LITERAL_ASSERT, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE,
|
121
|
+
LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_RETURN,
|
122
|
+
LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE,
|
123
|
+
LOR, LT, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN, NOT_EQUAL,
|
124
|
+
PLUS, PLUS_ASSIGN, QUESTION, SL, SLIST, SL_ASSIGN, SR, SR_ASSIGN,
|
125
|
+
STAR, STAR_ASSIGN, TYPE_EXTENSION_AND"/>
|
126
|
+
</module>
|
127
|
+
</module>
|
128
|
+
</module>
|
@@ -0,0 +1,108 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!DOCTYPE module PUBLIC
|
3
|
+
"-//Puppy Crawl//DTD Check Configuration 1.3//EN"
|
4
|
+
"http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
|
5
|
+
<!--
|
6
|
+
This is a subset of ./checkstyle.xml which allows some loose styles
|
7
|
+
-->
|
8
|
+
<module name="Checker">
|
9
|
+
<module name="FileTabCharacter"/>
|
10
|
+
<module name="NewlineAtEndOfFile">
|
11
|
+
<property name="lineSeparator" value="lf"/>
|
12
|
+
</module>
|
13
|
+
<module name="RegexpMultiline">
|
14
|
+
<property name="format" value="\r"/>
|
15
|
+
<property name="message" value="Line contains carriage return"/>
|
16
|
+
</module>
|
17
|
+
<module name="RegexpMultiline">
|
18
|
+
<property name="format" value=" \n"/>
|
19
|
+
<property name="message" value="Line has trailing whitespace"/>
|
20
|
+
</module>
|
21
|
+
<module name="RegexpMultiline">
|
22
|
+
<property name="format" value="\n\n\n"/>
|
23
|
+
<property name="message" value="Multiple consecutive blank lines"/>
|
24
|
+
</module>
|
25
|
+
<module name="RegexpMultiline">
|
26
|
+
<property name="format" value="\n\n\Z"/>
|
27
|
+
<property name="message" value="Blank line before end of file"/>
|
28
|
+
</module>
|
29
|
+
|
30
|
+
<module name="TreeWalker">
|
31
|
+
<module name="EmptyBlock">
|
32
|
+
<property name="option" value="text"/>
|
33
|
+
<property name="tokens" value="
|
34
|
+
LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_IF,
|
35
|
+
LITERAL_FOR, LITERAL_TRY, LITERAL_WHILE, INSTANCE_INIT, STATIC_INIT"/>
|
36
|
+
</module>
|
37
|
+
<module name="EmptyStatement"/>
|
38
|
+
<module name="EmptyForInitializerPad"/>
|
39
|
+
<module name="EmptyForIteratorPad">
|
40
|
+
<property name="option" value="space"/>
|
41
|
+
</module>
|
42
|
+
<module name="MethodParamPad">
|
43
|
+
<property name="allowLineBreaks" value="true"/>
|
44
|
+
<property name="option" value="nospace"/>
|
45
|
+
</module>
|
46
|
+
<module name="ParenPad"/>
|
47
|
+
<module name="TypecastParenPad"/>
|
48
|
+
<module name="NeedBraces"/>
|
49
|
+
<module name="LeftCurly">
|
50
|
+
<property name="option" value="nl"/>
|
51
|
+
<property name="tokens" value="CLASS_DEF, CTOR_DEF, INTERFACE_DEF, METHOD_DEF"/>
|
52
|
+
</module>
|
53
|
+
<module name="LeftCurly">
|
54
|
+
<property name="option" value="eol"/>
|
55
|
+
<property name="tokens" value="
|
56
|
+
LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR,
|
57
|
+
LITERAL_IF, LITERAL_SWITCH, LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE"/>
|
58
|
+
</module>
|
59
|
+
<module name="RightCurly">
|
60
|
+
<property name="option" value="alone"/>
|
61
|
+
</module>
|
62
|
+
<module name="GenericWhitespace"/>
|
63
|
+
<module name="WhitespaceAfter"/>
|
64
|
+
<module name="NoWhitespaceBefore"/>
|
65
|
+
|
66
|
+
<module name="UpperEll"/>
|
67
|
+
<module name="DefaultComesLast"/>
|
68
|
+
<module name="ArrayTypeStyle"/>
|
69
|
+
<module name="MultipleVariableDeclarations"/>
|
70
|
+
<module name="ModifierOrder"/>
|
71
|
+
<module name="OneStatementPerLine"/>
|
72
|
+
<module name="StringLiteralEquality"/>
|
73
|
+
<module name="MutableException"/>
|
74
|
+
<module name="EqualsHashCode"/>
|
75
|
+
<module name="InnerAssignment"/>
|
76
|
+
<module name="InterfaceIsType"/>
|
77
|
+
<module name="HideUtilityClassConstructor"/>
|
78
|
+
|
79
|
+
<module name="MemberName"/>
|
80
|
+
<module name="LocalVariableName"/>
|
81
|
+
<module name="LocalFinalVariableName"/>
|
82
|
+
<module name="TypeName"/>
|
83
|
+
<module name="PackageName"/>
|
84
|
+
<module name="ParameterName"/>
|
85
|
+
<module name="StaticVariableName"/>
|
86
|
+
<module name="ClassTypeParameterName">
|
87
|
+
<property name="format" value="^[A-Z][0-9]?$"/>
|
88
|
+
</module>
|
89
|
+
<module name="MethodTypeParameterName">
|
90
|
+
<property name="format" value="^[A-Z][0-9]?$"/>
|
91
|
+
</module>
|
92
|
+
|
93
|
+
<module name="WhitespaceAround">
|
94
|
+
<property name="allowEmptyConstructors" value="true"/>
|
95
|
+
<property name="allowEmptyMethods" value="true"/>
|
96
|
+
<property name="ignoreEnhancedForColon" value="false"/>
|
97
|
+
<property name="tokens" value="
|
98
|
+
ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN,
|
99
|
+
BXOR, BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, EQUAL, GE, GT, LAND, LE,
|
100
|
+
LITERAL_ASSERT, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE,
|
101
|
+
LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_RETURN,
|
102
|
+
LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE,
|
103
|
+
LOR, LT, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN, NOT_EQUAL,
|
104
|
+
PLUS, PLUS_ASSIGN, QUESTION, SL, SLIST, SL_ASSIGN, SR, SR_ASSIGN,
|
105
|
+
STAR, STAR_ASSIGN, TYPE_EXTENSION_AND"/>
|
106
|
+
</module>
|
107
|
+
</module>
|
108
|
+
</module>
|
Binary file
|