embulk 0.7.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +15 -0
- data/.ruby-version +1 -0
- data/.travis.yml +18 -0
- data/COPYING +14 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +31 -0
- data/README.md +206 -0
- data/Rakefile +26 -0
- data/appveyor.yml +20 -0
- data/bin/embulk +106 -0
- data/build.gradle +338 -0
- data/embulk-cli/build.gradle +6 -0
- data/embulk-cli/src/main/java/org/embulk/cli/Main.java +22 -0
- data/embulk-cli/src/main/sh/selfrun.sh +158 -0
- data/embulk-cli/src/test/java/org/embulk/cli/DummyMain.java +23 -0
- data/embulk-cli/src/test/java/org/embulk/cli/SelfrunTest.java +281 -0
- data/embulk-core/build.gradle +59 -0
- data/embulk-core/src/main/java/org/embulk/EmbulkEmbed.java +315 -0
- data/embulk-core/src/main/java/org/embulk/EmbulkService.java +76 -0
- data/embulk-core/src/main/java/org/embulk/command/PreviewPrinter.java +84 -0
- data/embulk-core/src/main/java/org/embulk/command/TablePreviewPrinter.java +107 -0
- data/embulk-core/src/main/java/org/embulk/command/VerticalPreviewPrinter.java +47 -0
- data/embulk-core/src/main/java/org/embulk/config/CommitReport.java +33 -0
- data/embulk-core/src/main/java/org/embulk/config/Config.java +15 -0
- data/embulk-core/src/main/java/org/embulk/config/ConfigDefault.java +15 -0
- data/embulk-core/src/main/java/org/embulk/config/ConfigDiff.java +29 -0
- data/embulk-core/src/main/java/org/embulk/config/ConfigException.java +20 -0
- data/embulk-core/src/main/java/org/embulk/config/ConfigInject.java +14 -0
- data/embulk-core/src/main/java/org/embulk/config/ConfigLoader.java +141 -0
- data/embulk-core/src/main/java/org/embulk/config/ConfigSource.java +31 -0
- data/embulk-core/src/main/java/org/embulk/config/DataSource.java +39 -0
- data/embulk-core/src/main/java/org/embulk/config/DataSourceImpl.java +231 -0
- data/embulk-core/src/main/java/org/embulk/config/DataSourceSerDe.java +84 -0
- data/embulk-core/src/main/java/org/embulk/config/GenericTypeReference.java +20 -0
- data/embulk-core/src/main/java/org/embulk/config/ModelManager.java +123 -0
- data/embulk-core/src/main/java/org/embulk/config/Task.java +10 -0
- data/embulk-core/src/main/java/org/embulk/config/TaskInvocationHandler.java +180 -0
- data/embulk-core/src/main/java/org/embulk/config/TaskReport.java +29 -0
- data/embulk-core/src/main/java/org/embulk/config/TaskSerDe.java +345 -0
- data/embulk-core/src/main/java/org/embulk/config/TaskSource.java +31 -0
- data/embulk-core/src/main/java/org/embulk/config/TaskValidationException.java +38 -0
- data/embulk-core/src/main/java/org/embulk/config/TaskValidator.java +24 -0
- data/embulk-core/src/main/java/org/embulk/exec/BulkLoader.java +652 -0
- data/embulk-core/src/main/java/org/embulk/exec/ExecModule.java +52 -0
- data/embulk-core/src/main/java/org/embulk/exec/ExecutionInterruptedException.java +10 -0
- data/embulk-core/src/main/java/org/embulk/exec/ExecutionResult.java +26 -0
- data/embulk-core/src/main/java/org/embulk/exec/ExtensionServiceLoaderModule.java +43 -0
- data/embulk-core/src/main/java/org/embulk/exec/ForGuess.java +16 -0
- data/embulk-core/src/main/java/org/embulk/exec/ForSystemConfig.java +16 -0
- data/embulk-core/src/main/java/org/embulk/exec/GuessExecutor.java +373 -0
- data/embulk-core/src/main/java/org/embulk/exec/LocalExecutorPlugin.java +129 -0
- data/embulk-core/src/main/java/org/embulk/exec/LocalThreadExecutor.java +34 -0
- data/embulk-core/src/main/java/org/embulk/exec/LoggerProvider.java +60 -0
- data/embulk-core/src/main/java/org/embulk/exec/NoSampleException.java +10 -0
- data/embulk-core/src/main/java/org/embulk/exec/PartialExecutionException.java +18 -0
- data/embulk-core/src/main/java/org/embulk/exec/PooledBufferAllocator.java +77 -0
- data/embulk-core/src/main/java/org/embulk/exec/PreviewExecutor.java +183 -0
- data/embulk-core/src/main/java/org/embulk/exec/PreviewResult.java +27 -0
- data/embulk-core/src/main/java/org/embulk/exec/PreviewedNoticeError.java +17 -0
- data/embulk-core/src/main/java/org/embulk/exec/ResumeState.java +100 -0
- data/embulk-core/src/main/java/org/embulk/exec/SamplingParserPlugin.java +136 -0
- data/embulk-core/src/main/java/org/embulk/exec/SetCurrentThreadName.java +19 -0
- data/embulk-core/src/main/java/org/embulk/exec/SystemConfigModule.java +24 -0
- data/embulk-core/src/main/java/org/embulk/exec/TempFileAllocator.java +35 -0
- data/embulk-core/src/main/java/org/embulk/guice/Bootstrap.java +157 -0
- data/embulk-core/src/main/java/org/embulk/guice/CloseableInjector.java +22 -0
- data/embulk-core/src/main/java/org/embulk/guice/InjectorProxy.java +145 -0
- data/embulk-core/src/main/java/org/embulk/guice/LifeCycleInjector.java +26 -0
- data/embulk-core/src/main/java/org/embulk/guice/LifeCycleInjectorProxy.java +61 -0
- data/embulk-core/src/main/java/org/embulk/guice/LifeCycleManager.java +187 -0
- data/embulk-core/src/main/java/org/embulk/guice/LifeCycleMethods.java +89 -0
- data/embulk-core/src/main/java/org/embulk/guice/LifeCycleMethodsMap.java +38 -0
- data/embulk-core/src/main/java/org/embulk/guice/LifeCycleModule.java +97 -0
- data/embulk-core/src/main/java/org/embulk/jruby/JRubyPluginSource.java +72 -0
- data/embulk-core/src/main/java/org/embulk/jruby/JRubyScriptingModule.java +119 -0
- data/embulk-core/src/main/java/org/embulk/plugin/BuiltinPluginSourceModule.java +17 -0
- data/embulk-core/src/main/java/org/embulk/plugin/InjectedPluginSource.java +96 -0
- data/embulk-core/src/main/java/org/embulk/plugin/PluginClassLoader.java +168 -0
- data/embulk-core/src/main/java/org/embulk/plugin/PluginClassLoaderFactory.java +9 -0
- data/embulk-core/src/main/java/org/embulk/plugin/PluginClassLoaderModule.java +71 -0
- data/embulk-core/src/main/java/org/embulk/plugin/PluginManager.java +78 -0
- data/embulk-core/src/main/java/org/embulk/plugin/PluginSource.java +6 -0
- data/embulk-core/src/main/java/org/embulk/plugin/PluginSourceNotMatchException.java +19 -0
- data/embulk-core/src/main/java/org/embulk/plugin/PluginType.java +47 -0
- data/embulk-core/src/main/java/org/embulk/plugin/compat/InputPluginWrapper.java +102 -0
- data/embulk-core/src/main/java/org/embulk/plugin/compat/PluginWrappers.java +30 -0
- data/embulk-core/src/main/java/org/embulk/plugin/compat/TransactionalFileInputWrapper.java +96 -0
- data/embulk-core/src/main/java/org/embulk/plugin/compat/TransactionalFileOutputWrapper.java +102 -0
- data/embulk-core/src/main/java/org/embulk/plugin/compat/TransactionalPageOutputWrapper.java +95 -0
- data/embulk-core/src/main/java/org/embulk/spi/Buffer.java +148 -0
- data/embulk-core/src/main/java/org/embulk/spi/BufferAllocator.java +8 -0
- data/embulk-core/src/main/java/org/embulk/spi/Column.java +92 -0
- data/embulk-core/src/main/java/org/embulk/spi/ColumnConfig.java +112 -0
- data/embulk-core/src/main/java/org/embulk/spi/ColumnVisitor.java +14 -0
- data/embulk-core/src/main/java/org/embulk/spi/DecoderPlugin.java +16 -0
- data/embulk-core/src/main/java/org/embulk/spi/EncoderPlugin.java +16 -0
- data/embulk-core/src/main/java/org/embulk/spi/Exec.java +113 -0
- data/embulk-core/src/main/java/org/embulk/spi/ExecAction.java +6 -0
- data/embulk-core/src/main/java/org/embulk/spi/ExecSession.java +217 -0
- data/embulk-core/src/main/java/org/embulk/spi/ExecutorPlugin.java +19 -0
- data/embulk-core/src/main/java/org/embulk/spi/Extension.java +44 -0
- data/embulk-core/src/main/java/org/embulk/spi/FileInput.java +11 -0
- data/embulk-core/src/main/java/org/embulk/spi/FileInputPlugin.java +30 -0
- data/embulk-core/src/main/java/org/embulk/spi/FileInputRunner.java +162 -0
- data/embulk-core/src/main/java/org/embulk/spi/FileOutput.java +13 -0
- data/embulk-core/src/main/java/org/embulk/spi/FileOutputPlugin.java +28 -0
- data/embulk-core/src/main/java/org/embulk/spi/FileOutputRunner.java +202 -0
- data/embulk-core/src/main/java/org/embulk/spi/FilterPlugin.java +18 -0
- data/embulk-core/src/main/java/org/embulk/spi/FormatterPlugin.java +18 -0
- data/embulk-core/src/main/java/org/embulk/spi/GuessPlugin.java +9 -0
- data/embulk-core/src/main/java/org/embulk/spi/InputPlugin.java +33 -0
- data/embulk-core/src/main/java/org/embulk/spi/OutputPlugin.java +29 -0
- data/embulk-core/src/main/java/org/embulk/spi/Page.java +51 -0
- data/embulk-core/src/main/java/org/embulk/spi/PageBuilder.java +338 -0
- data/embulk-core/src/main/java/org/embulk/spi/PageFormat.java +47 -0
- data/embulk-core/src/main/java/org/embulk/spi/PageOutput.java +11 -0
- data/embulk-core/src/main/java/org/embulk/spi/PageReader.java +226 -0
- data/embulk-core/src/main/java/org/embulk/spi/ParserPlugin.java +17 -0
- data/embulk-core/src/main/java/org/embulk/spi/ProcessState.java +10 -0
- data/embulk-core/src/main/java/org/embulk/spi/ProcessTask.java +117 -0
- data/embulk-core/src/main/java/org/embulk/spi/Schema.java +134 -0
- data/embulk-core/src/main/java/org/embulk/spi/SchemaConfig.java +93 -0
- data/embulk-core/src/main/java/org/embulk/spi/SchemaConfigException.java +22 -0
- data/embulk-core/src/main/java/org/embulk/spi/TaskState.java +81 -0
- data/embulk-core/src/main/java/org/embulk/spi/TempFileException.java +19 -0
- data/embulk-core/src/main/java/org/embulk/spi/TempFileSpace.java +87 -0
- data/embulk-core/src/main/java/org/embulk/spi/Transactional.java +10 -0
- data/embulk-core/src/main/java/org/embulk/spi/TransactionalFileInput.java +17 -0
- data/embulk-core/src/main/java/org/embulk/spi/TransactionalFileOutput.java +19 -0
- data/embulk-core/src/main/java/org/embulk/spi/TransactionalPageOutput.java +17 -0
- data/embulk-core/src/main/java/org/embulk/spi/time/DateTimeZoneSerDe.java +55 -0
- data/embulk-core/src/main/java/org/embulk/spi/time/JRubyTimeParserHelper.java +8 -0
- data/embulk-core/src/main/java/org/embulk/spi/time/JRubyTimeParserHelperFactory.java +6 -0
- data/embulk-core/src/main/java/org/embulk/spi/time/Timestamp.java +159 -0
- data/embulk-core/src/main/java/org/embulk/spi/time/TimestampFormat.java +100 -0
- data/embulk-core/src/main/java/org/embulk/spi/time/TimestampFormatter.java +97 -0
- data/embulk-core/src/main/java/org/embulk/spi/time/TimestampParseException.java +10 -0
- data/embulk-core/src/main/java/org/embulk/spi/time/TimestampParser.java +104 -0
- data/embulk-core/src/main/java/org/embulk/spi/time/TimestampSerDe.java +49 -0
- data/embulk-core/src/main/java/org/embulk/spi/type/AbstractType.java +58 -0
- data/embulk-core/src/main/java/org/embulk/spi/type/BooleanType.java +12 -0
- data/embulk-core/src/main/java/org/embulk/spi/type/DoubleType.java +12 -0
- data/embulk-core/src/main/java/org/embulk/spi/type/LongType.java +12 -0
- data/embulk-core/src/main/java/org/embulk/spi/type/StringType.java +12 -0
- data/embulk-core/src/main/java/org/embulk/spi/type/TimestampType.java +41 -0
- data/embulk-core/src/main/java/org/embulk/spi/type/Type.java +15 -0
- data/embulk-core/src/main/java/org/embulk/spi/type/TypeDeserializer.java +44 -0
- data/embulk-core/src/main/java/org/embulk/spi/type/Types.java +14 -0
- data/embulk-core/src/main/java/org/embulk/spi/unit/ByteSize.java +156 -0
- data/embulk-core/src/main/java/org/embulk/spi/unit/LocalFile.java +106 -0
- data/embulk-core/src/main/java/org/embulk/spi/unit/LocalFileSerDe.java +113 -0
- data/embulk-core/src/main/java/org/embulk/spi/unit/ToString.java +54 -0
- data/embulk-core/src/main/java/org/embulk/spi/unit/ToStringMap.java +34 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/CharsetSerDe.java +55 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/Decoders.java +81 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/DynamicColumnNotFoundException.java +10 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/DynamicColumnSetter.java +18 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/DynamicColumnSetterFactory.java +94 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/DynamicPageBuilder.java +161 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/Encoders.java +81 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/Executors.java +95 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/FileInputInputStream.java +111 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/FileOutputOutputStream.java +119 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/Filters.java +100 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/InputStreamFileInput.java +190 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/InputStreamTransactionalFileInput.java +25 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/Inputs.java +65 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/LineDecoder.java +118 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/LineEncoder.java +123 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/ListFileInput.java +52 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/Newline.java +38 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/OutputStreamFileOutput.java +88 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/PagePrinter.java +102 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/Pages.java +139 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/ResumableInputStream.java +128 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/RetryExecutor.java +130 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/Timestamps.java +53 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/AbstractDynamicColumnSetter.java +79 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/BooleanColumnSetter.java +64 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/DefaultValueSetter.java +18 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/DoubleColumnSetter.java +61 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/LongColumnSetter.java +69 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/NullDefaultValueSetter.java +34 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/SkipColumnSetter.java +52 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/StringColumnSetter.java +56 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/TimestampColumnSetter.java +64 -0
- data/embulk-core/src/main/resources/embulk/logback-color.xml +72 -0
- data/embulk-core/src/main/resources/embulk/logback-console.xml +14 -0
- data/embulk-core/src/main/resources/embulk/logback-file.xml +25 -0
- data/embulk-core/src/main/resources/embulk/parent_first_packages.properties +70 -0
- data/embulk-core/src/main/resources/embulk/parent_first_resources.properties +28 -0
- data/embulk-core/src/test/java/org/embulk/EmbulkTestRuntime.java +114 -0
- data/embulk-core/src/test/java/org/embulk/GuiceBinder.java +72 -0
- data/embulk-core/src/test/java/org/embulk/RandomManager.java +53 -0
- data/embulk-core/src/test/java/org/embulk/TestPluginSourceModule.java +23 -0
- data/embulk-core/src/test/java/org/embulk/TestUtilityModule.java +17 -0
- data/embulk-core/src/test/java/org/embulk/config/TestConfigLoader.java +66 -0
- data/embulk-core/src/test/java/org/embulk/config/TestConfigSource.java +114 -0
- data/embulk-core/src/test/java/org/embulk/config/TestTaskSource.java +70 -0
- data/embulk-core/src/test/java/org/embulk/plugin/MockPluginSource.java +58 -0
- data/embulk-core/src/test/java/org/embulk/plugin/TestPluginType.java +18 -0
- data/embulk-core/src/test/java/org/embulk/spi/MockFileOutput.java +63 -0
- data/embulk-core/src/test/java/org/embulk/spi/MockFormatterPlugin.java +101 -0
- data/embulk-core/src/test/java/org/embulk/spi/MockParserPlugin.java +73 -0
- data/embulk-core/src/test/java/org/embulk/spi/PageTestUtils.java +57 -0
- data/embulk-core/src/test/java/org/embulk/spi/TestBuffer.java +24 -0
- data/embulk-core/src/test/java/org/embulk/spi/TestFileInputInputStream.java +89 -0
- data/embulk-core/src/test/java/org/embulk/spi/TestFileInputRunner.java +196 -0
- data/embulk-core/src/test/java/org/embulk/spi/TestFileOutputRunner.java +207 -0
- data/embulk-core/src/test/java/org/embulk/spi/TestInputStreamFileInput.java +188 -0
- data/embulk-core/src/test/java/org/embulk/spi/TestPageBuilderReader.java +319 -0
- data/embulk-core/src/test/java/org/embulk/spi/time/TestTimestamp.java +116 -0
- data/embulk-core/src/test/java/org/embulk/spi/time/TestTimestampFormatterParser.java +63 -0
- data/embulk-core/src/test/java/org/embulk/spi/time/TestTimestampFormatterParserDeprecated.java +67 -0
- data/embulk-core/src/test/java/org/embulk/spi/type/TestTypeSerDe.java +45 -0
- data/embulk-core/src/test/java/org/embulk/spi/unit/TestByteSize.java +79 -0
- data/embulk-core/src/test/java/org/embulk/spi/util/TestLineDecoder.java +132 -0
- data/embulk-core/src/test/java/org/embulk/spi/util/TestLineEncoder.java +123 -0
- data/embulk-docs/Makefile +178 -0
- data/embulk-docs/build.gradle +32 -0
- data/embulk-docs/make.bat +243 -0
- data/embulk-docs/push-gh-pages.sh +49 -0
- data/embulk-docs/src/_static/embulk-architecture.png +0 -0
- data/embulk-docs/src/_static/embulk-logo.png +0 -0
- data/embulk-docs/src/_static/embulk-logo.svg +133 -0
- data/embulk-docs/src/built-in.rst +440 -0
- data/embulk-docs/src/conf.py +260 -0
- data/embulk-docs/src/customization.rst +184 -0
- data/embulk-docs/src/index.rst +84 -0
- data/embulk-docs/src/recipe.rst +8 -0
- data/embulk-docs/src/recipe/scheduled-csv-load-to-elasticsearch-kibana4.rst +153 -0
- data/embulk-docs/src/release.rst +57 -0
- data/embulk-docs/src/release/release-0.1.0.rst +8 -0
- data/embulk-docs/src/release/release-0.2.0.rst +16 -0
- data/embulk-docs/src/release/release-0.2.1.rst +19 -0
- data/embulk-docs/src/release/release-0.3.0.rst +34 -0
- data/embulk-docs/src/release/release-0.3.1.rst +11 -0
- data/embulk-docs/src/release/release-0.3.2.rst +15 -0
- data/embulk-docs/src/release/release-0.4.0.rst +74 -0
- data/embulk-docs/src/release/release-0.4.1.rst +18 -0
- data/embulk-docs/src/release/release-0.4.10.rst +17 -0
- data/embulk-docs/src/release/release-0.4.2.rst +18 -0
- data/embulk-docs/src/release/release-0.4.3.rst +34 -0
- data/embulk-docs/src/release/release-0.4.4.rst +39 -0
- data/embulk-docs/src/release/release-0.4.5.rst +24 -0
- data/embulk-docs/src/release/release-0.4.6.rst +30 -0
- data/embulk-docs/src/release/release-0.4.7.rst +16 -0
- data/embulk-docs/src/release/release-0.4.8.rst +15 -0
- data/embulk-docs/src/release/release-0.4.9.rst +23 -0
- data/embulk-docs/src/release/release-0.5.0.rst +89 -0
- data/embulk-docs/src/release/release-0.5.1.rst +13 -0
- data/embulk-docs/src/release/release-0.5.2.rst +30 -0
- data/embulk-docs/src/release/release-0.5.3.rst +22 -0
- data/embulk-docs/src/release/release-0.5.4.rst +24 -0
- data/embulk-docs/src/release/release-0.5.5.rst +18 -0
- data/embulk-docs/src/release/release-0.6.0.rst +34 -0
- data/embulk-docs/src/release/release-0.6.1.rst +11 -0
- data/embulk-docs/src/release/release-0.6.10.rst +15 -0
- data/embulk-docs/src/release/release-0.6.11.rst +19 -0
- data/embulk-docs/src/release/release-0.6.12.rst +31 -0
- data/embulk-docs/src/release/release-0.6.13.rst +23 -0
- data/embulk-docs/src/release/release-0.6.14.rst +47 -0
- data/embulk-docs/src/release/release-0.6.15.rst +26 -0
- data/embulk-docs/src/release/release-0.6.16.rst +26 -0
- data/embulk-docs/src/release/release-0.6.17.rst +39 -0
- data/embulk-docs/src/release/release-0.6.18.rst +14 -0
- data/embulk-docs/src/release/release-0.6.19.rst +18 -0
- data/embulk-docs/src/release/release-0.6.2.rst +17 -0
- data/embulk-docs/src/release/release-0.6.20.rst +19 -0
- data/embulk-docs/src/release/release-0.6.21.rst +20 -0
- data/embulk-docs/src/release/release-0.6.22.rst +26 -0
- data/embulk-docs/src/release/release-0.6.23.rst +17 -0
- data/embulk-docs/src/release/release-0.6.24.rst +13 -0
- data/embulk-docs/src/release/release-0.6.25.rst +12 -0
- data/embulk-docs/src/release/release-0.6.3.rst +23 -0
- data/embulk-docs/src/release/release-0.6.4.rst +13 -0
- data/embulk-docs/src/release/release-0.6.5.rst +17 -0
- data/embulk-docs/src/release/release-0.6.6.rst +17 -0
- data/embulk-docs/src/release/release-0.6.7.rst +17 -0
- data/embulk-docs/src/release/release-0.6.8.rst +24 -0
- data/embulk-docs/src/release/release-0.6.9.rst +24 -0
- data/embulk-docs/src/release/release-0.7.0.rst +96 -0
- data/embulk-standards/build.gradle +5 -0
- data/embulk-standards/src/main/java/org/embulk/standards/CsvFormatterPlugin.java +284 -0
- data/embulk-standards/src/main/java/org/embulk/standards/CsvParserPlugin.java +379 -0
- data/embulk-standards/src/main/java/org/embulk/standards/CsvTokenizer.java +411 -0
- data/embulk-standards/src/main/java/org/embulk/standards/GzipFileDecoderPlugin.java +55 -0
- data/embulk-standards/src/main/java/org/embulk/standards/GzipFileEncoderPlugin.java +71 -0
- data/embulk-standards/src/main/java/org/embulk/standards/LocalFileInputPlugin.java +203 -0
- data/embulk-standards/src/main/java/org/embulk/standards/LocalFileOutputPlugin.java +148 -0
- data/embulk-standards/src/main/java/org/embulk/standards/NullOutputPlugin.java +59 -0
- data/embulk-standards/src/main/java/org/embulk/standards/RenameFilterPlugin.java +56 -0
- data/embulk-standards/src/main/java/org/embulk/standards/StandardPluginExtension.java +16 -0
- data/embulk-standards/src/main/java/org/embulk/standards/StandardPluginModule.java +53 -0
- data/embulk-standards/src/main/java/org/embulk/standards/StdoutOutputPlugin.java +85 -0
- data/embulk-standards/src/main/resources/META-INF/services/org.embulk.spi.Extension +1 -0
- data/embulk-standards/src/test/java/org/embulk/standards/TestCsvFormatterPlugin.java +312 -0
- data/embulk-standards/src/test/java/org/embulk/standards/TestCsvParserPlugin.java +75 -0
- data/embulk-standards/src/test/java/org/embulk/standards/TestCsvTokenizer.java +360 -0
- data/embulk-standards/src/test/java/org/embulk/standards/TestRenameFilterPlugin.java +88 -0
- data/embulk.gemspec +39 -0
- data/gradle/wrapper/gradle-wrapper.jar +0 -0
- data/gradle/wrapper/gradle-wrapper.properties +6 -0
- data/gradlew +164 -0
- data/gradlew.bat +90 -0
- data/lib/embulk.rb +72 -0
- data/lib/embulk/buffer.rb +22 -0
- data/lib/embulk/column.rb +70 -0
- data/lib/embulk/command/embulk_bundle.rb +56 -0
- data/lib/embulk/command/embulk_example.rb +32 -0
- data/lib/embulk/command/embulk_generate_bin.rb +62 -0
- data/lib/embulk/command/embulk_main.rb +2 -0
- data/lib/embulk/command/embulk_migrate_plugin.rb +170 -0
- data/lib/embulk/command/embulk_new_plugin.rb +124 -0
- data/lib/embulk/command/embulk_run.rb +470 -0
- data/lib/embulk/command/embulk_selfupdate.rb +84 -0
- data/lib/embulk/data/bundle/.bundle/config +3 -0
- data/lib/embulk/data/bundle/.ruby-version +1 -0
- data/lib/embulk/data/bundle/Gemfile +26 -0
- data/lib/embulk/data/bundle/embulk/filter/example.rb +42 -0
- data/lib/embulk/data/bundle/embulk/input/example.rb +54 -0
- data/lib/embulk/data/bundle/embulk/output/example.rb +58 -0
- data/lib/embulk/data/new/LICENSE.txt +21 -0
- data/lib/embulk/data/new/README.md.erb +111 -0
- data/lib/embulk/data/new/gitignore.erb +13 -0
- data/lib/embulk/data/new/java/build.gradle.erb +73 -0
- data/lib/embulk/data/new/java/decoder.java.erb +84 -0
- data/lib/embulk/data/new/java/encoder.java.erb +86 -0
- data/lib/embulk/data/new/java/file_input.java.erb +143 -0
- data/lib/embulk/data/new/java/file_output.java.erb +93 -0
- data/lib/embulk/data/new/java/filter.java.erb +56 -0
- data/lib/embulk/data/new/java/formatter.java.erb +54 -0
- data/lib/embulk/data/new/java/gradle/wrapper/gradle-wrapper.jar +0 -0
- data/lib/embulk/data/new/java/gradle/wrapper/gradle-wrapper.properties +6 -0
- data/lib/embulk/data/new/java/gradlew +164 -0
- data/lib/embulk/data/new/java/gradlew.bat +90 -0
- data/lib/embulk/data/new/java/input.java.erb +87 -0
- data/lib/embulk/data/new/java/output.java.erb +77 -0
- data/lib/embulk/data/new/java/parser.java.erb +60 -0
- data/lib/embulk/data/new/java/plugin_loader.rb.erb +3 -0
- data/lib/embulk/data/new/java/test.java.erb +5 -0
- data/lib/embulk/data/new/ruby/.ruby-version +1 -0
- data/lib/embulk/data/new/ruby/Gemfile +2 -0
- data/lib/embulk/data/new/ruby/Rakefile +3 -0
- data/lib/embulk/data/new/ruby/decoder_guess.rb.erb +25 -0
- data/lib/embulk/data/new/ruby/filter.rb.erb +41 -0
- data/lib/embulk/data/new/ruby/formatter.rb.erb +49 -0
- data/lib/embulk/data/new/ruby/gemspec.erb +20 -0
- data/lib/embulk/data/new/ruby/input.rb.erb +59 -0
- data/lib/embulk/data/new/ruby/output.rb.erb +61 -0
- data/lib/embulk/data/new/ruby/parser.rb.erb +44 -0
- data/lib/embulk/data/new/ruby/parser_guess.rb.erb +65 -0
- data/lib/embulk/data/package_data.rb +50 -0
- data/lib/embulk/data_source.rb +220 -0
- data/lib/embulk/decoder_plugin.rb +27 -0
- data/lib/embulk/encoder_plugin.rb +27 -0
- data/lib/embulk/error.rb +8 -0
- data/lib/embulk/executor_plugin.rb +23 -0
- data/lib/embulk/file_input.rb +87 -0
- data/lib/embulk/file_input_plugin.rb +27 -0
- data/lib/embulk/file_output.rb +56 -0
- data/lib/embulk/file_output_plugin.rb +27 -0
- data/lib/embulk/filter_plugin.rb +105 -0
- data/lib/embulk/formatter_plugin.rb +105 -0
- data/lib/embulk/guess/charset.rb +44 -0
- data/lib/embulk/guess/csv.rb +327 -0
- data/lib/embulk/guess/gzip.rb +18 -0
- data/lib/embulk/guess/newline.rb +22 -0
- data/lib/embulk/guess/schema_guess.rb +118 -0
- data/lib/embulk/guess/time_format_guess.rb +394 -0
- data/lib/embulk/guess_plugin.rb +129 -0
- data/lib/embulk/input_plugin.rb +121 -0
- data/lib/embulk/java/bootstrap.rb +24 -0
- data/lib/embulk/java/imports.rb +69 -0
- data/lib/embulk/java/time_helper.rb +79 -0
- data/lib/embulk/java_plugin.rb +90 -0
- data/lib/embulk/logger.rb +154 -0
- data/lib/embulk/output_plugin.rb +150 -0
- data/lib/embulk/page.rb +30 -0
- data/lib/embulk/page_builder.rb +76 -0
- data/lib/embulk/parser_plugin.rb +78 -0
- data/lib/embulk/plugin.rb +239 -0
- data/lib/embulk/plugin_registry.rb +96 -0
- data/lib/embulk/runner.rb +184 -0
- data/lib/embulk/schema.rb +103 -0
- data/lib/embulk/version.rb +3 -0
- data/settings.gradle +6 -0
- data/test/guess/test_schema_guess.rb +11 -0
- data/test/guess/test_time_format_guess.rb +133 -0
- data/test/helper.rb +21 -0
- data/test/run-test.rb +14 -0
- metadata +566 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
package org.embulk.spi.util.dynamic;
|
|
2
|
+
|
|
3
|
+
import org.jruby.runtime.builtin.IRubyObject;
|
|
4
|
+
import org.jruby.RubyNil;
|
|
5
|
+
import org.jruby.RubyBoolean;
|
|
6
|
+
import org.jruby.RubyInteger;
|
|
7
|
+
import org.jruby.RubyFloat;
|
|
8
|
+
import org.jruby.RubyString;
|
|
9
|
+
import org.jruby.RubyTime;
|
|
10
|
+
import org.jruby.exceptions.RaiseException;
|
|
11
|
+
import org.embulk.spi.PageBuilder;
|
|
12
|
+
import org.embulk.spi.Column;
|
|
13
|
+
import org.embulk.spi.util.DynamicColumnSetter;
|
|
14
|
+
import org.embulk.spi.time.Timestamp;
|
|
15
|
+
|
|
16
|
+
public abstract class AbstractDynamicColumnSetter
|
|
17
|
+
implements DynamicColumnSetter
|
|
18
|
+
{
|
|
19
|
+
protected final PageBuilder pageBuilder;
|
|
20
|
+
protected final Column column;
|
|
21
|
+
protected final DefaultValueSetter defaultValue;
|
|
22
|
+
|
|
23
|
+
protected AbstractDynamicColumnSetter(PageBuilder pageBuilder, Column column,
|
|
24
|
+
DefaultValueSetter defaultValue)
|
|
25
|
+
{
|
|
26
|
+
this.pageBuilder = pageBuilder;
|
|
27
|
+
this.column = column;
|
|
28
|
+
this.defaultValue = defaultValue;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
public abstract void setNull();
|
|
32
|
+
|
|
33
|
+
public abstract void set(boolean value);
|
|
34
|
+
|
|
35
|
+
public abstract void set(long value);
|
|
36
|
+
|
|
37
|
+
public abstract void set(double value);
|
|
38
|
+
|
|
39
|
+
public abstract void set(String value);
|
|
40
|
+
|
|
41
|
+
public abstract void set(Timestamp value);
|
|
42
|
+
|
|
43
|
+
public void setRubyObject(IRubyObject rubyObject)
|
|
44
|
+
{
|
|
45
|
+
if (rubyObject == null || rubyObject instanceof RubyNil) {
|
|
46
|
+
setNull();
|
|
47
|
+
} else if (rubyObject instanceof RubyBoolean) {
|
|
48
|
+
RubyBoolean b = (RubyBoolean) rubyObject;
|
|
49
|
+
set(b.isTrue());
|
|
50
|
+
} else if (rubyObject instanceof RubyInteger) {
|
|
51
|
+
RubyInteger i = (RubyInteger) rubyObject;
|
|
52
|
+
try {
|
|
53
|
+
set(i.getLongValue());
|
|
54
|
+
} catch (RaiseException ex) {
|
|
55
|
+
if ("RangeError".equals(ex.getException().getMetaClass().getBaseName())) {
|
|
56
|
+
// integer is too large
|
|
57
|
+
throw ex; //TODO setDefaultValue();
|
|
58
|
+
} else {
|
|
59
|
+
throw ex;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
} else if (rubyObject instanceof RubyFloat) {
|
|
63
|
+
RubyFloat f = (RubyFloat) rubyObject;
|
|
64
|
+
set(f.getDoubleValue());
|
|
65
|
+
} else if (rubyObject instanceof RubyString) {
|
|
66
|
+
RubyString s = (RubyString) rubyObject;
|
|
67
|
+
set(s.asJavaString());
|
|
68
|
+
} else if (rubyObject instanceof RubyTime) {
|
|
69
|
+
RubyTime time = (RubyTime) rubyObject;
|
|
70
|
+
long msec = time.getDateTime().getMillis();
|
|
71
|
+
long nsec = time.getNSec();
|
|
72
|
+
long sec = msec / 1000 + nsec / 1000000000;
|
|
73
|
+
int nano = (int) ((msec % 1000) * 1000000 + nsec % 1000000000);
|
|
74
|
+
set(Timestamp.ofEpochSecond(sec, nano));
|
|
75
|
+
} else {
|
|
76
|
+
throw rubyObject.getRuntime().newTypeError("cannot convert instance of " + rubyObject.getMetaClass() + " to nil, true, false, Integer, Float, String, or Time");
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
package org.embulk.spi.util.dynamic;
|
|
2
|
+
|
|
3
|
+
import com.google.common.collect.ImmutableSet;
|
|
4
|
+
import org.embulk.spi.Column;
|
|
5
|
+
import org.embulk.spi.PageBuilder;
|
|
6
|
+
import org.embulk.spi.time.Timestamp;
|
|
7
|
+
|
|
8
|
+
public class BooleanColumnSetter
|
|
9
|
+
extends AbstractDynamicColumnSetter
|
|
10
|
+
{
|
|
11
|
+
private static final ImmutableSet<String> TRUE_STRINGS =
|
|
12
|
+
ImmutableSet.of(
|
|
13
|
+
"true", "True", "TRUE",
|
|
14
|
+
"yes", "Yes", "YES",
|
|
15
|
+
"t", "T", "y", "Y",
|
|
16
|
+
"on", "On", "ON",
|
|
17
|
+
"1");
|
|
18
|
+
|
|
19
|
+
public BooleanColumnSetter(PageBuilder pageBuilder, Column column,
|
|
20
|
+
DefaultValueSetter defaultValue)
|
|
21
|
+
{
|
|
22
|
+
super(pageBuilder, column, defaultValue);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@Override
|
|
26
|
+
public void setNull()
|
|
27
|
+
{
|
|
28
|
+
pageBuilder.setNull(column);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
@Override
|
|
32
|
+
public void set(boolean v)
|
|
33
|
+
{
|
|
34
|
+
pageBuilder.setBoolean(column, v);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
@Override
|
|
38
|
+
public void set(long v)
|
|
39
|
+
{
|
|
40
|
+
pageBuilder.setBoolean(column, v > 0);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@Override
|
|
44
|
+
public void set(double v)
|
|
45
|
+
{
|
|
46
|
+
pageBuilder.setBoolean(column, v > 0.0);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@Override
|
|
50
|
+
public void set(String v)
|
|
51
|
+
{
|
|
52
|
+
if (TRUE_STRINGS.contains(v)) {
|
|
53
|
+
pageBuilder.setBoolean(column, true);
|
|
54
|
+
} else {
|
|
55
|
+
defaultValue.setDouble(pageBuilder, column);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@Override
|
|
60
|
+
public void set(Timestamp v)
|
|
61
|
+
{
|
|
62
|
+
defaultValue.setBoolean(pageBuilder, column);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
package org.embulk.spi.util.dynamic;
|
|
2
|
+
|
|
3
|
+
import org.embulk.spi.PageBuilder;
|
|
4
|
+
import org.embulk.spi.Column;
|
|
5
|
+
import org.embulk.spi.time.Timestamp;
|
|
6
|
+
|
|
7
|
+
public interface DefaultValueSetter
|
|
8
|
+
{
|
|
9
|
+
void setBoolean(PageBuilder pageBuilder, Column c);
|
|
10
|
+
|
|
11
|
+
void setLong(PageBuilder pageBuilder, Column c);
|
|
12
|
+
|
|
13
|
+
void setDouble(PageBuilder pageBuilder, Column c);
|
|
14
|
+
|
|
15
|
+
void setString(PageBuilder pageBuilder, Column c);
|
|
16
|
+
|
|
17
|
+
void setTimestamp(PageBuilder pageBuilder, Column c);
|
|
18
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
package org.embulk.spi.util.dynamic;
|
|
2
|
+
|
|
3
|
+
import java.math.RoundingMode;
|
|
4
|
+
import org.embulk.spi.Column;
|
|
5
|
+
import org.embulk.spi.PageBuilder;
|
|
6
|
+
import org.embulk.spi.time.Timestamp;
|
|
7
|
+
|
|
8
|
+
public class DoubleColumnSetter
|
|
9
|
+
extends AbstractDynamicColumnSetter
|
|
10
|
+
{
|
|
11
|
+
public DoubleColumnSetter(PageBuilder pageBuilder, Column column,
|
|
12
|
+
DefaultValueSetter defaultValue)
|
|
13
|
+
{
|
|
14
|
+
super(pageBuilder, column, defaultValue);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@Override
|
|
18
|
+
public void setNull()
|
|
19
|
+
{
|
|
20
|
+
pageBuilder.setNull(column);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@Override
|
|
24
|
+
public void set(boolean v)
|
|
25
|
+
{
|
|
26
|
+
pageBuilder.setDouble(column, v ? 1.0 : 0.0);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@Override
|
|
30
|
+
public void set(long v)
|
|
31
|
+
{
|
|
32
|
+
pageBuilder.setDouble(column, (double) v);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@Override
|
|
36
|
+
public void set(double v)
|
|
37
|
+
{
|
|
38
|
+
pageBuilder.setDouble(column, v);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@Override
|
|
42
|
+
public void set(String v)
|
|
43
|
+
{
|
|
44
|
+
double dv;
|
|
45
|
+
try {
|
|
46
|
+
dv = Double.parseDouble(v);
|
|
47
|
+
} catch (NumberFormatException e) {
|
|
48
|
+
defaultValue.setDouble(pageBuilder, column);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
pageBuilder.setDouble(column, dv);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@Override
|
|
55
|
+
public void set(Timestamp v)
|
|
56
|
+
{
|
|
57
|
+
double sec = (double) v.getEpochSecond();
|
|
58
|
+
double frac = v.getNano() / 1000000000.0;
|
|
59
|
+
pageBuilder.setDouble(column, sec + frac);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
package org.embulk.spi.util.dynamic;
|
|
2
|
+
|
|
3
|
+
import java.math.RoundingMode;
|
|
4
|
+
import com.google.common.math.DoubleMath;
|
|
5
|
+
import org.embulk.spi.Column;
|
|
6
|
+
import org.embulk.spi.PageBuilder;
|
|
7
|
+
import org.embulk.spi.time.Timestamp;
|
|
8
|
+
|
|
9
|
+
public class LongColumnSetter
|
|
10
|
+
extends AbstractDynamicColumnSetter
|
|
11
|
+
{
|
|
12
|
+
public LongColumnSetter(PageBuilder pageBuilder, Column column,
|
|
13
|
+
DefaultValueSetter defaultValue)
|
|
14
|
+
{
|
|
15
|
+
super(pageBuilder, column, defaultValue);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
@Override
|
|
19
|
+
public void setNull()
|
|
20
|
+
{
|
|
21
|
+
pageBuilder.setNull(column);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@Override
|
|
25
|
+
public void set(boolean v)
|
|
26
|
+
{
|
|
27
|
+
pageBuilder.setLong(column, v ? 1L : 0L);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@Override
|
|
31
|
+
public void set(long v)
|
|
32
|
+
{
|
|
33
|
+
pageBuilder.setLong(column, v);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@Override
|
|
37
|
+
public void set(double v)
|
|
38
|
+
{
|
|
39
|
+
long lv;
|
|
40
|
+
try {
|
|
41
|
+
// TODO configurable rounding mode
|
|
42
|
+
lv = DoubleMath.roundToLong(v, RoundingMode.HALF_UP);
|
|
43
|
+
} catch (ArithmeticException ex) {
|
|
44
|
+
// NaN / Infinite / -Infinite
|
|
45
|
+
defaultValue.setLong(pageBuilder, column);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
pageBuilder.setLong(column, lv);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
@Override
|
|
52
|
+
public void set(String v)
|
|
53
|
+
{
|
|
54
|
+
long lv;
|
|
55
|
+
try {
|
|
56
|
+
lv = Long.parseLong(v);
|
|
57
|
+
} catch (NumberFormatException e) {
|
|
58
|
+
defaultValue.setLong(pageBuilder, column);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
pageBuilder.setLong(column, lv);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
@Override
|
|
65
|
+
public void set(Timestamp v)
|
|
66
|
+
{
|
|
67
|
+
pageBuilder.setDouble(column, v.getEpochSecond());
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
package org.embulk.spi.util.dynamic;
|
|
2
|
+
|
|
3
|
+
import org.embulk.spi.PageBuilder;
|
|
4
|
+
import org.embulk.spi.Column;
|
|
5
|
+
import org.embulk.spi.time.Timestamp;
|
|
6
|
+
|
|
7
|
+
public class NullDefaultValueSetter
|
|
8
|
+
implements DefaultValueSetter
|
|
9
|
+
{
|
|
10
|
+
public void setBoolean(PageBuilder pageBuilder, Column c)
|
|
11
|
+
{
|
|
12
|
+
pageBuilder.setNull(c);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
public void setLong(PageBuilder pageBuilder, Column c)
|
|
16
|
+
{
|
|
17
|
+
pageBuilder.setNull(c);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
public void setDouble(PageBuilder pageBuilder, Column c)
|
|
21
|
+
{
|
|
22
|
+
pageBuilder.setNull(c);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
public void setString(PageBuilder pageBuilder, Column c)
|
|
26
|
+
{
|
|
27
|
+
pageBuilder.setNull(c);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
public void setTimestamp(PageBuilder pageBuilder, Column c)
|
|
31
|
+
{
|
|
32
|
+
pageBuilder.setNull(c);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
package org.embulk.spi.util.dynamic;
|
|
2
|
+
|
|
3
|
+
import org.jruby.runtime.builtin.IRubyObject;
|
|
4
|
+
import org.embulk.spi.PageBuilder;
|
|
5
|
+
import org.embulk.spi.Column;
|
|
6
|
+
import org.embulk.spi.time.Timestamp;
|
|
7
|
+
import org.embulk.spi.time.TimestampParser;
|
|
8
|
+
import org.embulk.spi.time.TimestampParseException;
|
|
9
|
+
|
|
10
|
+
public class SkipColumnSetter
|
|
11
|
+
extends AbstractDynamicColumnSetter
|
|
12
|
+
{
|
|
13
|
+
private static final SkipColumnSetter instance = new SkipColumnSetter();
|
|
14
|
+
|
|
15
|
+
public static SkipColumnSetter get()
|
|
16
|
+
{
|
|
17
|
+
return instance;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
private SkipColumnSetter()
|
|
21
|
+
{
|
|
22
|
+
super(null, null, null);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@Override
|
|
26
|
+
public void setNull()
|
|
27
|
+
{ }
|
|
28
|
+
|
|
29
|
+
@Override
|
|
30
|
+
public void set(boolean v)
|
|
31
|
+
{ }
|
|
32
|
+
|
|
33
|
+
@Override
|
|
34
|
+
public void set(long v)
|
|
35
|
+
{ }
|
|
36
|
+
|
|
37
|
+
@Override
|
|
38
|
+
public void set(double v)
|
|
39
|
+
{ }
|
|
40
|
+
|
|
41
|
+
@Override
|
|
42
|
+
public void set(String v)
|
|
43
|
+
{ }
|
|
44
|
+
|
|
45
|
+
@Override
|
|
46
|
+
public void set(Timestamp v)
|
|
47
|
+
{ }
|
|
48
|
+
|
|
49
|
+
@Override
|
|
50
|
+
public void setRubyObject(IRubyObject rubyObject)
|
|
51
|
+
{ }
|
|
52
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
package org.embulk.spi.util.dynamic;
|
|
2
|
+
|
|
3
|
+
import org.embulk.spi.PageBuilder;
|
|
4
|
+
import org.embulk.spi.Column;
|
|
5
|
+
import org.embulk.spi.time.Timestamp;
|
|
6
|
+
import org.embulk.spi.time.TimestampFormatter;
|
|
7
|
+
|
|
8
|
+
public class StringColumnSetter
|
|
9
|
+
extends AbstractDynamicColumnSetter
|
|
10
|
+
{
|
|
11
|
+
private final TimestampFormatter timestampFormatter;
|
|
12
|
+
|
|
13
|
+
public StringColumnSetter(PageBuilder pageBuilder, Column column,
|
|
14
|
+
DefaultValueSetter defaultValue,
|
|
15
|
+
TimestampFormatter timestampFormatter)
|
|
16
|
+
{
|
|
17
|
+
super(pageBuilder, column, defaultValue);
|
|
18
|
+
this.timestampFormatter = timestampFormatter;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@Override
|
|
22
|
+
public void setNull()
|
|
23
|
+
{
|
|
24
|
+
pageBuilder.setNull(column);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
@Override
|
|
28
|
+
public void set(boolean v)
|
|
29
|
+
{
|
|
30
|
+
pageBuilder.setString(column, Boolean.toString(v));
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@Override
|
|
34
|
+
public void set(long v)
|
|
35
|
+
{
|
|
36
|
+
pageBuilder.setString(column, Long.toString(v));
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@Override
|
|
40
|
+
public void set(double v)
|
|
41
|
+
{
|
|
42
|
+
pageBuilder.setString(column, Double.toString(v));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@Override
|
|
46
|
+
public void set(String v)
|
|
47
|
+
{
|
|
48
|
+
pageBuilder.setString(column, v);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
@Override
|
|
52
|
+
public void set(Timestamp v)
|
|
53
|
+
{
|
|
54
|
+
pageBuilder.setString(column, timestampFormatter.format(v));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
package org.embulk.spi.util.dynamic;
|
|
2
|
+
|
|
3
|
+
import org.embulk.spi.PageBuilder;
|
|
4
|
+
import org.embulk.spi.Column;
|
|
5
|
+
import org.embulk.spi.time.Timestamp;
|
|
6
|
+
import org.embulk.spi.time.TimestampParser;
|
|
7
|
+
import org.embulk.spi.time.TimestampParseException;
|
|
8
|
+
|
|
9
|
+
public class TimestampColumnSetter
|
|
10
|
+
extends AbstractDynamicColumnSetter
|
|
11
|
+
{
|
|
12
|
+
private final TimestampParser timestampParser;
|
|
13
|
+
|
|
14
|
+
public TimestampColumnSetter(PageBuilder pageBuilder, Column column,
|
|
15
|
+
DefaultValueSetter defaultValue,
|
|
16
|
+
TimestampParser timestampParser)
|
|
17
|
+
{
|
|
18
|
+
super(pageBuilder, column, defaultValue);
|
|
19
|
+
this.timestampParser = timestampParser;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@Override
|
|
23
|
+
public void setNull()
|
|
24
|
+
{
|
|
25
|
+
pageBuilder.setNull(column);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@Override
|
|
29
|
+
public void set(boolean v)
|
|
30
|
+
{
|
|
31
|
+
defaultValue.setTimestamp(pageBuilder, column);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@Override
|
|
35
|
+
public void set(long v)
|
|
36
|
+
{
|
|
37
|
+
pageBuilder.setTimestamp(column, Timestamp.ofEpochSecond(v));
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@Override
|
|
41
|
+
public void set(double v)
|
|
42
|
+
{
|
|
43
|
+
long sec = (long) v;
|
|
44
|
+
int nsec = (int) ((v - (double) sec) * 1000000000);
|
|
45
|
+
pageBuilder.setTimestamp(column, Timestamp.ofEpochSecond(sec, nsec));
|
|
46
|
+
defaultValue.setTimestamp(pageBuilder, column);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@Override
|
|
50
|
+
public void set(String v)
|
|
51
|
+
{
|
|
52
|
+
try {
|
|
53
|
+
pageBuilder.setTimestamp(column, timestampParser.parse(v));
|
|
54
|
+
} catch (TimestampParseException e) {
|
|
55
|
+
defaultValue.setTimestamp(pageBuilder, column);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@Override
|
|
60
|
+
public void set(Timestamp v)
|
|
61
|
+
{
|
|
62
|
+
pageBuilder.setTimestamp(column, v);
|
|
63
|
+
}
|
|
64
|
+
}
|