From a4abfb733a5d3786c04b2d0d83f7167eae4e3ff7 Mon Sep 17 00:00:00 2001 From: carm Date: Wed, 14 May 2025 04:22:48 +0800 Subject: [PATCH] style: Reformatted code with .editorconfig --- .doc/JAVADOC-README.md | 5 +- .editorconfig | 346 ++++++++++++++++++ .github/ISSUE_TEMPLATE/bugs_report.md | 61 ++- .github/ISSUE_TEMPLATE/feature_issues.md | 29 +- README.md | 253 +++++++++++-- README_CN.md | 67 +++- core/pom.xml | 2 +- .../carm/lib/configuration/Configuration.java | 3 +- .../configuration/adapter/ValueAdapter.java | 14 +- .../adapter/ValueAdapterRegistry.java | 12 +- .../configuration/adapter/ValueParser.java | 4 +- .../adapter/ValueSerializer.java | 4 +- .../lib/configuration/adapter/ValueType.java | 4 +- .../adapter/strandard/PrimitiveAdapter.java | 4 +- .../adapter/strandard/StandardAdapters.java | 26 +- .../builder/AbstractConfigBuilder.java | 10 +- .../builder/CommonConfigBuilder.java | 8 +- .../builder/impl/AbstractSectionBuilder.java | 26 +- .../builder/impl/AbstractSourceBuilder.java | 22 +- .../builder/list/ConfigListBuilder.java | 14 +- .../builder/list/SectionListBuilder.java | 2 +- .../builder/list/SourceListBuilder.java | 2 +- .../builder/map/ConfigMapBuilder.java | 32 +- .../builder/map/SectionMapBuilder.java | 18 +- .../builder/map/SourceMapBuilder.java | 18 +- .../builder/value/ConfigValueBuilder.java | 4 +- .../builder/value/SourceValueBuilder.java | 2 +- .../source/ConfigurationFactory.java | 8 +- .../source/loader/PathGenerator.java | 30 +- .../source/section/ConfigureSection.java | 6 +- .../source/section/ConfigureSource.java | 6 +- .../value/standard/ConfiguredMap.java | 4 +- .../value/standard/ConfiguredValue.java | 6 +- .../carm/test/config/offset/OffsetUtil.java | 20 +- demo/pom.xml | 2 +- .../demo/DatabaseConfiguration.java | 10 +- .../demo/tests/conf/DemoConfiguration.java | 48 +-- .../demo/tests/conf/KotlinConfiguration.kt | 3 +- .../demo/tests/conf/RegistryConfig.java | 6 +- .../demo/tests/model/ItemStack.java | 8 +- .../demo/tests/model/UserRecord.java | 8 +- .../tests/test/JSONConfigTests.java | 6 +- .../configuration/tests/test/YamlTests.java | 2 +- .../tests/test/mongodb/MongoTest.java | 24 +- .../tests/test/sql/SQLConfigTest.java | 6 +- features/commentable/pom.xml | 2 +- .../commentable/CommentableMeta.java | 8 +- features/file/pom.xml | 2 +- .../source/file/FileConfigFactory.java | 4 +- .../source/file/FileConfigSource.java | 4 +- .../source/option/FileConfigOptions.java | 4 +- features/kotlin/pom.xml | 2 +- features/section/pom.xml | 2 +- features/text/pom.xml | 2 +- .../value/text/ConfiguredText.java | 10 +- .../value/text/function/ContentHandler.java | 2 +- .../value/text/function/TextDispatcher.java | 1 - .../value/text/function/TextParser.java | 2 +- .../function/common/AppendLineInserter.java | 6 +- .../function/common/OptionalLineInserter.java | 2 +- .../value/text/tests/ConfigTest.java | 14 +- .../value/text/tests/ParseTest.java | 18 +- .../value/text/tests/conf/AppMessages.java | 26 +- .../value/text/tests/conf/ConfiguredMsg.java | 10 +- features/validators/pom.xml | 2 +- features/versioned/pom.xml | 2 +- pom.xml | 2 +- providers/gson/README.md | 20 +- providers/gson/pom.xml | 2 +- .../configuration/source/json/JSONSource.java | 10 +- providers/hocon/README.md | 9 +- providers/hocon/pom.xml | 2 +- .../source/hocon/HOCONSource.java | 57 +-- .../src/test/java/sample/SampleConfig.java | 10 +- .../src/test/java/sample/SampleTest.java | 6 +- providers/mongodb/pom.xml | 2 +- providers/sql/README.md | 63 +++- providers/sql/pom.xml | 2 +- .../source/sql/SQLConfigFactory.java | 18 +- .../configuration/source/sql/SQLOptions.java | 2 +- .../configuration/source/sql/SQLSource.java | 26 +- providers/yaml/README.md | 11 +- providers/yaml/pom.xml | 2 +- .../configuration/source/yaml/YAMLSource.java | 10 +- .../src/test/java/sample/SampleConfig.java | 10 +- .../yaml/src/test/java/sample/SampleTest.java | 6 +- 86 files changed, 1140 insertions(+), 450 deletions(-) create mode 100644 .editorconfig diff --git a/.doc/JAVADOC-README.md b/.doc/JAVADOC-README.md index 5d65453..d0077d0 100644 --- a/.doc/JAVADOC-README.md +++ b/.doc/JAVADOC-README.md @@ -1,3 +1,6 @@ # configured Javadoc -Based on [Github Pages](https://pages.github.com/), please see [JavaDoc](https://carmjos.github.io/configured) 。 \ No newline at end of file +Based +on [Github Pages](https://pages.github.com/), +please +see [JavaDoc](https://carmjos.github.io/configured) 。 diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..3b8d0d7 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,346 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +indent_style = space +tab_width = 4 + +[*.java] +indent_size = 4 +max_line_length = 120 +ij_java_align_consecutive_assignments = false +ij_java_align_consecutive_variable_declarations = false +ij_java_align_group_field_declarations = false +ij_java_align_multiline_annotation_parameters = false +ij_java_align_multiline_array_initializer_expression = false +ij_java_align_multiline_assignment = false +ij_java_align_multiline_binary_operation = false +ij_java_align_multiline_chained_methods = false +ij_java_align_multiline_deconstruction_list_components = true +ij_java_align_multiline_extends_list = false +ij_java_align_multiline_for = true +ij_java_align_multiline_method_parentheses = false +ij_java_align_multiline_parameters = true +ij_java_align_multiline_parameters_in_calls = false +ij_java_align_multiline_parenthesized_expression = false +ij_java_align_multiline_records = true +ij_java_align_multiline_resources = true +ij_java_align_multiline_ternary_operation = false +ij_java_align_multiline_text_blocks = false +ij_java_align_multiline_throws_list = false +ij_java_align_subsequent_simple_methods = false +ij_java_align_throws_keyword = false +ij_java_align_types_in_multi_catch = true +ij_java_annotation_new_line_in_record_component = false +ij_java_annotation_parameter_wrap = off +ij_java_array_initializer_new_line_after_left_brace = false +ij_java_array_initializer_right_brace_on_new_line = false +ij_java_array_initializer_wrap = off +ij_java_assert_statement_colon_on_next_line = false +ij_java_assert_statement_wrap = off +ij_java_assignment_wrap = off +ij_java_binary_operation_sign_on_next_line = false +ij_java_binary_operation_wrap = off +ij_java_blank_lines_after_anonymous_class_header = 0 +ij_java_blank_lines_after_class_header = 0 +ij_java_blank_lines_after_imports = 1 +ij_java_blank_lines_after_package = 1 +ij_java_blank_lines_around_class = 1 +ij_java_blank_lines_around_field = 0 +ij_java_blank_lines_around_field_in_interface = 0 +ij_java_blank_lines_around_field_with_annotations = 0 +ij_java_blank_lines_around_initializer = 1 +ij_java_blank_lines_around_method = 1 +ij_java_blank_lines_around_method_in_interface = 1 +ij_java_blank_lines_before_class_end = 0 +ij_java_blank_lines_before_imports = 1 +ij_java_blank_lines_before_method_body = 0 +ij_java_blank_lines_before_package = 0 +ij_java_blank_lines_between_record_components = 0 +ij_java_block_brace_style = end_of_line +ij_java_block_comment_add_space = false +ij_java_block_comment_at_first_column = true +ij_java_builder_methods = +ij_java_call_parameters_new_line_after_left_paren = false +ij_java_call_parameters_right_paren_on_new_line = false +ij_java_call_parameters_wrap = off +ij_java_case_statement_on_separate_line = true +ij_java_catch_on_new_line = false +ij_java_class_annotation_wrap = split_into_lines +ij_java_class_brace_style = end_of_line +ij_java_class_count_to_use_import_on_demand = 5 +ij_java_class_names_in_javadoc = 1 +ij_java_deconstruction_list_wrap = normal +ij_java_do_not_indent_top_level_class_members = false +ij_java_do_not_wrap_after_single_annotation = false +ij_java_do_not_wrap_after_single_annotation_in_parameter = false +ij_java_do_while_brace_force = never +ij_java_doc_add_blank_line_after_description = true +ij_java_doc_add_blank_line_after_param_comments = false +ij_java_doc_add_blank_line_after_return = false +ij_java_doc_add_p_tag_on_empty_lines = true +ij_java_doc_align_exception_comments = true +ij_java_doc_align_param_comments = true +ij_java_doc_do_not_wrap_if_one_line = false +ij_java_doc_enable_formatting = true +ij_java_doc_enable_leading_asterisks = true +ij_java_doc_indent_on_continuation = false +ij_java_doc_keep_empty_lines = true +ij_java_doc_keep_empty_parameter_tag = true +ij_java_doc_keep_empty_return_tag = true +ij_java_doc_keep_empty_throws_tag = true +ij_java_doc_keep_invalid_tags = true +ij_java_doc_param_description_on_new_line = false +ij_java_doc_preserve_line_breaks = false +ij_java_doc_use_throws_not_exception_tag = true +ij_java_else_on_new_line = false +ij_java_entity_dd_prefix = +ij_java_entity_dd_suffix = EJB +ij_java_entity_eb_prefix = +ij_java_entity_eb_suffix = Bean +ij_java_entity_hi_prefix = +ij_java_entity_hi_suffix = Home +ij_java_entity_lhi_prefix = Local +ij_java_entity_lhi_suffix = Home +ij_java_entity_li_prefix = Local +ij_java_entity_li_suffix = +ij_java_entity_pk_class = java.lang.String +ij_java_entity_ri_prefix = +ij_java_entity_ri_suffix = +ij_java_entity_vo_prefix = +ij_java_entity_vo_suffix = VO +ij_java_enum_constants_wrap = off +ij_java_enum_field_annotation_wrap = off +ij_java_extends_keyword_wrap = off +ij_java_extends_list_wrap = off +ij_java_field_annotation_wrap = split_into_lines +ij_java_field_name_prefix = +ij_java_field_name_suffix = +ij_java_filter_class_prefix = +ij_java_filter_class_suffix = +ij_java_filter_dd_prefix = +ij_java_filter_dd_suffix = +ij_java_finally_on_new_line = false +ij_java_for_brace_force = never +ij_java_for_statement_new_line_after_left_paren = false +ij_java_for_statement_right_paren_on_new_line = false +ij_java_for_statement_wrap = off +ij_java_generate_final_locals = false +ij_java_generate_final_parameters = false +ij_java_generate_use_type_annotation_before_type = true +ij_java_if_brace_force = never +ij_java_imports_layout = @*, *, |, javax.**, java.**, |, $* +ij_java_indent_case_from_switch = true +ij_java_insert_inner_class_imports = false +ij_java_insert_override_annotation = true +ij_java_keep_blank_lines_before_right_brace = 2 +ij_java_keep_blank_lines_between_package_declaration_and_header = 2 +ij_java_keep_blank_lines_in_code = 2 +ij_java_keep_blank_lines_in_declarations = 2 +ij_java_keep_builder_methods_indents = false +ij_java_keep_control_statement_in_one_line = true +ij_java_keep_first_column_comment = true +ij_java_keep_indents_on_empty_lines = false +ij_java_keep_line_breaks = true +ij_java_keep_multiple_expressions_in_one_line = false +ij_java_keep_simple_blocks_in_one_line = false +ij_java_keep_simple_classes_in_one_line = false +ij_java_keep_simple_lambdas_in_one_line = false +ij_java_keep_simple_methods_in_one_line = false +ij_java_label_indent_absolute = false +ij_java_label_indent_size = 0 +ij_java_lambda_brace_style = end_of_line +ij_java_layout_on_demand_import_from_same_package_first = true +ij_java_layout_static_imports_separately = true +ij_java_line_comment_add_space = false +ij_java_line_comment_add_space_on_reformat = false +ij_java_line_comment_at_first_column = true +ij_java_listener_class_prefix = +ij_java_listener_class_suffix = +ij_java_local_variable_name_prefix = +ij_java_local_variable_name_suffix = +ij_java_message_dd_prefix = +ij_java_message_dd_suffix = EJB +ij_java_message_eb_prefix = +ij_java_message_eb_suffix = Bean +ij_java_method_annotation_wrap = split_into_lines +ij_java_method_brace_style = end_of_line +ij_java_method_call_chain_wrap = off +ij_java_method_parameters_new_line_after_left_paren = false +ij_java_method_parameters_right_paren_on_new_line = false +ij_java_method_parameters_wrap = off +ij_java_modifier_list_wrap = false +ij_java_multi_catch_types_wrap = normal +ij_java_names_count_to_use_import_on_demand = 3 +ij_java_new_line_after_lparen_in_annotation = false +ij_java_new_line_after_lparen_in_deconstruction_pattern = true +ij_java_new_line_after_lparen_in_record_header = false +ij_java_new_line_when_body_is_presented = false +ij_java_packages_to_use_import_on_demand = java.awt.*, javax.swing.* +ij_java_parameter_annotation_wrap = off +ij_java_parameter_name_prefix = +ij_java_parameter_name_suffix = +ij_java_parentheses_expression_new_line_after_left_paren = false +ij_java_parentheses_expression_right_paren_on_new_line = false +ij_java_place_assignment_sign_on_next_line = false +ij_java_prefer_longer_names = true +ij_java_prefer_parameters_wrap = false +ij_java_preserve_module_imports = true +ij_java_record_components_wrap = normal +ij_java_repeat_annotations = +ij_java_repeat_synchronized = true +ij_java_replace_instanceof_and_cast = false +ij_java_replace_null_check = true +ij_java_replace_sum_lambda_with_method_ref = true +ij_java_resource_list_new_line_after_left_paren = false +ij_java_resource_list_right_paren_on_new_line = false +ij_java_resource_list_wrap = off +ij_java_rparen_on_new_line_in_annotation = false +ij_java_rparen_on_new_line_in_deconstruction_pattern = true +ij_java_rparen_on_new_line_in_record_header = false +ij_java_servlet_class_prefix = +ij_java_servlet_class_suffix = +ij_java_servlet_dd_prefix = +ij_java_servlet_dd_suffix = +ij_java_session_dd_prefix = +ij_java_session_dd_suffix = EJB +ij_java_session_eb_prefix = +ij_java_session_eb_suffix = Bean +ij_java_session_hi_prefix = +ij_java_session_hi_suffix = Home +ij_java_session_lhi_prefix = Local +ij_java_session_lhi_suffix = Home +ij_java_session_li_prefix = Local +ij_java_session_li_suffix = +ij_java_session_ri_prefix = +ij_java_session_ri_suffix = +ij_java_session_si_prefix = +ij_java_session_si_suffix = Service +ij_java_space_after_closing_angle_bracket_in_type_argument = false +ij_java_space_after_colon = true +ij_java_space_after_comma = true +ij_java_space_after_comma_in_type_arguments = true +ij_java_space_after_for_semicolon = true +ij_java_space_after_quest = true +ij_java_space_after_type_cast = true +ij_java_space_before_annotation_array_initializer_left_brace = false +ij_java_space_before_annotation_parameter_list = false +ij_java_space_before_array_initializer_left_brace = false +ij_java_space_before_catch_keyword = true +ij_java_space_before_catch_left_brace = true +ij_java_space_before_catch_parentheses = true +ij_java_space_before_class_left_brace = true +ij_java_space_before_colon = true +ij_java_space_before_colon_in_foreach = true +ij_java_space_before_comma = false +ij_java_space_before_deconstruction_list = false +ij_java_space_before_do_left_brace = true +ij_java_space_before_else_keyword = true +ij_java_space_before_else_left_brace = true +ij_java_space_before_finally_keyword = true +ij_java_space_before_finally_left_brace = true +ij_java_space_before_for_left_brace = true +ij_java_space_before_for_parentheses = true +ij_java_space_before_for_semicolon = false +ij_java_space_before_if_left_brace = true +ij_java_space_before_if_parentheses = true +ij_java_space_before_method_call_parentheses = false +ij_java_space_before_method_left_brace = true +ij_java_space_before_method_parentheses = false +ij_java_space_before_opening_angle_bracket_in_type_parameter = false +ij_java_space_before_quest = true +ij_java_space_before_switch_left_brace = true +ij_java_space_before_switch_parentheses = true +ij_java_space_before_synchronized_left_brace = true +ij_java_space_before_synchronized_parentheses = true +ij_java_space_before_try_left_brace = true +ij_java_space_before_try_parentheses = true +ij_java_space_before_type_parameter_list = false +ij_java_space_before_while_keyword = true +ij_java_space_before_while_left_brace = true +ij_java_space_before_while_parentheses = true +ij_java_space_inside_one_line_enum_braces = false +ij_java_space_within_empty_array_initializer_braces = false +ij_java_space_within_empty_method_call_parentheses = false +ij_java_space_within_empty_method_parentheses = false +ij_java_spaces_around_additive_operators = true +ij_java_spaces_around_annotation_eq = true +ij_java_spaces_around_assignment_operators = true +ij_java_spaces_around_bitwise_operators = true +ij_java_spaces_around_equality_operators = true +ij_java_spaces_around_lambda_arrow = true +ij_java_spaces_around_logical_operators = true +ij_java_spaces_around_method_ref_dbl_colon = false +ij_java_spaces_around_multiplicative_operators = true +ij_java_spaces_around_relational_operators = true +ij_java_spaces_around_shift_operators = true +ij_java_spaces_around_type_bounds_in_type_parameters = true +ij_java_spaces_around_unary_operator = false +ij_java_spaces_inside_block_braces_when_body_is_present = false +ij_java_spaces_within_angle_brackets = false +ij_java_spaces_within_annotation_parentheses = false +ij_java_spaces_within_array_initializer_braces = false +ij_java_spaces_within_braces = false +ij_java_spaces_within_brackets = false +ij_java_spaces_within_cast_parentheses = false +ij_java_spaces_within_catch_parentheses = false +ij_java_spaces_within_deconstruction_list = false +ij_java_spaces_within_for_parentheses = false +ij_java_spaces_within_if_parentheses = false +ij_java_spaces_within_method_call_parentheses = false +ij_java_spaces_within_method_parentheses = false +ij_java_spaces_within_parentheses = false +ij_java_spaces_within_record_header = false +ij_java_spaces_within_switch_parentheses = false +ij_java_spaces_within_synchronized_parentheses = false +ij_java_spaces_within_try_parentheses = false +ij_java_spaces_within_while_parentheses = false +ij_java_special_else_if_treatment = true +ij_java_static_field_name_prefix = +ij_java_static_field_name_suffix = +ij_java_subclass_name_prefix = +ij_java_subclass_name_suffix = Impl +ij_java_switch_expressions_wrap = normal +ij_java_ternary_operation_signs_on_next_line = false +ij_java_ternary_operation_wrap = off +ij_java_test_name_prefix = +ij_java_test_name_suffix = Test +ij_java_throws_keyword_wrap = off +ij_java_throws_list_wrap = off +ij_java_use_external_annotations = false +ij_java_use_fq_class_names = false +ij_java_use_relative_indents = false +ij_java_use_single_class_imports = true +ij_java_variable_annotation_wrap = off +ij_java_visibility = public +ij_java_while_brace_force = never +ij_java_while_on_new_line = false +ij_java_wrap_comments = false +ij_java_wrap_first_method_in_call_chain = false +ij_java_wrap_long_lines = false +ij_java_wrap_semicolon_after_call_chain = false + +[*.xml] +indent_style = space +indent_size = 4 +tab_width = 4 +max_line_length = 120 + +[*.json] +indent_style = space +indent_size = 2 +tab_width = 2 +max_line_length = 120 + +[*.{yml,yaml}] +indent_style = space +indent_size = 2 +tab_width = 2 +max_line_length = 120 + +[*.md] +max_line_length = 0 +trim_trailing_whitespace = false diff --git a/.github/ISSUE_TEMPLATE/bugs_report.md b/.github/ISSUE_TEMPLATE/bugs_report.md index 0efcb43..1e34b38 100644 --- a/.github/ISSUE_TEMPLATE/bugs_report.md +++ b/.github/ISSUE_TEMPLATE/bugs_report.md @@ -1,37 +1,70 @@ --- -name: 问题提交 -about: 描述问题并提交,帮助我们对其进行检查与修复。 +name: +问题提交 +about: +描述问题并提交,帮助我们对其进行检查与修复。 title: '' -labels: bug +labels: +bug assignees: '' --- -### **问题简述** +### +* +*问题简述 +** 用简短的话语描述一下大概问题。 -### **问题来源** +### +* +*问题来源 +** 描述一下通过哪些操作才发现的问题,如: -1. 使用了 '...' -2. 输入了 '....' -3. 出现了报错 '....' +1. +使用了 '...' +2. +输入了 '....' +3. +出现了报错 '....' -### **预期结果** (可选) +### +* +*预期结果 +** (可选) 如果问题不发生,应该是什么情况 -### **问题截图/问题报错** +### +* +*问题截图/问题报错 +** 如果有报错或输出,请提供截图。 -### **操作环境** +### +* +*操作环境 +** -- 系统环境: `Windows 10` / `Ubuntu` / `...` -- Java版本: `JDK11` / `OPENJDK8` / `JRE8` / `...` +- +系统环境: +`Windows 10` / +`Ubuntu` / +`...` +- +Java版本: +`JDK11` / +`OPENJDK8` / +`JRE8` / +`...` -### **其他补充** +### +* +*其他补充 +** 如有其他补充,可以在这里描述。 diff --git a/.github/ISSUE_TEMPLATE/feature_issues.md b/.github/ISSUE_TEMPLATE/feature_issues.md index 779ae79..281a87e 100644 --- a/.github/ISSUE_TEMPLATE/feature_issues.md +++ b/.github/ISSUE_TEMPLATE/feature_issues.md @@ -1,23 +1,38 @@ --- -name: 功能需求 -about: 希望我们提供更多的功能。 +name: +功能需求 +about: +希望我们提供更多的功能。 title: '' -labels: enhancement +labels: +enhancement assignees: '' --- -### **功能简述** +### +* +*功能简述 +** 简单的描述一下你想要的功能 -### **需求来源** +### +* +*需求来源 +** 简单的描述一下为什么需要这个功能。 -### **功能参考**(可选) +### +* +*功能参考 +**(可选) 如果有相关功能的参考,如文本、截图,请提供给我们。 -### **附加内容** +### +* +*附加内容 +** 如果有什么小细节需要重点注意,请在这里告诉我们。 diff --git a/README.md b/README.md index ce93412..425b067 100644 --- a/README.md +++ b/README.md @@ -8,46 +8,167 @@ ![CodeSize](https://img.shields.io/github/languages/code-size/CarmJos/configured) ![](https://visitor-badge.glitch.me/badge?page_id=configured.readme) -README LANGUAGES [ [**English**](README.md) | [中文](README_CN.md) ] +README +LANGUAGES [ [ +* +*English +**](README.md) | [中文](README_CN.md) ] -# configured _(config framework)_ +# configured +_( +config +framework)_ logo -_**"Once set, Simple get."**_ +_ +* +*" +Once +set, +Simple +get." +**_ -A simple, easy-to-use and universal solution for managing, loading, reading, -and updating configuration files. +A +simple, +easy-to-use +and +universal +solution +for +managing, +loading, +reading, +and +updating +configuration +files. -Supported **JSON**, **YAML**, **Hocon**, **TOML**, **SQL**, **MongoDB**... and much more! +Supported +* +*JSON +**, +* +*YAML +**, +* +*Hocon +**, +* +*TOML +**, +* +*SQL +**, +* +*MongoDB +**... +and +much +more! ## Features & Advantages -Supported [YAML](impl/yaml), [JSON](impl/json), [HOCON](impl/hocon) and [SQL](impl/sql) based configuration files +Supported [YAML](providers/yaml), [JSON](providers/json), [HOCON](providers/hocon) +and [SQL](providers/sql) +based +configuration +files format. -- Class-based mechanism for initializing, loading, retrieving, and updating configuration files, ensuring convenience - and efficiency. -- Supports manual serialization and deserialization of complex configurations. -- Offers multiple builder forms for rapid construction of `ConfigValue` objects. -- Enables specification of configuration paths, comments, and more via annotations. +- +Class-based +mechanism +for +initializing, +loading, +retrieving, +and +updating +configuration +files, +ensuring +convenience +and +efficiency. +- +Supports +manual +serialization +and +deserialization +of +complex +configurations. +- +Offers +multiple +builder +forms +for +rapid +construction +of +`ConfigValue` +objects. +- +Enables +specification +of +configuration +paths, +comments, +and +more +via +annotations. ## Development -For the latest JavaDoc release, [CLICK HERE](https://CarmJos.github.io/configured). +For +the +latest +JavaDoc +release, [CLICK HERE](https://CarmJos.github.io/configured). -For a detailed development guide, [CLICK HERE](.doc/README.md). +For +a +detailed +development +guide, [CLICK HERE](.doc/README.md). ### Preview -To quickly demonstrate the applicability of the project, here are a few practical demonstrations: +To +quickly +demonstrate +the +applicability +of +the +project, +here +are +a +few +practical +demonstrations: - [Database configuration.](demo/src/main/java/cc/carm/lib/configuration/demo/DatabaseConfiguration.java) -- [Demonstration of all types of configuration instance classes.](demo/src/main/java/cc/carm/lib/configuration/demo/tests/conf/DemoConfiguration.java) +- [Demonstration of configuration instance classes.](demo/src/main/java/cc/carm/lib/configuration/demo/tests/conf/DemoConfiguration.java) -Check out all code demonstrations [HERE](demo/src/main/java/cc/carm/lib/configuration/demo/DatabaseConfiguration.java). -For more examples, see the [Development Guide](.doc/README.md). +Check +out +all +code +demonstrations [HERE](demo/src/main/java/cc/carm/lib/configuration/demo/DatabaseConfiguration.java). +For +more +examples, +see +the [Development Guide](.doc/README.md). ```java @@ -240,30 +361,104 @@ dependencies { ## Derived Projects -### [**MineConfiguration**](https://github.com/CarmJos/MineConfiguration) (by @CarmJos) +### [ +* +*MineConfiguration +**](https://github.com/CarmJos/MineConfiguration) (by @CarmJos) -configured for MineCraft! -Easily manage configurations on MineCraft-related server platforms. +configured +for +MineCraft! +Easily +manage +configurations +on +MineCraft-related +server +platforms. -Currently, it supports BungeeCord, Velocity, Bukkit (Spigot) servers, -with more platforms to be supported soon. +Currently, +it +supports +BungeeCord, +Velocity, +Bukkit ( +Spigot) +servers, +with +more +platforms +to +be +supported +soon. ## Support and Donation -If you appreciate this plugin, consider supporting me with a donation! +If +you +appreciate +this +plugin, +consider +supporting +me +with +a +donation! -Thank you for supporting open-source projects! +Thank +you +for +supporting +open-source +projects! -Many thanks to Jetbrains for kindly providing a license for us to work on this and other open-source projects. +Many +thanks +to +Jetbrains +for +kindly +providing +a +license +for +us +to +work +on +this +and +other +open-source +projects. [![](https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.svg)](https://www.jetbrains.com/?from=https://github.com/CarmJos/configured) -Many thanks to [ArtformGames](https://github.com/ArtformGames) for their -strong support and active contribution to this project! +Many +thanks +to [ArtformGames](https://github.com/ArtformGames) +for +their +strong +support +and +active +contribution +to +this +project! ArtformGames ## Open Source License -This project's source code is licensed under +This +project's +source +code +is +licensed +under the [GNU LESSER GENERAL PUBLIC LICENSE](https://www.gnu.org/licenses/lgpl-3.0.html). diff --git a/README_CN.md b/README_CN.md index 704dc09..b9fbac7 100644 --- a/README_CN.md +++ b/README_CN.md @@ -8,30 +8,48 @@ ![CodeSize](https://img.shields.io/github/languages/code-size/CarmJos/configured) ![](https://visitor-badge.glitch.me/badge?page_id=configured.readme) -README LANGUAGES [ [English](README.md) | [**中文**](README_CN.md) ] +README +LANGUAGES [ [English](README.md) | [ +* +*中文 +**](README_CN.md) ] -# configured _(配置文件框架)_ +# configured +_( +配置文件框架)_ logo -**一次配置,轻松读取!** +* +*一次配置,轻松读取! +** 一款简单便捷的通用配置文件加载、读取与更新工具,可自定义配置的格式。 ## 特性 & 优势 -支持 [YAML](providers/yaml), [JSON](providers/gson), [HOCON](providers/hocon) 和 [SQL](providers/sql) 等多种配置文件格式。 +支持 [YAML](providers/yaml), [JSON](providers/gson), [HOCON](providers/hocon) +和 [SQL](providers/sql) +等多种配置文件格式。 -- 基于类的配置文件初始化、加载、获取与更新机制,方便快捷。 -- 支持复杂配置的手动序列化、反序列化。 -- 提供多种builder形式,快速构建 `ConfigValue` 对象。 -- 支持通过注解规定配置对应的路径、注释等信息。 +- +基于类的配置文件初始化、加载、获取与更新机制,方便快捷。 +- +支持复杂配置的手动序列化、反序列化。 +- +提供多种builder形式,快速构建 +`ConfigValue` +对象。 +- +支持通过注解规定配置对应的路径、注释等信息。 ## 开发 -详细开发介绍请 [点击这里](.doc/README.md) , JavaDoc(最新Release) +详细开发介绍请 [点击这里](.doc/README.md) , +JavaDoc( +最新Release) 请 [点击这里](https://CarmJos.github.io/configured) 。 ### 示例代码 @@ -260,12 +278,25 @@ dependencies { ## 衍生项目 -### [**MineConfiguration**](https://github.com/CarmJos/MineConfiguration) (by @CarmJos ) +### [ +* +*MineConfiguration +**](https://github.com/CarmJos/MineConfiguration) (by @CarmJos ) -configured for MineCraft! -开始在 MineCraft 相关服务器平台上轻松(做)配置吧! +configured +for +MineCraft! +开始在 +MineCraft +相关服务器平台上轻松( +做) +配置吧! -目前支持 BungeeCord, Bukkit(Spigot) 服务端,后续将支持更多平台。 +目前支持 +BungeeCord, +Bukkit( +Spigot) +服务端,后续将支持更多平台。 ## 支持与捐赠 @@ -273,14 +304,18 @@ configured for MineCraft! 感谢您对开源项目的支持! -万分感谢 Jetbrains 为我们提供了从事此项目和其他开源项目的许可! +万分感谢 +Jetbrains +为我们提供了从事此项目和其他开源项目的许可! [![](https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.svg)](https://www.jetbrains.com/?from=https://github.com/CarmJos/configured) -万分感谢来自 [ArtformGames](https://github.com/ArtformGames) 对本项目的大力支持与积极贡献! +万分感谢来自 [ArtformGames](https://github.com/ArtformGames) +对本项目的大力支持与积极贡献! ArtformGames ## 开源协议 -本项目源码采用 [GNU LESSER GENERAL PUBLIC LICENSE](https://www.gnu.org/licenses/lgpl-3.0.html) 开源协议。 +本项目源码采用 [GNU LESSER GENERAL PUBLIC LICENSE](https://www.gnu.org/licenses/lgpl-3.0.html) +开源协议。 diff --git a/core/pom.xml b/core/pom.xml index 82f7406..1acf913 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -39,4 +39,4 @@ - \ No newline at end of file + diff --git a/core/src/main/java/cc/carm/lib/configuration/Configuration.java b/core/src/main/java/cc/carm/lib/configuration/Configuration.java index 26a52a1..b027aef 100644 --- a/core/src/main/java/cc/carm/lib/configuration/Configuration.java +++ b/core/src/main/java/cc/carm/lib/configuration/Configuration.java @@ -4,4 +4,5 @@ package cc.carm.lib.configuration; * The root interface of the configuration file interfaces, * which is used to label a class as a configuration. */ -public interface Configuration { } \ No newline at end of file +public interface Configuration { +} diff --git a/core/src/main/java/cc/carm/lib/configuration/adapter/ValueAdapter.java b/core/src/main/java/cc/carm/lib/configuration/adapter/ValueAdapter.java index 3721c6a..e5ccbda 100644 --- a/core/src/main/java/cc/carm/lib/configuration/adapter/ValueAdapter.java +++ b/core/src/main/java/cc/carm/lib/configuration/adapter/ValueAdapter.java @@ -12,7 +12,7 @@ import java.util.Objects; * @param The type of the target value */ public class ValueAdapter - implements ValueSerializer, ValueParser { + implements ValueSerializer, ValueParser { protected final @NotNull ValueType type; @@ -55,9 +55,9 @@ public class ValueAdapter @Override public @Nullable Object serialize( - @NotNull ConfigurationHolder holder, - @NotNull ValueType type, - @NotNull TYPE value + @NotNull ConfigurationHolder holder, + @NotNull ValueType type, + @NotNull TYPE value ) throws Exception { if (serializer == null) throw new UnsupportedOperationException("Serializer is not supported"); return serializer.serialize(holder, type, value); @@ -65,9 +65,9 @@ public class ValueAdapter @Override public @Nullable TYPE parse( - @NotNull ConfigurationHolder holder, - @NotNull ValueType type, - @NotNull Object value + @NotNull ConfigurationHolder holder, + @NotNull ValueType type, + @NotNull Object value ) throws Exception { if (deserializer == null) throw new UnsupportedOperationException("Deserializer is not supported"); return deserializer.parse(holder, type, value); diff --git a/core/src/main/java/cc/carm/lib/configuration/adapter/ValueAdapterRegistry.java b/core/src/main/java/cc/carm/lib/configuration/adapter/ValueAdapterRegistry.java index c7b5bb5..2a833c3 100644 --- a/core/src/main/java/cc/carm/lib/configuration/adapter/ValueAdapterRegistry.java +++ b/core/src/main/java/cc/carm/lib/configuration/adapter/ValueAdapterRegistry.java @@ -25,8 +25,8 @@ public class ValueAdapterRegistry { ValueAdapter fromAdapter = adapterOf(from); if (fromAdapter == null) throw new IllegalArgumentException("No adapter for type " + from); register(to, - serializer == null ? null : (provider, type, value) -> fromAdapter.serialize(provider, from, serializer.handle(value)), - parser == null ? null : (provider, type, data) -> parser.handle(fromAdapter.parse(provider, from, data)) + serializer == null ? null : (provider, type, value) -> fromAdapter.serialize(provider, from, serializer.handle(value)), + parser == null ? null : (provider, type, data) -> parser.handle(fromAdapter.parse(provider, from, data)) ); } @@ -84,14 +84,14 @@ public class ValueAdapterRegistry { @SuppressWarnings("unchecked") public @Nullable ValueAdapter adapterOf(@NotNull ValueType type) { ValueAdapter matched = adapters.stream() - .filter(adapter -> adapter.type().equals(type)) - .findFirst().orElse(null); + .filter(adapter -> adapter.type().equals(type)) + .findFirst().orElse(null); if (matched != null) return (ValueAdapter) matched; // If no adapter found, try to find the adapter for the super type return (ValueAdapter) adapters.stream() - .filter(adapter -> adapter.type().isSubtypeOf(type)) - .findFirst().orElse(null); + .filter(adapter -> adapter.type().isSubtypeOf(type)) + .findFirst().orElse(null); } public ValueAdapter adapterOf(@NotNull T value) { diff --git a/core/src/main/java/cc/carm/lib/configuration/adapter/ValueParser.java b/core/src/main/java/cc/carm/lib/configuration/adapter/ValueParser.java index 271c00c..3a2ea78 100644 --- a/core/src/main/java/cc/carm/lib/configuration/adapter/ValueParser.java +++ b/core/src/main/java/cc/carm/lib/configuration/adapter/ValueParser.java @@ -13,8 +13,8 @@ import org.jetbrains.annotations.Nullable; public interface ValueParser { @Nullable TYPE parse( - @NotNull ConfigurationHolder holder, - @NotNull ValueType type, @NotNull Object data + @NotNull ConfigurationHolder holder, + @NotNull ValueType type, @NotNull Object data ) throws Exception; } diff --git a/core/src/main/java/cc/carm/lib/configuration/adapter/ValueSerializer.java b/core/src/main/java/cc/carm/lib/configuration/adapter/ValueSerializer.java index 5243e7f..8b40fdf 100644 --- a/core/src/main/java/cc/carm/lib/configuration/adapter/ValueSerializer.java +++ b/core/src/main/java/cc/carm/lib/configuration/adapter/ValueSerializer.java @@ -13,8 +13,8 @@ import org.jetbrains.annotations.Nullable; public interface ValueSerializer { @Nullable Object serialize( - @NotNull ConfigurationHolder holder, - @NotNull ValueType type, @NotNull TYPE value + @NotNull ConfigurationHolder holder, + @NotNull ValueType type, @NotNull TYPE value ) throws Exception; } diff --git a/core/src/main/java/cc/carm/lib/configuration/adapter/ValueType.java b/core/src/main/java/cc/carm/lib/configuration/adapter/ValueType.java index d6a9209..6a97c38 100644 --- a/core/src/main/java/cc/carm/lib/configuration/adapter/ValueType.java +++ b/core/src/main/java/cc/carm/lib/configuration/adapter/ValueType.java @@ -31,8 +31,8 @@ public abstract class ValueType { public static final ValueType CHAR_TYPE = ofPrimitiveType(char.class); public static final ValueType[] PRIMITIVE_TYPES = { - STRING, INTEGER, LONG, DOUBLE, FLOAT, BOOLEAN, BYTE, SHORT, CHAR, - INTEGER_TYPE, LONG_TYPE, DOUBLE_TYPE, FLOAT_TYPE, BOOLEAN_TYPE, BYTE_TYPE, SHORT_TYPE, CHAR_TYPE + STRING, INTEGER, LONG, DOUBLE, FLOAT, BOOLEAN, BYTE, SHORT, CHAR, + INTEGER_TYPE, LONG_TYPE, DOUBLE_TYPE, FLOAT_TYPE, BOOLEAN_TYPE, BYTE_TYPE, SHORT_TYPE, CHAR_TYPE }; @SuppressWarnings("unchecked") diff --git a/core/src/main/java/cc/carm/lib/configuration/adapter/strandard/PrimitiveAdapter.java b/core/src/main/java/cc/carm/lib/configuration/adapter/strandard/PrimitiveAdapter.java index f0c32a7..367de1b 100644 --- a/core/src/main/java/cc/carm/lib/configuration/adapter/strandard/PrimitiveAdapter.java +++ b/core/src/main/java/cc/carm/lib/configuration/adapter/strandard/PrimitiveAdapter.java @@ -11,11 +11,11 @@ import java.util.Arrays; public class PrimitiveAdapter extends ValueAdapter { public static final String[] TRUE_VALUES = new String[]{ - "true", "yes", "on", "1", "enabled", "enable", "active" + "true", "yes", "on", "1", "enabled", "enable", "active" }; public static final String[] FALSE_VALUES = new String[]{ - "false", "no", "off", "0", "disabled", "disable", "inactive" + "false", "no", "off", "0", "disabled", "disable", "inactive" }; @SuppressWarnings({"unchecked", "rawtypes"}) diff --git a/core/src/main/java/cc/carm/lib/configuration/adapter/strandard/StandardAdapters.java b/core/src/main/java/cc/carm/lib/configuration/adapter/strandard/StandardAdapters.java index 473e444..16838e8 100644 --- a/core/src/main/java/cc/carm/lib/configuration/adapter/strandard/StandardAdapters.java +++ b/core/src/main/java/cc/carm/lib/configuration/adapter/strandard/StandardAdapters.java @@ -12,27 +12,27 @@ import static cc.carm.lib.configuration.adapter.strandard.PrimitiveAdapter.*; public interface StandardAdapters { @NotNull PrimitiveAdapter[] PRIMITIVES = new PrimitiveAdapter[]{ - ofString(), ofBoolean(), ofBooleanType(), ofCharacter(), ofCharacterType(), - ofInteger(), ofIntegerType(), ofLong(), ofLongType(), ofDouble(), ofDoubleType(), - ofFloat(), ofFloatType(), ofShort(), ofShortType(), ofByte(), ofByteType() + ofString(), ofBoolean(), ofBooleanType(), ofCharacter(), ofCharacterType(), + ofInteger(), ofIntegerType(), ofLong(), ofLongType(), ofDouble(), ofDoubleType(), + ofFloat(), ofFloatType(), ofShort(), ofShortType(), ofByte(), ofByteType() }; @NotNull ValueAdapter> ENUMS = PrimitiveAdapter.ofEnum(); @NotNull ValueAdapter UUID = new ValueAdapter<>( - ValueType.of(UUID.class), - (provider, type, value) -> value.toString(), - (provider, type, value) -> java.util.UUID.fromString(value.toString()) + ValueType.of(UUID.class), + (provider, type, value) -> value.toString(), + (provider, type, value) -> java.util.UUID.fromString(value.toString()) ); @NotNull ValueAdapter SECTIONS = new ValueAdapter<>( - ValueType.of(ConfigureSection.class), - (provider, type, value) -> value, - (provider, type, value) -> { - if (value instanceof ConfigureSection) { - return (ConfigureSection) value; - } else throw new IllegalArgumentException("Value is not a ConfigurationSection"); - } + ValueType.of(ConfigureSection.class), + (provider, type, value) -> value, + (provider, type, value) -> { + if (value instanceof ConfigureSection) { + return (ConfigureSection) value; + } else throw new IllegalArgumentException("Value is not a ConfigurationSection"); + } ); } diff --git a/core/src/main/java/cc/carm/lib/configuration/builder/AbstractConfigBuilder.java b/core/src/main/java/cc/carm/lib/configuration/builder/AbstractConfigBuilder.java index f1ee8f1..d8f4462 100644 --- a/core/src/main/java/cc/carm/lib/configuration/builder/AbstractConfigBuilder.java +++ b/core/src/main/java/cc/carm/lib/configuration/builder/AbstractConfigBuilder.java @@ -19,9 +19,9 @@ import java.util.function.Supplier; @NotNullByDefault public abstract class AbstractConfigBuilder< - TYPE, UNIT, RESULT extends ConfigValue, HOLDER extends ConfigurationHolder, - SELF extends AbstractConfigBuilder - > { + TYPE, UNIT, RESULT extends ConfigValue, HOLDER extends ConfigurationHolder, + SELF extends AbstractConfigBuilder + > { protected final Class providerClass; protected final ValueType type; @@ -156,8 +156,8 @@ public abstract class AbstractConfigBuilder< protected @NotNull ValueManifest buildManifest() { return new ValueManifest<>( - type(), this.defaultValueSupplier, this.valueValidator, - this.initializer, this.holder, this.path + type(), this.defaultValueSupplier, this.valueValidator, + this.initializer, this.holder, this.path ); } diff --git a/core/src/main/java/cc/carm/lib/configuration/builder/CommonConfigBuilder.java b/core/src/main/java/cc/carm/lib/configuration/builder/CommonConfigBuilder.java index 256334a..7884e68 100644 --- a/core/src/main/java/cc/carm/lib/configuration/builder/CommonConfigBuilder.java +++ b/core/src/main/java/cc/carm/lib/configuration/builder/CommonConfigBuilder.java @@ -5,10 +5,10 @@ import cc.carm.lib.configuration.source.ConfigurationHolder; import cc.carm.lib.configuration.value.ConfigValue; public abstract class CommonConfigBuilder< - TYPE, UNIT, - RESULT extends ConfigValue, - SELF extends CommonConfigBuilder - > extends AbstractConfigBuilder, SELF> { + TYPE, UNIT, + RESULT extends ConfigValue, + SELF extends CommonConfigBuilder + > extends AbstractConfigBuilder, SELF> { protected CommonConfigBuilder(ValueType type) { super(ConfigurationHolder.class, type); diff --git a/core/src/main/java/cc/carm/lib/configuration/builder/impl/AbstractSectionBuilder.java b/core/src/main/java/cc/carm/lib/configuration/builder/impl/AbstractSectionBuilder.java index 93e6897..75b7ecf 100644 --- a/core/src/main/java/cc/carm/lib/configuration/builder/impl/AbstractSectionBuilder.java +++ b/core/src/main/java/cc/carm/lib/configuration/builder/impl/AbstractSectionBuilder.java @@ -14,10 +14,10 @@ import java.util.LinkedHashMap; import java.util.Map; public abstract class AbstractSectionBuilder< - TYPE, UNIT, - RESULT extends ConfigValue, - SELF extends AbstractSectionBuilder - > extends CommonConfigBuilder { + TYPE, UNIT, + RESULT extends ConfigValue, + SELF extends AbstractSectionBuilder + > extends CommonConfigBuilder { protected final @NotNull ValueType paramType; @@ -62,15 +62,15 @@ public abstract class AbstractSectionBuilder< protected ValueAdapter buildAdapter() { return new ValueAdapter<>(this.paramType) - .parser((p, type, data) -> { - ConfigureSection section = p.deserialize(ConfigureSection.class, data); - if (section == null) return null; - return this.parser.handle(p, section); - }) - .serializer((p, type, data) -> { - Map map = this.serializer.handle(p, data); - return map == null || map.isEmpty() ? null : map; - }); + .parser((p, type, data) -> { + ConfigureSection section = p.deserialize(ConfigureSection.class, data); + if (section == null) return null; + return this.parser.handle(p, section); + }) + .serializer((p, type, data) -> { + Map map = this.serializer.handle(p, data); + return map == null || map.isEmpty() ? null : map; + }); } } diff --git a/core/src/main/java/cc/carm/lib/configuration/builder/impl/AbstractSourceBuilder.java b/core/src/main/java/cc/carm/lib/configuration/builder/impl/AbstractSourceBuilder.java index d7cc247..d1b83f2 100644 --- a/core/src/main/java/cc/carm/lib/configuration/builder/impl/AbstractSourceBuilder.java +++ b/core/src/main/java/cc/carm/lib/configuration/builder/impl/AbstractSourceBuilder.java @@ -9,9 +9,9 @@ import cc.carm.lib.configuration.value.ConfigValue; import org.jetbrains.annotations.NotNull; public abstract class AbstractSourceBuilder< - V, SOURCE, UNIT, RESULT extends ConfigValue, - SELF extends AbstractSourceBuilder - > extends CommonConfigBuilder { + V, SOURCE, UNIT, RESULT extends ConfigValue, + SELF extends AbstractSourceBuilder + > extends CommonConfigBuilder { protected final @NotNull ValueType sourceType; protected final @NotNull ValueType paramType; @@ -49,14 +49,14 @@ public abstract class AbstractSourceBuilder< protected ValueAdapter buildAdapter() { return new ValueAdapter<>(this.paramType) - .parser((holder, type, data) -> { - SOURCE source = holder.deserialize(this.sourceType, data); - return this.valueParser.handle(holder, source); - }) - .serializer((holder, type, data) -> { - SOURCE source = this.valueSerializer.handle(holder, data); - return holder.serialize(source); - }); + .parser((holder, type, data) -> { + SOURCE source = holder.deserialize(this.sourceType, data); + return this.valueParser.handle(holder, source); + }) + .serializer((holder, type, data) -> { + SOURCE source = this.valueSerializer.handle(holder, data); + return holder.serialize(source); + }); } diff --git a/core/src/main/java/cc/carm/lib/configuration/builder/list/ConfigListBuilder.java b/core/src/main/java/cc/carm/lib/configuration/builder/list/ConfigListBuilder.java index f4748ac..5448fde 100644 --- a/core/src/main/java/cc/carm/lib/configuration/builder/list/ConfigListBuilder.java +++ b/core/src/main/java/cc/carm/lib/configuration/builder/list/ConfigListBuilder.java @@ -20,23 +20,23 @@ public class ConfigListBuilder { public @NotNull SourceListBuilder from(@NotNull ValueType sourceType) { return new SourceListBuilder<>( - ArrayList::new, sourceType, type, - ValueHandler.required(type), - ValueHandler.required(sourceType) + ArrayList::new, sourceType, type, + ValueHandler.required(type), + ValueHandler.required(sourceType) ); } public @NotNull SourceListBuilder fromString() { return new SourceListBuilder<>( - ArrayList::new, ValueType.STRING, type, - ValueHandler.required(type), ValueHandler.stringValue() + ArrayList::new, ValueType.STRING, type, + ValueHandler.required(type), ValueHandler.stringValue() ); } public @NotNull SectionListBuilder fromSection() { return new SectionListBuilder<>( - ArrayList::new, type, - ValueHandler.required(type), ValueHandler.required() + ArrayList::new, type, + ValueHandler.required(type), ValueHandler.required() ); } diff --git a/core/src/main/java/cc/carm/lib/configuration/builder/list/SectionListBuilder.java b/core/src/main/java/cc/carm/lib/configuration/builder/list/SectionListBuilder.java index 4532552..77b665d 100644 --- a/core/src/main/java/cc/carm/lib/configuration/builder/list/SectionListBuilder.java +++ b/core/src/main/java/cc/carm/lib/configuration/builder/list/SectionListBuilder.java @@ -12,7 +12,7 @@ import java.util.function.Consumer; import java.util.function.Supplier; public class SectionListBuilder - extends AbstractSectionBuilder, V, ConfiguredList, SectionListBuilder> { + extends AbstractSectionBuilder, V, ConfiguredList, SectionListBuilder> { protected @NotNull Supplier> constructor; diff --git a/core/src/main/java/cc/carm/lib/configuration/builder/list/SourceListBuilder.java b/core/src/main/java/cc/carm/lib/configuration/builder/list/SourceListBuilder.java index 09150b4..34a0b8b 100644 --- a/core/src/main/java/cc/carm/lib/configuration/builder/list/SourceListBuilder.java +++ b/core/src/main/java/cc/carm/lib/configuration/builder/list/SourceListBuilder.java @@ -14,7 +14,7 @@ import java.util.function.Consumer; import java.util.function.Supplier; public class SourceListBuilder - extends AbstractSourceBuilder, SOURCE, V, ConfiguredList, SourceListBuilder> { + extends AbstractSourceBuilder, SOURCE, V, ConfiguredList, SourceListBuilder> { protected @NotNull Supplier> constructor; diff --git a/core/src/main/java/cc/carm/lib/configuration/builder/map/ConfigMapBuilder.java b/core/src/main/java/cc/carm/lib/configuration/builder/map/ConfigMapBuilder.java index 371e537..1adb864 100644 --- a/core/src/main/java/cc/carm/lib/configuration/builder/map/ConfigMapBuilder.java +++ b/core/src/main/java/cc/carm/lib/configuration/builder/map/ConfigMapBuilder.java @@ -32,9 +32,9 @@ public class ConfigMapBuilder, K, V> { public @NotNull SourceMapBuilder from(@NotNull ValueType sourceType) { return from( - sourceType, - ValueHandler.required(keyType), ValueHandler.stringValue(), - ValueHandler.required(valueType), ValueHandler.required() + sourceType, + ValueHandler.required(keyType), ValueHandler.stringValue(), + ValueHandler.required(valueType), ValueHandler.required() ); } @@ -44,35 +44,35 @@ public class ConfigMapBuilder, K, V> { @NotNull ValueHandler valueParser, @NotNull ValueHandler valueSerializer) { return new SourceMapBuilder<>( - this.constructor, sourceType, keyType, valueType, - keyParser, keySerializer, valueParser, valueSerializer + this.constructor, sourceType, keyType, valueType, + keyParser, keySerializer, valueParser, valueSerializer ); } public @NotNull SourceMapBuilder fromString() { return from( - ValueType.STRING, - ValueHandler.required(keyType), ValueHandler.stringValue(), - ValueHandler.required(valueType), ValueHandler.stringValue() + ValueType.STRING, + ValueHandler.required(keyType), ValueHandler.stringValue(), + ValueHandler.required(valueType), ValueHandler.stringValue() ); } public @NotNull SectionMapBuilder fromSection() { return fromSection( - ValueHandler.required(keyType), ValueHandler.stringValue(), - ValueHandler.required(valueType), ValueHandler.required() + ValueHandler.required(keyType), ValueHandler.stringValue(), + ValueHandler.required(valueType), ValueHandler.required() ); } public @NotNull SectionMapBuilder fromSection( - @NotNull ValueHandler keyParser, - @NotNull ValueHandler keySerializer, - @NotNull ValueHandler valueParser, - @NotNull ValueHandler> valueSerializer + @NotNull ValueHandler keyParser, + @NotNull ValueHandler keySerializer, + @NotNull ValueHandler valueParser, + @NotNull ValueHandler> valueSerializer ) { return new SectionMapBuilder<>( - this.constructor, keyType, valueType, - keyParser, keySerializer, valueParser, valueSerializer + this.constructor, keyType, valueType, + keyParser, keySerializer, valueParser, valueSerializer ); } diff --git a/core/src/main/java/cc/carm/lib/configuration/builder/map/SectionMapBuilder.java b/core/src/main/java/cc/carm/lib/configuration/builder/map/SectionMapBuilder.java index 20d8702..16761bd 100644 --- a/core/src/main/java/cc/carm/lib/configuration/builder/map/SectionMapBuilder.java +++ b/core/src/main/java/cc/carm/lib/configuration/builder/map/SectionMapBuilder.java @@ -14,7 +14,7 @@ import java.util.function.Consumer; import java.util.function.Supplier; public class SectionMapBuilder, K, V> - extends AbstractSectionBuilder, V, ConfiguredMap, SectionMapBuilder> { + extends AbstractSectionBuilder, V, ConfiguredMap, SectionMapBuilder> { protected final @NotNull ValueType keyType; @@ -78,14 +78,14 @@ public class SectionMapBuilder, K, V> public @NotNull ValueAdapter buildKeyAdapter() { return new ValueAdapter<>(this.keyType) - .parser((holder, type, data) -> { - String source = holder.deserialize(String.class, data); - return this.keyParser.handle(holder, source); - }) - .serializer((holder, type, data) -> { - String source = this.keySerializer.handle(holder, data); - return holder.serialize(source); - }); + .parser((holder, type, data) -> { + String source = holder.deserialize(String.class, data); + return this.keyParser.handle(holder, source); + }) + .serializer((holder, type, data) -> { + String source = this.keySerializer.handle(holder, data); + return holder.serialize(source); + }); } @Override diff --git a/core/src/main/java/cc/carm/lib/configuration/builder/map/SourceMapBuilder.java b/core/src/main/java/cc/carm/lib/configuration/builder/map/SourceMapBuilder.java index 61de57d..260d69c 100644 --- a/core/src/main/java/cc/carm/lib/configuration/builder/map/SourceMapBuilder.java +++ b/core/src/main/java/cc/carm/lib/configuration/builder/map/SourceMapBuilder.java @@ -13,7 +13,7 @@ import java.util.function.Consumer; import java.util.function.Supplier; public class SourceMapBuilder, SOURCE, K, V> - extends AbstractSourceBuilder, SOURCE, V, ConfiguredMap, SourceMapBuilder> { + extends AbstractSourceBuilder, SOURCE, V, ConfiguredMap, SourceMapBuilder> { protected final @NotNull ValueType keyType; @@ -74,14 +74,14 @@ public class SourceMapBuilder, SOURCE, K, V> public @NotNull ValueAdapter buildKeyAdapter() { return new ValueAdapter<>(this.keyType) - .parser((holder, type, data) -> { - String source = holder.deserialize(String.class, data); - return this.keyParser.handle(holder, source); - }) - .serializer((holder, type, data) -> { - String source = this.keySerializer.handle(holder, data); - return holder.serialize(source); - }); + .parser((holder, type, data) -> { + String source = holder.deserialize(String.class, data); + return this.keyParser.handle(holder, source); + }) + .serializer((holder, type, data) -> { + String source = this.keySerializer.handle(holder, data); + return holder.serialize(source); + }); } @Override diff --git a/core/src/main/java/cc/carm/lib/configuration/builder/value/ConfigValueBuilder.java b/core/src/main/java/cc/carm/lib/configuration/builder/value/ConfigValueBuilder.java index e3753b0..7d9d56e 100644 --- a/core/src/main/java/cc/carm/lib/configuration/builder/value/ConfigValueBuilder.java +++ b/core/src/main/java/cc/carm/lib/configuration/builder/value/ConfigValueBuilder.java @@ -38,8 +38,8 @@ public class ConfigValueBuilder { } public @NotNull SectionValueBuilder fromSection( - @NotNull ValueHandler valueParser, - @NotNull ValueHandler> valueSerializer + @NotNull ValueHandler valueParser, + @NotNull ValueHandler> valueSerializer ) { return new SectionValueBuilder<>(this.type, valueParser, valueSerializer); } diff --git a/core/src/main/java/cc/carm/lib/configuration/builder/value/SourceValueBuilder.java b/core/src/main/java/cc/carm/lib/configuration/builder/value/SourceValueBuilder.java index f14fcf2..aadb891 100644 --- a/core/src/main/java/cc/carm/lib/configuration/builder/value/SourceValueBuilder.java +++ b/core/src/main/java/cc/carm/lib/configuration/builder/value/SourceValueBuilder.java @@ -7,7 +7,7 @@ import cc.carm.lib.configuration.value.standard.ConfiguredValue; import org.jetbrains.annotations.NotNull; public class SourceValueBuilder - extends AbstractSourceBuilder, SourceValueBuilder> { + extends AbstractSourceBuilder, SourceValueBuilder> { public SourceValueBuilder(@NotNull ValueType sourceType, @NotNull ValueType valueType, diff --git a/core/src/main/java/cc/carm/lib/configuration/source/ConfigurationFactory.java b/core/src/main/java/cc/carm/lib/configuration/source/ConfigurationFactory.java index bf8c6a5..eac1867 100644 --- a/core/src/main/java/cc/carm/lib/configuration/source/ConfigurationFactory.java +++ b/core/src/main/java/cc/carm/lib/configuration/source/ConfigurationFactory.java @@ -30,10 +30,10 @@ import java.util.function.Supplier; * @param Self builder, for further implement support. */ public abstract class ConfigurationFactory< - SOURCE extends ConfigureSource, - HOLDER extends ConfigurationHolder, - SELF - > { + SOURCE extends ConfigureSource, + HOLDER extends ConfigurationHolder, + SELF + > { protected @NotNull ValueAdapterRegistry adapters = new ValueAdapterRegistry(); protected @NotNull ConfigurationOptionHolder options = new ConfigurationOptionHolder(); diff --git a/core/src/main/java/cc/carm/lib/configuration/source/loader/PathGenerator.java b/core/src/main/java/cc/carm/lib/configuration/source/loader/PathGenerator.java index 33595d7..aa67625 100644 --- a/core/src/main/java/cc/carm/lib/configuration/source/loader/PathGenerator.java +++ b/core/src/main/java/cc/carm/lib/configuration/source/loader/PathGenerator.java @@ -100,21 +100,21 @@ public class PathGenerator { */ public static String covertPathName(String name) { return name - // Replace all uppercase letters with dashes - .replaceAll("[A-Z]", "=$0") - // If the first letter is also capitalized, - // it will also be converted and the first dash will need to be removed - .replaceAll("^=(.*)$", "$1") - // Because the name may contain _, it needs to be treated a little differently - .replaceAll("_=([A-Z])", "_$1") - // The content that is not named in all caps is then converted - .replaceAll("([a-z])=([A-Z])", "$1_$2") - // Remove any extra horizontal lines - .replace("=", "") - // Replace the underscore with a dash - .replace("_", "-") - // Finally, convert it to all lowercase - .toLowerCase(); + // Replace all uppercase letters with dashes + .replaceAll("[A-Z]", "=$0") + // If the first letter is also capitalized, + // it will also be converted and the first dash will need to be removed + .replaceAll("^=(.*)$", "$1") + // Because the name may contain _, it needs to be treated a little differently + .replaceAll("_=([A-Z])", "_$1") + // The content that is not named in all caps is then converted + .replaceAll("([a-z])=([A-Z])", "$1_$2") + // Remove any extra horizontal lines + .replace("=", "") + // Replace the underscore with a dash + .replace("_", "-") + // Finally, convert it to all lowercase + .toLowerCase(); } diff --git a/core/src/main/java/cc/carm/lib/configuration/source/section/ConfigureSection.java b/core/src/main/java/cc/carm/lib/configuration/source/section/ConfigureSection.java index d9cb256..fddc252 100644 --- a/core/src/main/java/cc/carm/lib/configuration/source/section/ConfigureSection.java +++ b/core/src/main/java/cc/carm/lib/configuration/source/section/ConfigureSection.java @@ -901,9 +901,9 @@ public interface ConfigureSection { } static > @NotNull C parseCollection( - @Nullable List data, - @NotNull Supplier constructor, - @NotNull DataFunction parser + @Nullable List data, + @NotNull Supplier constructor, + @NotNull DataFunction parser ) { C values = constructor.get(); if (data == null) return values; diff --git a/core/src/main/java/cc/carm/lib/configuration/source/section/ConfigureSource.java b/core/src/main/java/cc/carm/lib/configuration/source/section/ConfigureSource.java index ee95f15..b324793 100644 --- a/core/src/main/java/cc/carm/lib/configuration/source/section/ConfigureSource.java +++ b/core/src/main/java/cc/carm/lib/configuration/source/section/ConfigureSource.java @@ -17,9 +17,9 @@ import java.util.Set; * @see ConfigureSection */ public abstract class ConfigureSource< - SECTION extends ConfigureSection, ORIGINAL, - SELF extends ConfigureSource> - implements ConfigureSection { + SECTION extends ConfigureSection, ORIGINAL, + SELF extends ConfigureSource> + implements ConfigureSection { protected final @NotNull ConfigurationHolder holder; protected long lastUpdateMillis; diff --git a/core/src/main/java/cc/carm/lib/configuration/value/standard/ConfiguredMap.java b/core/src/main/java/cc/carm/lib/configuration/value/standard/ConfiguredMap.java index e041e41..e3abd62 100644 --- a/core/src/main/java/cc/carm/lib/configuration/value/standard/ConfiguredMap.java +++ b/core/src/main/java/cc/carm/lib/configuration/value/standard/ConfiguredMap.java @@ -135,8 +135,8 @@ public class ConfiguredMap extends CachedConfigValue, V> impleme for (Map.Entry entry : value.entrySet()) { try { data.put( - keySerializer.serialize(holder(), keyType(), entry.getKey()), - valueSerializer.serialize(holder(), valueType(), withValidated(entry.getValue())) + keySerializer.serialize(holder(), keyType(), entry.getKey()), + valueSerializer.serialize(holder(), valueType(), withValidated(entry.getValue())) ); } catch (Exception e) { throwing(path + "." + entry.getKey(), e); diff --git a/core/src/main/java/cc/carm/lib/configuration/value/standard/ConfiguredValue.java b/core/src/main/java/cc/carm/lib/configuration/value/standard/ConfiguredValue.java index fc6cc20..7cdcf97 100644 --- a/core/src/main/java/cc/carm/lib/configuration/value/standard/ConfiguredValue.java +++ b/core/src/main/java/cc/carm/lib/configuration/value/standard/ConfiguredValue.java @@ -85,9 +85,9 @@ public class ConfiguredValue extends CachedConfigValue { public static ConfiguredValue of(@NotNull ValueType type, @NotNull Supplier<@Nullable V> defaultSupplier) { return of( - new ValueManifest<>(type, defaultSupplier), - (provider, t, data) -> provider.deserialize(type, data), - (provider, t, value) -> provider.serialize(value) + new ValueManifest<>(type, defaultSupplier), + (provider, t, data) -> provider.deserialize(type, data), + (provider, t, value) -> provider.serialize(value) ); } diff --git a/core/src/test/java/cc/carm/test/config/offset/OffsetUtil.java b/core/src/test/java/cc/carm/test/config/offset/OffsetUtil.java index ed89b0d..637b2e2 100644 --- a/core/src/test/java/cc/carm/test/config/offset/OffsetUtil.java +++ b/core/src/test/java/cc/carm/test/config/offset/OffsetUtil.java @@ -9,7 +9,7 @@ //import java.util.LinkedList; //import java.util.List; // -///** +/// ** // * @author Chris2018998 // */ //public class OffsetUtil { @@ -25,15 +25,15 @@ // } catch (NoSuchFieldException | IllegalAccessException e) { // e.printStackTrace(); // } -//// try { -//// unsafe = AccessController.doPrivileged((PrivilegedExceptionAction) () -> { -//// Field theUnsafe = Unsafe.class.getDeclaredField("theUnsafe"); -//// theUnsafe.setAccessible(true); -//// return (Unsafe) theUnsafe.get(null); -//// }); -//// } catch (Throwable e) { -//// System.err.println("Unable to load unsafe"); -//// } +/// / try { +/// / unsafe = AccessController.doPrivileged((PrivilegedExceptionAction) () -> { +/// / Field theUnsafe = Unsafe.class.getDeclaredField("theUnsafe"); +/// / theUnsafe.setAccessible(true); +/// / return (Unsafe) theUnsafe.get(null); +/// / }); +/// / } catch (Throwable e) { +/// / System.err.println("Unable to load unsafe"); +/// / } // } // // public static List getClassMemberOffset(Class beanClass) { diff --git a/demo/pom.xml b/demo/pom.xml index f669960..0b15618 100644 --- a/demo/pom.xml +++ b/demo/pom.xml @@ -214,4 +214,4 @@ - \ No newline at end of file + diff --git a/demo/src/main/java/cc/carm/lib/configuration/demo/DatabaseConfiguration.java b/demo/src/main/java/cc/carm/lib/configuration/demo/DatabaseConfiguration.java index c0c48da..52a21d0 100644 --- a/demo/src/main/java/cc/carm/lib/configuration/demo/DatabaseConfiguration.java +++ b/demo/src/main/java/cc/carm/lib/configuration/demo/DatabaseConfiguration.java @@ -10,13 +10,13 @@ public interface DatabaseConfiguration extends Configuration { @ConfigPath("driver") @HeaderComments({ - "数据库驱动配置,请根据数据库类型设置。", - "- MySQL(旧): com.mysql.jdbc.Driver", - "- MySQL(新): com.mysql.cj.jdbc.Driver", - "- MariaDB(推荐): org.mariadb.jdbc.Driver", + "数据库驱动配置,请根据数据库类型设置。", + "- MySQL(旧): com.mysql.jdbc.Driver", + "- MySQL(新): com.mysql.cj.jdbc.Driver", + "- MariaDB(推荐): org.mariadb.jdbc.Driver", }) ConfiguredValue DRIVER_NAME = ConfiguredValue.of( - String.class, "com.mysql.cj.jdbc.Driver" + String.class, "com.mysql.cj.jdbc.Driver" ); ConfiguredValue HOST = ConfiguredValue.of(String.class, "127.0.0.1"); diff --git a/demo/src/main/java/cc/carm/lib/configuration/demo/tests/conf/DemoConfiguration.java b/demo/src/main/java/cc/carm/lib/configuration/demo/tests/conf/DemoConfiguration.java index 76e40e9..37ef33b 100644 --- a/demo/src/main/java/cc/carm/lib/configuration/demo/tests/conf/DemoConfiguration.java +++ b/demo/src/main/java/cc/carm/lib/configuration/demo/tests/conf/DemoConfiguration.java @@ -16,10 +16,10 @@ import java.util.UUID; @ConfigPath(root = true) @HeaderComments({"此处内容将显示在配置文件的最上方"}) @FooterComments({ - "------------------------------------------------", - "此处内容将显示在配置文件的最下方", - "可用于显示版权信息等", - "感谢您使用 https://github.com/CarmJos/configured !" + "------------------------------------------------", + "此处内容将显示在配置文件的最下方", + "可用于显示版权信息等", + "感谢您使用 https://github.com/CarmJos/configured !" }) public interface DemoConfiguration extends Configuration { @@ -38,30 +38,30 @@ public interface DemoConfiguration extends Configuration { @HeaderComments({"空值测试"}) @InlineComment("空值Inline注释") ConfiguredMap EMPTY = ConfiguredMap.builderOf(String.class, String.class) - .asLinkedMap().fromString() - .build(); + .asLinkedMap().fromString() + .build(); @ConfigPath("registered_users") // 通过注解规定配置文件中的路径,若不进行注解则以变量名自动生成。 @HeaderComments({"Section类型数据测试"}) // 通过注解给配置添加注释。 @InlineComment("默认地注释会加到Section的首行末尾") // 通过注解给配置添加注释。 ConfiguredList ALLOWLISTS = ConfiguredList.builderOf(UserRecord.class).fromSection() - .parse(UserRecord::deserialize).serialize(UserRecord::serialize) - .defaults(UserRecord.CARM).build(); + .parse(UserRecord::deserialize).serialize(UserRecord::serialize) + .defaults(UserRecord.CARM).build(); @HeaderComments({ - "------------------------------------------------", - "[ID - ItemStack]对照表", "", "用于测试Map类型的解析与序列化保存" + "------------------------------------------------", + "[ID - ItemStack]对照表", "", "用于测试Map类型的解析与序列化保存" }) @FooterComments("------------------------------------------------") ConfiguredMap ITEMS = ConfiguredMap.builderOf(Integer.class, ItemStack.class) - .asLinkedMap().fromSection() - .parseKey(data -> Integer.parseInt(data)) - .parse(ItemStack::deserialize).serialize(ItemStack::serialize) - .defaults(m -> { - m.put(1, new ItemStack("stone", 64)); - m.put(2, new ItemStack("iron", 64, "铁锭", Arrays.asList("一些铁锭", "可以制造东西"))); - }) - .build(); + .asLinkedMap().fromSection() + .parseKey(data -> Integer.parseInt(data)) + .parse(ItemStack::deserialize).serialize(ItemStack::serialize) + .defaults(m -> { + m.put(1, new ItemStack("stone", 64)); + m.put(2, new ItemStack("iron", 64, "铁锭", Arrays.asList("一些铁锭", "可以制造东西"))); + }) + .build(); /** @@ -72,18 +72,18 @@ public interface DemoConfiguration extends Configuration { @ConfigPath(value = "uuid-value", root = true) public static final ConfiguredValue UUID_CONFIG_VALUE = ConfiguredValue - .builderOf(UUID.class).fromString() - .parse((holder, data) -> UUID.fromString(data)) - .build(); + .builderOf(UUID.class).fromString() + .parse((holder, data) -> UUID.fromString(data)) + .build(); @HeaderComments({"内部类的内部类测试", "通过这种方式,您可以轻易实现多层次的配置文件结构"}) @FooterComments({"-------------"}) public interface That extends Configuration { ConfiguredList OPERATORS = ConfiguredList - .builderOf(UUID.class).fromString() - .parse(s -> Objects.requireNonNull(UUID.fromString(s))) - .build(); + .builderOf(UUID.class).fromString() + .parse(s -> Objects.requireNonNull(UUID.fromString(s))) + .build(); } } diff --git a/demo/src/main/java/cc/carm/lib/configuration/demo/tests/conf/KotlinConfiguration.kt b/demo/src/main/java/cc/carm/lib/configuration/demo/tests/conf/KotlinConfiguration.kt index ccef89e..c71f88c 100644 --- a/demo/src/main/java/cc/carm/lib/configuration/demo/tests/conf/KotlinConfiguration.kt +++ b/demo/src/main/java/cc/carm/lib/configuration/demo/tests/conf/KotlinConfiguration.kt @@ -4,7 +4,6 @@ import cc.carm.lib.configuration.Configuration import cc.carm.lib.configuration.annotation.ConfigPath import cc.carm.lib.configuration.annotation.ConfigVersion import cc.carm.lib.configuration.kotlin.value.* -import java.util.* @ConfigPath(root = true) object KotlinConfiguration : Configuration { @@ -30,4 +29,4 @@ object KotlinConfiguration : Configuration { serialize { v -> v } defaults("key", "value") } -} \ No newline at end of file +} diff --git a/demo/src/main/java/cc/carm/lib/configuration/demo/tests/conf/RegistryConfig.java b/demo/src/main/java/cc/carm/lib/configuration/demo/tests/conf/RegistryConfig.java index e78ea15..8dc6f89 100644 --- a/demo/src/main/java/cc/carm/lib/configuration/demo/tests/conf/RegistryConfig.java +++ b/demo/src/main/java/cc/carm/lib/configuration/demo/tests/conf/RegistryConfig.java @@ -20,9 +20,9 @@ public class RegistryConfig implements Configuration { @InlineComment(value = "用户名(匹配注释)", regex = "name") // 通过注解给配置添加注释。 @InlineComment(value = "信息", regex = {"info.*", "info.game.*"}) // 通过注解给配置添加注释。 public final ConfiguredValue OWNER = ConfiguredValue.builderOf(UserRecord.class).fromSection() - .defaults(new UserRecord("Carm", UUID.randomUUID())) - .parse((holder, section) -> UserRecord.deserialize(section)) - .serialize((holder, data) -> data.serialize()).build(); + .defaults(new UserRecord("Carm", UUID.randomUUID())) + .parse((holder, section) -> UserRecord.deserialize(section)) + .serialize((holder, data) -> data.serialize()).build(); } diff --git a/demo/src/main/java/cc/carm/lib/configuration/demo/tests/model/ItemStack.java b/demo/src/main/java/cc/carm/lib/configuration/demo/tests/model/ItemStack.java index cd796e9..6f9ae73 100644 --- a/demo/src/main/java/cc/carm/lib/configuration/demo/tests/model/ItemStack.java +++ b/demo/src/main/java/cc/carm/lib/configuration/demo/tests/model/ItemStack.java @@ -69,10 +69,10 @@ public class ItemStack { public static ItemStack deserialize(ConfigureSection section) { return new ItemStack( - section.getString("material"), - section.getInt("amount", 1), - section.getString("name"), - section.getStringList("lore") + section.getString("material"), + section.getInt("amount", 1), + section.getString("name"), + section.getStringList("lore") ); } } diff --git a/demo/src/main/java/cc/carm/lib/configuration/demo/tests/model/UserRecord.java b/demo/src/main/java/cc/carm/lib/configuration/demo/tests/model/UserRecord.java index b8b0273..33fd029 100644 --- a/demo/src/main/java/cc/carm/lib/configuration/demo/tests/model/UserRecord.java +++ b/demo/src/main/java/cc/carm/lib/configuration/demo/tests/model/UserRecord.java @@ -52,8 +52,8 @@ public class UserRecord extends AbstractRecord { @Override public String toString() { return "TestUser{" + - "name='" + name + '\'' + - ", uuid=" + uuid + - '}'; + "name='" + name + '\'' + + ", uuid=" + uuid + + '}'; } -} \ No newline at end of file +} diff --git a/demo/src/test/java/cc/carm/lib/configuration/tests/test/JSONConfigTests.java b/demo/src/test/java/cc/carm/lib/configuration/tests/test/JSONConfigTests.java index 4f9d77d..1d09a57 100644 --- a/demo/src/test/java/cc/carm/lib/configuration/tests/test/JSONConfigTests.java +++ b/demo/src/test/java/cc/carm/lib/configuration/tests/test/JSONConfigTests.java @@ -10,9 +10,9 @@ import java.io.File; public class JSONConfigTests { protected final ConfigurationHolder holder = JSONConfigFactory - .from(new File("target"), "config.json") - .resourcePath("example.json") - .build(); + .from(new File("target"), "config.json") + .resourcePath("example.json") + .build(); @Test public void onTest() { diff --git a/demo/src/test/java/cc/carm/lib/configuration/tests/test/YamlTests.java b/demo/src/test/java/cc/carm/lib/configuration/tests/test/YamlTests.java index 5c974b4..fef6724 100644 --- a/demo/src/test/java/cc/carm/lib/configuration/tests/test/YamlTests.java +++ b/demo/src/test/java/cc/carm/lib/configuration/tests/test/YamlTests.java @@ -17,7 +17,7 @@ public class YamlTests { public void test() { ConfigurationHolder holder = YAMLConfigFactory.from("target/tests.yml") - .resourcePath("configs/sample.yml").build(); + .resourcePath("configs/sample.yml").build(); Validators.activate(holder); diff --git a/demo/src/test/java/cc/carm/lib/configuration/tests/test/mongodb/MongoTest.java b/demo/src/test/java/cc/carm/lib/configuration/tests/test/mongodb/MongoTest.java index c179dd0..2fffdfb 100644 --- a/demo/src/test/java/cc/carm/lib/configuration/tests/test/mongodb/MongoTest.java +++ b/demo/src/test/java/cc/carm/lib/configuration/tests/test/mongodb/MongoTest.java @@ -28,22 +28,22 @@ public class MongoTest { gsonHolder.initialize(MongoConfig.class); MongoClientSettings settings = MongoClientSettings.builder() - .applyConnectionString(new ConnectionString( - "mongodb://" + MongoConfig.HOST.resolve() + ":" + MongoConfig.PORT.resolve() - )) - .credential(MongoCredential.createCredential( - MongoConfig.USERNAME.resolve(), MongoConfig.DATABASE.resolve(), - MongoConfig.PASSWORD.resolve().toCharArray() - )) - .uuidRepresentation(UuidRepresentation.STANDARD) - .build(); + .applyConnectionString(new ConnectionString( + "mongodb://" + MongoConfig.HOST.resolve() + ":" + MongoConfig.PORT.resolve() + )) + .credential(MongoCredential.createCredential( + MongoConfig.USERNAME.resolve(), MongoConfig.DATABASE.resolve(), + MongoConfig.PASSWORD.resolve().toCharArray() + )) + .uuidRepresentation(UuidRepresentation.STANDARD) + .build(); MongoClient mongoClient = MongoClients.create(settings); MongoDatabase mongoDatabase = mongoClient.getDatabase(MongoConfig.DATABASE.resolve()); ConfigurationHolder mongoHolder = MongoConfigFactory - .from(mongoDatabase, "configs") - .namespace("my_plugin") - .build(); + .from(mongoDatabase, "configs") + .namespace("my_plugin") + .build(); // Test the configuration ConfigurationTest.testDemo(mongoHolder); diff --git a/demo/src/test/java/cc/carm/lib/configuration/tests/test/sql/SQLConfigTest.java b/demo/src/test/java/cc/carm/lib/configuration/tests/test/sql/SQLConfigTest.java index f8f36ff..8de67d1 100644 --- a/demo/src/test/java/cc/carm/lib/configuration/tests/test/sql/SQLConfigTest.java +++ b/demo/src/test/java/cc/carm/lib/configuration/tests/test/sql/SQLConfigTest.java @@ -33,9 +33,9 @@ public class SQLConfigTest { manager.setDebugMode(true); ConfigurationHolder holder = SQLConfigFactory.from(manager) - .tableName("test_configs") - .namespace("testing") - .build(); + .tableName("test_configs") + .namespace("testing") + .build(); ConfigurationTest.testDemo(holder); ConfigurationTest.testInner(holder); diff --git a/features/commentable/pom.xml b/features/commentable/pom.xml index 28e87d7..c7447c6 100644 --- a/features/commentable/pom.xml +++ b/features/commentable/pom.xml @@ -48,4 +48,4 @@ - \ No newline at end of file + diff --git a/features/commentable/src/main/java/cc/carm/lib/configuration/commentable/CommentableMeta.java b/features/commentable/src/main/java/cc/carm/lib/configuration/commentable/CommentableMeta.java index 35359cb..d47f4ca 100644 --- a/features/commentable/src/main/java/cc/carm/lib/configuration/commentable/CommentableMeta.java +++ b/features/commentable/src/main/java/cc/carm/lib/configuration/commentable/CommentableMeta.java @@ -42,12 +42,12 @@ public interface CommentableMeta { static void register(@NotNull ConfigurationInitializer initializer) { initializer.registerAnnotation( - HeaderComments.class, HEADER, - a -> Arrays.asList(a.value()) + HeaderComments.class, HEADER, + a -> Arrays.asList(a.value()) ); initializer.registerAnnotation( - FooterComments.class, FOOTER, - a -> Arrays.asList(a.value()) + FooterComments.class, FOOTER, + a -> Arrays.asList(a.value()) ); initializer.registerAnnotation(InlineComment.class, INLINE, a -> { Map map = new HashMap<>(); diff --git a/features/file/pom.xml b/features/file/pom.xml index c087982..50bddc3 100644 --- a/features/file/pom.xml +++ b/features/file/pom.xml @@ -47,4 +47,4 @@ - \ No newline at end of file + diff --git a/features/file/src/main/java/cc/carm/lib/configuration/source/file/FileConfigFactory.java b/features/file/src/main/java/cc/carm/lib/configuration/source/file/FileConfigFactory.java index d112eb2..b75dda8 100644 --- a/features/file/src/main/java/cc/carm/lib/configuration/source/file/FileConfigFactory.java +++ b/features/file/src/main/java/cc/carm/lib/configuration/source/file/FileConfigFactory.java @@ -9,8 +9,8 @@ import java.io.File; import java.nio.file.Path; public abstract class FileConfigFactory, - HOLDER extends ConfigurationHolder, SELF extends FileConfigFactory> - extends ConfigurationFactory { + HOLDER extends ConfigurationHolder, SELF extends FileConfigFactory> + extends ConfigurationFactory { protected @NotNull File file; diff --git a/features/file/src/main/java/cc/carm/lib/configuration/source/file/FileConfigSource.java b/features/file/src/main/java/cc/carm/lib/configuration/source/file/FileConfigSource.java index 050e9ab..94511ee 100644 --- a/features/file/src/main/java/cc/carm/lib/configuration/source/file/FileConfigSource.java +++ b/features/file/src/main/java/cc/carm/lib/configuration/source/file/FileConfigSource.java @@ -17,7 +17,7 @@ import java.nio.file.Files; import java.util.Objects; public abstract class FileConfigSource
> - extends ConfigureSource { + extends ConfigureSource { protected final @NotNull File file; protected final @Nullable String resourcePath; @@ -116,7 +116,7 @@ public abstract class FileConfigSource
CHARSET = ConfigurationOption.of(StandardCharsets.UTF_8); - + /** * Whether to copy files from resource if exists. */ diff --git a/features/kotlin/pom.xml b/features/kotlin/pom.xml index af3c936..db7fc72 100644 --- a/features/kotlin/pom.xml +++ b/features/kotlin/pom.xml @@ -117,4 +117,4 @@ - \ No newline at end of file + diff --git a/features/section/pom.xml b/features/section/pom.xml index 6922ab9..d27a473 100644 --- a/features/section/pom.xml +++ b/features/section/pom.xml @@ -48,4 +48,4 @@ - \ No newline at end of file + diff --git a/features/text/pom.xml b/features/text/pom.xml index f0fa630..1a1856c 100644 --- a/features/text/pom.xml +++ b/features/text/pom.xml @@ -57,4 +57,4 @@ - \ No newline at end of file + diff --git a/features/text/src/main/java/cc/carm/lib/configuration/value/text/ConfiguredText.java b/features/text/src/main/java/cc/carm/lib/configuration/value/text/ConfiguredText.java index 1ef7526..899db4f 100644 --- a/features/text/src/main/java/cc/carm/lib/configuration/value/text/ConfiguredText.java +++ b/features/text/src/main/java/cc/carm/lib/configuration/value/text/ConfiguredText.java @@ -27,8 +27,8 @@ public class ConfiguredText extends ConfiguredValue public static final ValueType TEXT_TYPE = ValueType.of(TextContents.class); public static final ValueAdapter TEXT_ADAPTER = new ValueAdapter<>(TEXT_TYPE, - (h, t, d) -> d.serialize(), - (h, t, d) -> TextContents.deserialize(d) + (h, t, d) -> d.serialize(), + (h, t, d) -> TextContents.deserialize(d) ); protected final @NotNull BiFunction parser; @@ -51,8 +51,8 @@ public class ConfiguredText extends ConfiguredValue public PreparedText prepare(@NotNull Object... values) { return new PreparedText(resolve(), this.params) - .parser(this.parser).compiler(this.compiler) - .dispatcher(this.dispatcher).placeholders(values); + .parser(this.parser).compiler(this.compiler) + .dispatcher(this.dispatcher).placeholders(values); } /** @@ -120,7 +120,7 @@ public class ConfiguredText extends ConfiguredValue } public abstract static class Builder> - extends AbstractConfigBuilder, ConfigurationHolder, SELF> { + extends AbstractConfigBuilder, ConfigurationHolder, SELF> { protected @NotNull TextContents.Builder defaultBuilder = TextContents.builder(); protected @NotNull String[] params = new String[0]; diff --git a/features/text/src/main/java/cc/carm/lib/configuration/value/text/function/ContentHandler.java b/features/text/src/main/java/cc/carm/lib/configuration/value/text/function/ContentHandler.java index e1b5f88..4fdbb5e 100644 --- a/features/text/src/main/java/cc/carm/lib/configuration/value/text/function/ContentHandler.java +++ b/features/text/src/main/java/cc/carm/lib/configuration/value/text/function/ContentHandler.java @@ -21,7 +21,7 @@ import java.util.function.Function; import java.util.function.UnaryOperator; public abstract class ContentHandler> - implements Replaceable, Insertable { + implements Replaceable, Insertable { protected BiFunction parser = (receiver, value) -> value; protected String lineSeparator = System.lineSeparator(); diff --git a/features/text/src/main/java/cc/carm/lib/configuration/value/text/function/TextDispatcher.java b/features/text/src/main/java/cc/carm/lib/configuration/value/text/function/TextDispatcher.java index 3014e9d..37fff4a 100644 --- a/features/text/src/main/java/cc/carm/lib/configuration/value/text/function/TextDispatcher.java +++ b/features/text/src/main/java/cc/carm/lib/configuration/value/text/function/TextDispatcher.java @@ -1,6 +1,5 @@ package cc.carm.lib.configuration.value.text.function; -import cc.carm.lib.configuration.value.text.data.TextContents; import org.jetbrains.annotations.NotNull; import java.util.Arrays; diff --git a/features/text/src/main/java/cc/carm/lib/configuration/value/text/function/TextParser.java b/features/text/src/main/java/cc/carm/lib/configuration/value/text/function/TextParser.java index 423f6d2..35addad 100644 --- a/features/text/src/main/java/cc/carm/lib/configuration/value/text/function/TextParser.java +++ b/features/text/src/main/java/cc/carm/lib/configuration/value/text/function/TextParser.java @@ -11,7 +11,7 @@ import java.util.function.BiFunction; import java.util.function.Consumer; public abstract class TextParser> - extends ContentHandler { + extends ContentHandler { public abstract TextContents texts(); diff --git a/features/text/src/main/java/cc/carm/lib/configuration/value/text/function/common/AppendLineInserter.java b/features/text/src/main/java/cc/carm/lib/configuration/value/text/function/common/AppendLineInserter.java index 71684f3..ffe2956 100644 --- a/features/text/src/main/java/cc/carm/lib/configuration/value/text/function/common/AppendLineInserter.java +++ b/features/text/src/main/java/cc/carm/lib/configuration/value/text/function/common/AppendLineInserter.java @@ -29,7 +29,7 @@ public class AppendLineInserter extends ContentInserter { * */ public static final @NotNull Pattern APPEND_PATTERN = Pattern.compile( - "^(?:\\{(?.*)})?#(?.*)#(?:\\{(?-?\\d+)(?:,(?-?\\d+))?})?$" + "^(?:\\{(?.*)})?#(?.*)#(?:\\{(?-?\\d+)(?:,(?-?\\d+))?})?$" ); public AppendLineInserter(int priority) { @@ -50,9 +50,9 @@ public class AppendLineInserter extends ContentInserter { String prefix = Optional.ofNullable(matcher.group("prefix")).orElse(""); int offsetAbove = Optional.ofNullable(matcher.group("above")) - .map(Integer::parseInt).orElse(0); + .map(Integer::parseInt).orElse(0); int offsetDown = Optional.ofNullable(matcher.group("down")) - .map(Integer::parseInt).orElse(offsetAbove); // If offsetDown is not set, use offsetAbove + .map(Integer::parseInt).orElse(offsetAbove); // If offsetDown is not set, use offsetAbove List contents = new ArrayList<>(); diff --git a/features/text/src/main/java/cc/carm/lib/configuration/value/text/function/common/OptionalLineInserter.java b/features/text/src/main/java/cc/carm/lib/configuration/value/text/function/common/OptionalLineInserter.java index c1da771..7d7cff5 100644 --- a/features/text/src/main/java/cc/carm/lib/configuration/value/text/function/common/OptionalLineInserter.java +++ b/features/text/src/main/java/cc/carm/lib/configuration/value/text/function/common/OptionalLineInserter.java @@ -23,7 +23,7 @@ public class OptionalLineInserter extends ContentInserter { * */ public static final @NotNull Pattern OPTIONAL_PATTERN = Pattern.compile( - "^\\?\\[(?.+)](?.*)$" + "^\\?\\[(?.+)](?.*)$" ); public OptionalLineInserter(int priority) { diff --git a/features/text/src/test/java/cc/carm/lib/configuration/value/text/tests/ConfigTest.java b/features/text/src/test/java/cc/carm/lib/configuration/value/text/tests/ConfigTest.java index a144261..697f28e 100644 --- a/features/text/src/test/java/cc/carm/lib/configuration/value/text/tests/ConfigTest.java +++ b/features/text/src/test/java/cc/carm/lib/configuration/value/text/tests/ConfigTest.java @@ -12,9 +12,9 @@ import java.util.List; public class ConfigTest { public static final String[] WEBSITES = new String[]{ - "https://carm.cc", - "https://www.baidu.com", - "https://www.google.com" + "https://carm.cc", + "https://www.baidu.com", + "https://www.google.com" }; @Test @@ -27,10 +27,10 @@ public class ConfigTest { System.out.println("--------------------------"); List str = AppMessages.WELCOME.prepare() - .placeholders("Carm") - .insert("guidance") - .insert("websites", WEBSITES) - .compile(System.out); + .placeholders("Carm") + .insert("guidance") + .insert("websites", WEBSITES) + .compile(System.out); System.out.println("--------------------------"); diff --git a/features/text/src/test/java/cc/carm/lib/configuration/value/text/tests/ParseTest.java b/features/text/src/test/java/cc/carm/lib/configuration/value/text/tests/ParseTest.java index 42ea5a1..ce48a00 100644 --- a/features/text/src/test/java/cc/carm/lib/configuration/value/text/tests/ParseTest.java +++ b/features/text/src/test/java/cc/carm/lib/configuration/value/text/tests/ParseTest.java @@ -33,17 +33,17 @@ public class ParseTest { TextContents textContents = new TextContents(lines, optional); PreparedText msg = new PreparedText(textContents) - .dispatcher((p, s) -> s.forEach(p::println)) - .parser((p, s) -> s) - .compiler((p, s) -> s) - .replace( // Custom replacer, replace $UUID$ with Random UUID - "$UUID$", () -> UUID.randomUUID().toString() - ); + .dispatcher((p, s) -> s.forEach(p::println)) + .parser((p, s) -> s) + .compiler((p, s) -> s) + .replace( // Custom replacer, replace $UUID$ with Random UUID + "$UUID$", () -> UUID.randomUUID().toString() + ); msg.placeholder("name", "Carm") - .insert("guidance") - .insert("click") - .insert("websites", "Baidu", "Bilibili", "Google"); + .insert("guidance") + .insert("click") + .insert("websites", "Baidu", "Bilibili", "Google"); System.out.println("----------------------------"); diff --git a/features/text/src/test/java/cc/carm/lib/configuration/value/text/tests/conf/AppMessages.java b/features/text/src/test/java/cc/carm/lib/configuration/value/text/tests/conf/AppMessages.java index 71cf455..c13609d 100644 --- a/features/text/src/test/java/cc/carm/lib/configuration/value/text/tests/conf/AppMessages.java +++ b/features/text/src/test/java/cc/carm/lib/configuration/value/text/tests/conf/AppMessages.java @@ -7,22 +7,22 @@ import cc.carm.lib.configuration.annotation.ConfigPath; public interface AppMessages extends Configuration { ConfiguredMsg WELCOME = ConfiguredMsg.builder() - .defaults( - "Hello, %(name)", - "#more-creating#{1}", - "This is a test message", - "#guidance#", - "{- }#websites#{0,1}", - "Thanks for your reading!") - .optional("guidance", "To get more information for %(name), see:") - .params("name").build(); + .defaults( + "Hello, %(name)", + "#more-creating#{1}", + "This is a test message", + "#guidance#", + "{- }#websites#{0,1}", + "Thanks for your reading!") + .optional("guidance", "To get more information for %(name), see:") + .params("name").build(); ConfiguredMsg NO_PERMISSION = ConfiguredMsg.builder() - .defaults("Sorry! But you don't have permissions to do this.") - .build(); + .defaults("Sorry! But you don't have permissions to do this.") + .build(); ConfiguredMsg NOT_AVAILABLE = ConfiguredMsg.builder() - .defaults("Error! Service is not available now.", "Please contact your system manager.") - .build(); + .defaults("Error! Service is not available now.", "Please contact your system manager.") + .build(); } diff --git a/features/text/src/test/java/cc/carm/lib/configuration/value/text/tests/conf/ConfiguredMsg.java b/features/text/src/test/java/cc/carm/lib/configuration/value/text/tests/conf/ConfiguredMsg.java index 8516b33..c728e47 100644 --- a/features/text/src/test/java/cc/carm/lib/configuration/value/text/tests/conf/ConfiguredMsg.java +++ b/features/text/src/test/java/cc/carm/lib/configuration/value/text/tests/conf/ConfiguredMsg.java @@ -20,11 +20,11 @@ public class ConfiguredMsg extends ConfiguredText { public ConfiguredMsg(@NotNull ValueManifest manifest, @NotNull String[] params) { super( - manifest, - (p, s) -> s, - (p, s) -> s, - (p, s) -> s.forEach(p::println), - params + manifest, + (p, s) -> s, + (p, s) -> s, + (p, s) -> s.forEach(p::println), + params ); } diff --git a/features/validators/pom.xml b/features/validators/pom.xml index eb03fba..7775787 100644 --- a/features/validators/pom.xml +++ b/features/validators/pom.xml @@ -48,4 +48,4 @@ - \ No newline at end of file + diff --git a/features/versioned/pom.xml b/features/versioned/pom.xml index 7e524ea..3539622 100644 --- a/features/versioned/pom.xml +++ b/features/versioned/pom.xml @@ -48,4 +48,4 @@ - \ No newline at end of file + diff --git a/pom.xml b/pom.xml index 9f24a11..84f55f5 100644 --- a/pom.xml +++ b/pom.xml @@ -304,4 +304,4 @@ - \ No newline at end of file + diff --git a/providers/gson/README.md b/providers/gson/README.md index 5dee884..42d20a5 100644 --- a/providers/gson/README.md +++ b/providers/gson/README.md @@ -1,8 +1,24 @@ # configured-JSON -JSON file-based implementation, compatible with all Java environments. +JSON +file-based +implementation, +compatible +with +all +Java +environments. -**Remember that JSON does not support file comments.** +* +*Remember +that +JSON +does +not +support +file +comments. +** ## Dependencies diff --git a/providers/gson/pom.xml b/providers/gson/pom.xml index 3276686..2e72f24 100644 --- a/providers/gson/pom.xml +++ b/providers/gson/pom.xml @@ -71,4 +71,4 @@ - \ No newline at end of file + diff --git a/providers/gson/src/main/java/cc/carm/lib/configuration/source/json/JSONSource.java b/providers/gson/src/main/java/cc/carm/lib/configuration/source/json/JSONSource.java index ce473c6..cfa19fd 100644 --- a/providers/gson/src/main/java/cc/carm/lib/configuration/source/json/JSONSource.java +++ b/providers/gson/src/main/java/cc/carm/lib/configuration/source/json/JSONSource.java @@ -17,11 +17,11 @@ import java.util.Objects; public class JSONSource extends FileConfigSource, JSONSource> { public static final @NotNull Gson DEFAULT_GSON = new GsonBuilder() - .serializeNulls().disableHtmlEscaping().setPrettyPrinting() - .registerTypeAdapter( - SourcedSection.class, - (JsonSerializer) (src, t, c) -> c.serialize(src.data()) - ).create(); + .serializeNulls().disableHtmlEscaping().setPrettyPrinting() + .registerTypeAdapter( + SourcedSection.class, + (JsonSerializer) (src, t, c) -> c.serialize(src.data()) + ).create(); protected final @NotNull Gson gson; protected @Nullable SourcedSection rootSection; diff --git a/providers/hocon/README.md b/providers/hocon/README.md index b40e27e..66900d4 100644 --- a/providers/hocon/README.md +++ b/providers/hocon/README.md @@ -1,6 +1,13 @@ # configured-HOCON -HOCON file-based implementation, compatible with all Java environments. +HOCON +file-based +implementation, +compatible +with +all +Java +environments. ## Dependencies diff --git a/providers/hocon/pom.xml b/providers/hocon/pom.xml index 136029b..877afc3 100644 --- a/providers/hocon/pom.xml +++ b/providers/hocon/pom.xml @@ -74,4 +74,4 @@ - \ No newline at end of file + diff --git a/providers/hocon/src/main/java/cc/carm/lib/configuration/source/hocon/HOCONSource.java b/providers/hocon/src/main/java/cc/carm/lib/configuration/source/hocon/HOCONSource.java index 6d6f2c0..131b47b 100644 --- a/providers/hocon/src/main/java/cc/carm/lib/configuration/source/hocon/HOCONSource.java +++ b/providers/hocon/src/main/java/cc/carm/lib/configuration/source/hocon/HOCONSource.java @@ -9,15 +9,18 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.io.File; -import java.util.*; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Objects; public class HOCONSource - extends FileConfigSource, HOCONSource> { + extends FileConfigSource, HOCONSource> { protected @Nullable SourcedSection rootSection; protected HOCONSource( - @NotNull ConfigurationHolder holder, - @NotNull File file, @Nullable String resourcePath + @NotNull ConfigurationHolder holder, + @NotNull File file, @Nullable String resourcePath ) { super(holder, 0, file, resourcePath); @@ -54,32 +57,32 @@ public class HOCONSource // accumulator: 将 Section 中的信息为 typesafe config 添加并返回 // combiner: 合并两个配置文件 Config config = this.getValues(true).entrySet().stream().reduce( - ConfigFactory.empty(), - (cfg, entry) -> { - String key = entry.getKey(); // 源数据 key - Object value = entry.getValue(); // 源数据 value + ConfigFactory.empty(), + (cfg, entry) -> { + String key = entry.getKey(); // 源数据 key + Object value = entry.getValue(); // 源数据 value - ConfigValue result; // 最终转换为 typesafe 的 ConfigValue 类型 - if (value == null || value instanceof Boolean || value instanceof String || value instanceof Number) { - result = ConfigValueFactory.fromAnyRef(value); // 原始数据类型 - } else if (value instanceof Iterator) { - result = ConfigValueFactory.fromIterable((Iterable) value); - } else if (value instanceof Map) { - //noinspection unchecked - result = ConfigValueFactory.fromMap((Map) value); - } else { - result = ConfigValueFactory.fromAnyRef(String.valueOf(value)); - } - List headerComments = HOCONSource.this.getHeaderComments(key); // 获取其注释 - result = result.withOrigin(result.origin().withComments(headerComments)); // 赋予其注释 - return cfg.withValue(key, result); // 将其添加到根 config 中 - }, - Config::withFallback + ConfigValue result; // 最终转换为 typesafe 的 ConfigValue 类型 + if (value == null || value instanceof Boolean || value instanceof String || value instanceof Number) { + result = ConfigValueFactory.fromAnyRef(value); // 原始数据类型 + } else if (value instanceof Iterator) { + result = ConfigValueFactory.fromIterable((Iterable) value); + } else if (value instanceof Map) { + //noinspection unchecked + result = ConfigValueFactory.fromMap((Map) value); + } else { + result = ConfigValueFactory.fromAnyRef(String.valueOf(value)); + } + List headerComments = HOCONSource.this.getHeaderComments(key); // 获取其注释 + result = result.withOrigin(result.origin().withComments(headerComments)); // 赋予其注释 + return cfg.withValue(key, result); // 将其添加到根 config 中 + }, + Config::withFallback ); return config.root().render( - ConfigRenderOptions.defaults() - .setJson(false) - .setOriginComments(false) + ConfigRenderOptions.defaults() + .setJson(false) + .setOriginComments(false) ); } diff --git a/providers/hocon/src/test/java/sample/SampleConfig.java b/providers/hocon/src/test/java/sample/SampleConfig.java index 31d794b..bd252df 100644 --- a/providers/hocon/src/test/java/sample/SampleConfig.java +++ b/providers/hocon/src/test/java/sample/SampleConfig.java @@ -18,11 +18,11 @@ public interface SampleConfig extends Configuration { @HeaderComments({"[ UUID >-----------------------------------", "A lot of UUIDs"}) ConfiguredList UUIDS = ConfiguredList.builderOf(UUID.class).fromString() - .parse(UUID::fromString).serialize(UUID::toString) - .defaults( - UUID.fromString("00000000-0000-0000-0000-000000000000"), - UUID.fromString("00000000-0000-0000-0000-000000000001") - ).build(); + .parse(UUID::fromString).serialize(UUID::toString) + .defaults( + UUID.fromString("00000000-0000-0000-0000-000000000000"), + UUID.fromString("00000000-0000-0000-0000-000000000001") + ).build(); @ConfigPath("info") // Custom path interface INFO extends Configuration { diff --git a/providers/hocon/src/test/java/sample/SampleTest.java b/providers/hocon/src/test/java/sample/SampleTest.java index a1f3e49..e9cdcf2 100644 --- a/providers/hocon/src/test/java/sample/SampleTest.java +++ b/providers/hocon/src/test/java/sample/SampleTest.java @@ -4,14 +4,14 @@ import cc.carm.lib.configuration.source.ConfigurationHolder; import cc.carm.lib.configuration.source.hocon.HOCONConfigFactory; import org.junit.Test; -public class SampleTest { +public class SampleTest { @Test public void test() { // 1. Make a configuration provider from a file. ConfigurationHolder holder = HOCONConfigFactory.from("target/config.conf") - .resourcePath("configs/sample.conf") - .build(); + .resourcePath("configs/sample.conf") + .build(); // 2. Initialize the configuration classes or instances. holder.initialize(SampleConfig.class); diff --git a/providers/mongodb/pom.xml b/providers/mongodb/pom.xml index ec2a6c4..4fcde12 100644 --- a/providers/mongodb/pom.xml +++ b/providers/mongodb/pom.xml @@ -63,4 +63,4 @@ - \ No newline at end of file + diff --git a/providers/sql/README.md b/providers/sql/README.md index e741754..c62d552 100644 --- a/providers/sql/README.md +++ b/providers/sql/README.md @@ -1,8 +1,16 @@ # configured-SQL -SQL database implementation, support for MySQL or MariaDB. +SQL +database +implementation, +support +for +MySQL +or +MariaDB. ## Table schema + ```mysql CREATE TABLE IF NOT EXISTS conf ( @@ -16,9 +24,11 @@ CREATE TABLE IF NOT EXISTS conf `version` MEDIUMINT UNSIGNED NOT NULL DEFAULT 0, # 配置项的版本 `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, # 创建时间 `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`namespace`, `path`) -) ENGINE = InnoDB - DEFAULT CHARSET = utf8mb4; + PRIMARY KEY (`namespace`, + `path`) +) + ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4; ``` ## Dependencies @@ -32,16 +42,30 @@ CREATE TABLE IF NOT EXISTS conf - maven - Maven Central - https://repo1.maven.org/maven2 + + maven + + + Maven + Central + + + https://repo1.maven.org/maven2 + - configured - GitHub Packages - https://maven.pkg.github.com/CarmJos/configured + + configured + + + GitHub + Packages + + + https://maven.pkg.github.com/CarmJos/configured + @@ -53,10 +77,19 @@ CREATE TABLE IF NOT EXISTS conf - cc.carm.lib - configured-sql - [LATEST RELEASE] - compile + + cc.carm.lib + + + configured-sql + + + [LATEST + RELEASE] + + + compile + @@ -80,4 +113,4 @@ repositories { dependencies { api "cc.carm.lib:configured-sql:[LATEST RELEASE]" } -``` \ No newline at end of file +``` diff --git a/providers/sql/pom.xml b/providers/sql/pom.xml index 4ee63a3..dd72b16 100644 --- a/providers/sql/pom.xml +++ b/providers/sql/pom.xml @@ -81,4 +81,4 @@ - \ No newline at end of file + diff --git a/providers/sql/src/main/java/cc/carm/lib/configuration/source/sql/SQLConfigFactory.java b/providers/sql/src/main/java/cc/carm/lib/configuration/source/sql/SQLConfigFactory.java index 0ce5f13..56d8bdb 100644 --- a/providers/sql/src/main/java/cc/carm/lib/configuration/source/sql/SQLConfigFactory.java +++ b/providers/sql/src/main/java/cc/carm/lib/configuration/source/sql/SQLConfigFactory.java @@ -32,7 +32,7 @@ public class SQLConfigFactory extends ConfigurationFactory DEFAULT_TABLE_SCHEMA = (tableName, builder) -> { builder.addColumn("namespace", "VARCHAR(32) NOT NULL"); @@ -48,17 +48,17 @@ public class SQLConfigFactory extends ConfigurationFactory(this.adapters, this.options, this.metadata, this.initializer) { final SQLSource source = new SQLSource( - this, System.currentTimeMillis(), - gson, manager, resolvers, tableName, namespace + this, System.currentTimeMillis(), + gson, manager, resolvers, tableName, namespace ); @Override diff --git a/providers/sql/src/main/java/cc/carm/lib/configuration/source/sql/SQLOptions.java b/providers/sql/src/main/java/cc/carm/lib/configuration/source/sql/SQLOptions.java index 1232772..9ce6783 100644 --- a/providers/sql/src/main/java/cc/carm/lib/configuration/source/sql/SQLOptions.java +++ b/providers/sql/src/main/java/cc/carm/lib/configuration/source/sql/SQLOptions.java @@ -7,6 +7,6 @@ public interface SQLOptions { /** * Whether to purge the configuration's in-database data when saving. */ - ConfigurationOption PURGE = ConfigurationOption.of( true); + ConfigurationOption PURGE = ConfigurationOption.of(true); } diff --git a/providers/sql/src/main/java/cc/carm/lib/configuration/source/sql/SQLSource.java b/providers/sql/src/main/java/cc/carm/lib/configuration/source/sql/SQLSource.java index 08f3770..1c61b9b 100644 --- a/providers/sql/src/main/java/cc/carm/lib/configuration/source/sql/SQLSource.java +++ b/providers/sql/src/main/java/cc/carm/lib/configuration/source/sql/SQLSource.java @@ -104,10 +104,10 @@ public class SQLSource extends ConfigureSource loaded = new LinkedHashMap<>(); try (SQLQuery query = this.table.createQuery() - .addCondition("namespace", namespace) - .build().execute()) { + .addCondition("namespace", namespace) + .build().execute()) { ResultSet rs = query.getResultSet(); while (rs.next()) { String path = rs.getString("path"); @@ -161,9 +161,9 @@ public class SQLSource extends ConfigureSource entry.getValue().isInstance(value)) - .findFirst().map(Map.Entry::getKey) - .orElseThrow(() -> new IllegalStateException("No resolvers for value " + value.getClass().getName())); + .filter(entry -> entry.getValue().isInstance(value)) + .findFirst().map(Map.Entry::getKey) + .orElseThrow(() -> new IllegalStateException("No resolvers for value " + value.getClass().getName())); } diff --git a/providers/yaml/README.md b/providers/yaml/README.md index 7e8afa0..525698a 100644 --- a/providers/yaml/README.md +++ b/providers/yaml/README.md @@ -1,6 +1,13 @@ # configured-YAML -YAML file-based implementation, compatible with all Java environments. +YAML +file-based +implementation, +compatible +with +all +Java +environments. ## Dependencies @@ -61,4 +68,4 @@ repositories { dependencies { api "cc.carm.lib:configured-yaml:[LATEST RELEASE]" } -``` \ No newline at end of file +``` diff --git a/providers/yaml/pom.xml b/providers/yaml/pom.xml index 1fc0f66..7d52d17 100644 --- a/providers/yaml/pom.xml +++ b/providers/yaml/pom.xml @@ -88,4 +88,4 @@ - \ No newline at end of file + diff --git a/providers/yaml/src/main/java/cc/carm/lib/configuration/source/yaml/YAMLSource.java b/providers/yaml/src/main/java/cc/carm/lib/configuration/source/yaml/YAMLSource.java index b8ec084..2220883 100644 --- a/providers/yaml/src/main/java/cc/carm/lib/configuration/source/yaml/YAMLSource.java +++ b/providers/yaml/src/main/java/cc/carm/lib/configuration/source/yaml/YAMLSource.java @@ -26,8 +26,8 @@ import java.nio.charset.StandardCharsets; import java.util.*; public class YAMLSource - extends FileConfigSource, YAMLSource> - implements CommentedSection { + extends FileConfigSource, YAMLSource> + implements CommentedSection { protected final @NotNull YamlConstructor yamlConstructor; protected final @NotNull YamlRepresenter yamlRepresenter; @@ -109,9 +109,9 @@ public class YAMLSource @Override public void save() throws Exception { CommentedYAMLWriter writer = new CommentedYAMLWriter( - String.valueOf(this.pathSeparator()), - dumperOptions().getIndent(), - holder.option(CommentableOptions.COMMENT_EMPTY_VALUE) + String.valueOf(this.pathSeparator()), + dumperOptions().getIndent(), + holder.option(CommentableOptions.COMMENT_EMPTY_VALUE) ); try { fileWriter(w -> w.write(writer.saveToString(this))); diff --git a/providers/yaml/src/test/java/sample/SampleConfig.java b/providers/yaml/src/test/java/sample/SampleConfig.java index f1f4fde..194a117 100644 --- a/providers/yaml/src/test/java/sample/SampleConfig.java +++ b/providers/yaml/src/test/java/sample/SampleConfig.java @@ -23,11 +23,11 @@ public interface SampleConfig extends Configuration { @HeaderComments({"[ UUID >-----------------------------------", "A lot of UUIDs"}) @FooterComments("[ UUID >-----------------------------------") ConfiguredList UUIDS = ConfiguredList.builderOf(UUID.class).fromString() - .parse(UUID::fromString).serialize(UUID::toString) - .defaults( - UUID.fromString("00000000-0000-0000-0000-000000000000"), - UUID.fromString("00000000-0000-0000-0000-000000000001") - ).build(); + .parse(UUID::fromString).serialize(UUID::toString) + .defaults( + UUID.fromString("00000000-0000-0000-0000-000000000000"), + UUID.fromString("00000000-0000-0000-0000-000000000001") + ).build(); @ConfigPath("info") // Custom path interface INFO extends Configuration { diff --git a/providers/yaml/src/test/java/sample/SampleTest.java b/providers/yaml/src/test/java/sample/SampleTest.java index 3fa6014..0682a06 100644 --- a/providers/yaml/src/test/java/sample/SampleTest.java +++ b/providers/yaml/src/test/java/sample/SampleTest.java @@ -10,9 +10,9 @@ public class SampleTest { public void test() { // 1. Make a configuration provider from a file. ConfigurationHolder holder = YAMLConfigFactory.from("target/config.yml") - .resourcePath("configs/sample.yml") - .indent(2) // Optional: Set the indentation of the configuration file. - .build(); + .resourcePath("configs/sample.yml") + .indent(2) // Optional: Set the indentation of the configuration file. + .build(); // 2. Initialize the configuration classes or instances. holder.initialize(SampleConfig.class);