Skip to content

Commit 7971718

Browse files
authored
feat: support creating collection with uniqueKeyPolicy (#42)
* feat: support creating collection with uniqueKeyPolicy * feat: support creating collection with uniqueKeyPolicy. fix format * feat: support creating collection with uniqueKeyPolicy. fix README
1 parent ec57410 commit 7971718

5 files changed

Lines changed: 720 additions & 290 deletions

File tree

.editorconfig

Lines changed: 301 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,301 @@
1+
[*]
2+
charset = utf-8
3+
end_of_line = lf
4+
indent_size = 4
5+
indent_style = space
6+
insert_final_newline = false
7+
max_line_length = 120
8+
tab_width = 4
9+
ij_continuation_indent_size = 8
10+
ij_formatter_off_tag = @formatter:off
11+
ij_formatter_on_tag = @formatter:on
12+
ij_formatter_tags_enabled = false
13+
ij_smart_tabs = false
14+
ij_visual_guides = none
15+
ij_wrap_on_typing = false
16+
17+
[*.java]
18+
ij_java_align_consecutive_assignments = false
19+
ij_java_align_consecutive_variable_declarations = false
20+
ij_java_align_group_field_declarations = false
21+
ij_java_align_multiline_annotation_parameters = false
22+
ij_java_align_multiline_array_initializer_expression = false
23+
ij_java_align_multiline_assignment = false
24+
ij_java_align_multiline_binary_operation = false
25+
ij_java_align_multiline_chained_methods = false
26+
ij_java_align_multiline_extends_list = false
27+
ij_java_align_multiline_for = true
28+
ij_java_align_multiline_method_parentheses = false
29+
ij_java_align_multiline_parameters = true
30+
ij_java_align_multiline_parameters_in_calls = false
31+
ij_java_align_multiline_parenthesized_expression = false
32+
ij_java_align_multiline_records = true
33+
ij_java_align_multiline_resources = true
34+
ij_java_align_multiline_ternary_operation = false
35+
ij_java_align_multiline_text_blocks = false
36+
ij_java_align_multiline_throws_list = false
37+
ij_java_align_subsequent_simple_methods = false
38+
ij_java_align_throws_keyword = false
39+
ij_java_annotation_parameter_wrap = off
40+
ij_java_array_initializer_new_line_after_left_brace = false
41+
ij_java_array_initializer_right_brace_on_new_line = false
42+
ij_java_array_initializer_wrap = off
43+
ij_java_assert_statement_colon_on_next_line = false
44+
ij_java_assert_statement_wrap = off
45+
ij_java_assignment_wrap = off
46+
ij_java_binary_operation_sign_on_next_line = false
47+
ij_java_binary_operation_wrap = off
48+
ij_java_blank_lines_after_anonymous_class_header = 0
49+
ij_java_blank_lines_after_class_header = 0
50+
ij_java_blank_lines_after_imports = 1
51+
ij_java_blank_lines_after_package = 1
52+
ij_java_blank_lines_around_class = 1
53+
ij_java_blank_lines_around_field = 0
54+
ij_java_blank_lines_around_field_in_interface = 0
55+
ij_java_blank_lines_around_initializer = 1
56+
ij_java_blank_lines_around_method = 1
57+
ij_java_blank_lines_around_method_in_interface = 1
58+
ij_java_blank_lines_before_class_end = 0
59+
ij_java_blank_lines_before_imports = 1
60+
ij_java_blank_lines_before_method_body = 0
61+
ij_java_blank_lines_before_package = 0
62+
ij_java_block_brace_style = end_of_line
63+
ij_java_block_comment_at_first_column = true
64+
ij_java_call_parameters_new_line_after_left_paren = false
65+
ij_java_call_parameters_right_paren_on_new_line = false
66+
ij_java_call_parameters_wrap = off
67+
ij_java_case_statement_on_separate_line = true
68+
ij_java_catch_on_new_line = false
69+
ij_java_class_annotation_wrap = split_into_lines
70+
ij_java_class_brace_style = end_of_line
71+
ij_java_class_count_to_use_import_on_demand = 5
72+
ij_java_class_names_in_javadoc = 1
73+
ij_java_do_not_indent_top_level_class_members = false
74+
ij_java_do_not_wrap_after_single_annotation = false
75+
ij_java_do_while_brace_force = never
76+
ij_java_doc_add_blank_line_after_description = true
77+
ij_java_doc_add_blank_line_after_param_comments = false
78+
ij_java_doc_add_blank_line_after_return = false
79+
ij_java_doc_add_p_tag_on_empty_lines = true
80+
ij_java_doc_align_exception_comments = true
81+
ij_java_doc_align_param_comments = true
82+
ij_java_doc_do_not_wrap_if_one_line = false
83+
ij_java_doc_enable_formatting = true
84+
ij_java_doc_enable_leading_asterisks = true
85+
ij_java_doc_indent_on_continuation = false
86+
ij_java_doc_keep_empty_lines = true
87+
ij_java_doc_keep_empty_parameter_tag = true
88+
ij_java_doc_keep_empty_return_tag = true
89+
ij_java_doc_keep_empty_throws_tag = true
90+
ij_java_doc_keep_invalid_tags = true
91+
ij_java_doc_param_description_on_new_line = false
92+
ij_java_doc_preserve_line_breaks = false
93+
ij_java_doc_use_throws_not_exception_tag = true
94+
ij_java_else_on_new_line = false
95+
ij_java_enum_constants_wrap = off
96+
ij_java_extends_keyword_wrap = off
97+
ij_java_extends_list_wrap = off
98+
ij_java_field_annotation_wrap = split_into_lines
99+
ij_java_finally_on_new_line = false
100+
ij_java_for_brace_force = never
101+
ij_java_for_statement_new_line_after_left_paren = false
102+
ij_java_for_statement_right_paren_on_new_line = false
103+
ij_java_for_statement_wrap = off
104+
ij_java_generate_final_locals = false
105+
ij_java_generate_final_parameters = false
106+
ij_java_if_brace_force = never
107+
ij_java_imports_layout = java.**, |, javax.**, |, com..**, |, *, |, $*, |
108+
ij_java_indent_case_from_switch = true
109+
ij_java_insert_inner_class_imports = false
110+
ij_java_insert_override_annotation = true
111+
ij_java_keep_blank_lines_before_right_brace = 2
112+
ij_java_keep_blank_lines_between_package_declaration_and_header = 2
113+
ij_java_keep_blank_lines_in_code = 2
114+
ij_java_keep_blank_lines_in_declarations = 2
115+
ij_java_keep_control_statement_in_one_line = true
116+
ij_java_keep_first_column_comment = true
117+
ij_java_keep_indents_on_empty_lines = false
118+
ij_java_keep_line_breaks = true
119+
ij_java_keep_multiple_expressions_in_one_line = false
120+
ij_java_keep_simple_blocks_in_one_line = false
121+
ij_java_keep_simple_classes_in_one_line = false
122+
ij_java_keep_simple_lambdas_in_one_line = false
123+
ij_java_keep_simple_methods_in_one_line = false
124+
ij_java_label_indent_absolute = false
125+
ij_java_label_indent_size = 0
126+
ij_java_lambda_brace_style = end_of_line
127+
ij_java_layout_static_imports_separately = true
128+
ij_java_line_comment_add_space = false
129+
ij_java_line_comment_at_first_column = true
130+
ij_java_method_annotation_wrap = split_into_lines
131+
ij_java_method_brace_style = end_of_line
132+
ij_java_method_call_chain_wrap = off
133+
ij_java_method_parameters_new_line_after_left_paren = false
134+
ij_java_method_parameters_right_paren_on_new_line = false
135+
ij_java_method_parameters_wrap = off
136+
ij_java_modifier_list_wrap = false
137+
ij_java_names_count_to_use_import_on_demand = 3
138+
ij_java_new_line_after_lparen_in_record_header = false
139+
ij_java_packages_to_use_import_on_demand = java.awt.*, javax.swing.*
140+
ij_java_parameter_annotation_wrap = off
141+
ij_java_parentheses_expression_new_line_after_left_paren = false
142+
ij_java_parentheses_expression_right_paren_on_new_line = false
143+
ij_java_place_assignment_sign_on_next_line = false
144+
ij_java_prefer_longer_names = true
145+
ij_java_prefer_parameters_wrap = false
146+
ij_java_record_components_wrap = normal
147+
ij_java_repeat_synchronized = true
148+
ij_java_replace_instanceof_and_cast = false
149+
ij_java_replace_null_check = true
150+
ij_java_replace_sum_lambda_with_method_ref = true
151+
ij_java_resource_list_new_line_after_left_paren = false
152+
ij_java_resource_list_right_paren_on_new_line = false
153+
ij_java_resource_list_wrap = off
154+
ij_java_rparen_on_new_line_in_record_header = false
155+
ij_java_space_after_closing_angle_bracket_in_type_argument = false
156+
ij_java_space_after_colon = true
157+
ij_java_space_after_comma = true
158+
ij_java_space_after_comma_in_type_arguments = true
159+
ij_java_space_after_for_semicolon = true
160+
ij_java_space_after_quest = true
161+
ij_java_space_after_type_cast = true
162+
ij_java_space_before_annotation_array_initializer_left_brace = false
163+
ij_java_space_before_annotation_parameter_list = false
164+
ij_java_space_before_array_initializer_left_brace = false
165+
ij_java_space_before_catch_keyword = true
166+
ij_java_space_before_catch_left_brace = true
167+
ij_java_space_before_catch_parentheses = true
168+
ij_java_space_before_class_left_brace = true
169+
ij_java_space_before_colon = true
170+
ij_java_space_before_colon_in_foreach = true
171+
ij_java_space_before_comma = false
172+
ij_java_space_before_do_left_brace = true
173+
ij_java_space_before_else_keyword = true
174+
ij_java_space_before_else_left_brace = true
175+
ij_java_space_before_finally_keyword = true
176+
ij_java_space_before_finally_left_brace = true
177+
ij_java_space_before_for_left_brace = true
178+
ij_java_space_before_for_parentheses = true
179+
ij_java_space_before_for_semicolon = false
180+
ij_java_space_before_if_left_brace = true
181+
ij_java_space_before_if_parentheses = true
182+
ij_java_space_before_method_call_parentheses = false
183+
ij_java_space_before_method_left_brace = true
184+
ij_java_space_before_method_parentheses = false
185+
ij_java_space_before_opening_angle_bracket_in_type_parameter = false
186+
ij_java_space_before_quest = true
187+
ij_java_space_before_switch_left_brace = true
188+
ij_java_space_before_switch_parentheses = true
189+
ij_java_space_before_synchronized_left_brace = true
190+
ij_java_space_before_synchronized_parentheses = true
191+
ij_java_space_before_try_left_brace = true
192+
ij_java_space_before_try_parentheses = true
193+
ij_java_space_before_type_parameter_list = false
194+
ij_java_space_before_while_keyword = true
195+
ij_java_space_before_while_left_brace = true
196+
ij_java_space_before_while_parentheses = true
197+
ij_java_space_inside_one_line_enum_braces = false
198+
ij_java_space_within_empty_array_initializer_braces = false
199+
ij_java_space_within_empty_method_call_parentheses = false
200+
ij_java_space_within_empty_method_parentheses = false
201+
ij_java_spaces_around_additive_operators = true
202+
ij_java_spaces_around_assignment_operators = true
203+
ij_java_spaces_around_bitwise_operators = true
204+
ij_java_spaces_around_equality_operators = true
205+
ij_java_spaces_around_lambda_arrow = true
206+
ij_java_spaces_around_logical_operators = true
207+
ij_java_spaces_around_method_ref_dbl_colon = false
208+
ij_java_spaces_around_multiplicative_operators = true
209+
ij_java_spaces_around_relational_operators = true
210+
ij_java_spaces_around_shift_operators = true
211+
ij_java_spaces_around_type_bounds_in_type_parameters = true
212+
ij_java_spaces_around_unary_operator = false
213+
ij_java_spaces_within_angle_brackets = false
214+
ij_java_spaces_within_annotation_parentheses = false
215+
ij_java_spaces_within_array_initializer_braces = false
216+
ij_java_spaces_within_braces = false
217+
ij_java_spaces_within_brackets = false
218+
ij_java_spaces_within_cast_parentheses = false
219+
ij_java_spaces_within_catch_parentheses = false
220+
ij_java_spaces_within_for_parentheses = false
221+
ij_java_spaces_within_if_parentheses = false
222+
ij_java_spaces_within_method_call_parentheses = false
223+
ij_java_spaces_within_method_parentheses = false
224+
ij_java_spaces_within_parentheses = false
225+
ij_java_spaces_within_record_header = false
226+
ij_java_spaces_within_switch_parentheses = false
227+
ij_java_spaces_within_synchronized_parentheses = false
228+
ij_java_spaces_within_try_parentheses = false
229+
ij_java_spaces_within_while_parentheses = false
230+
ij_java_special_else_if_treatment = true
231+
ij_java_subclass_name_suffix = Impl
232+
ij_java_ternary_operation_signs_on_next_line = false
233+
ij_java_ternary_operation_wrap = off
234+
ij_java_test_name_suffix = Test
235+
ij_java_throws_keyword_wrap = off
236+
ij_java_throws_list_wrap = off
237+
ij_java_use_external_annotations = false
238+
ij_java_use_fq_class_names = false
239+
ij_java_use_relative_indents = false
240+
ij_java_use_single_class_imports = true
241+
ij_java_variable_annotation_wrap = off
242+
ij_java_visibility = public
243+
ij_java_while_brace_force = never
244+
ij_java_while_on_new_line = false
245+
ij_java_wrap_comments = false
246+
ij_java_wrap_first_method_in_call_chain = false
247+
ij_java_wrap_long_lines = false
248+
249+
[*.properties]
250+
ij_properties_align_group_field_declarations = false
251+
ij_properties_keep_blank_lines = false
252+
ij_properties_key_value_delimiter = equals
253+
ij_properties_spaces_around_key_value_delimiter = false
254+
255+
[.editorconfig]
256+
ij_editorconfig_align_group_field_declarations = false
257+
ij_editorconfig_space_after_colon = false
258+
ij_editorconfig_space_after_comma = true
259+
ij_editorconfig_space_before_colon = false
260+
ij_editorconfig_space_before_comma = false
261+
ij_editorconfig_spaces_around_assignment_operators = true
262+
263+
264+
[{*.har, *.json}]
265+
indent_size = 2
266+
ij_json_keep_blank_lines_in_code = 0
267+
ij_json_keep_indents_on_empty_lines = false
268+
ij_json_keep_line_breaks = true
269+
ij_json_space_after_colon = true
270+
ij_json_space_after_comma = true
271+
ij_json_space_before_colon = true
272+
ij_json_space_before_comma = false
273+
ij_json_spaces_within_braces = false
274+
ij_json_spaces_within_brackets = false
275+
ij_json_wrap_long_lines = false
276+
277+
[{*.markdown, *.md}]
278+
ij_markdown_force_one_space_after_blockquote_symbol = true
279+
ij_markdown_force_one_space_after_header_symbol = true
280+
ij_markdown_force_one_space_after_list_bullet = true
281+
ij_markdown_force_one_space_between_words = true
282+
ij_markdown_keep_indents_on_empty_lines = false
283+
ij_markdown_max_lines_around_block_elements = 1
284+
ij_markdown_max_lines_around_header = 1
285+
ij_markdown_max_lines_between_paragraphs = 1
286+
ij_markdown_min_lines_around_block_elements = 1
287+
ij_markdown_min_lines_around_header = 1
288+
ij_markdown_min_lines_between_paragraphs = 1
289+
290+
[{*.yaml, *.yml}]
291+
indent_size = 2
292+
ij_yaml_align_values_properties = do_not_align
293+
ij_yaml_autoinsert_sequence_marker = true
294+
ij_yaml_block_mapping_on_new_line = false
295+
ij_yaml_indent_sequence_value = true
296+
ij_yaml_keep_indents_on_empty_lines = false
297+
ij_yaml_keep_line_breaks = true
298+
ij_yaml_sequence_on_new_line = false
299+
ij_yaml_space_before_colon = false
300+
ij_yaml_spaces_within_braces = true
301+
ij_yaml_spaces_within_brackets = true

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ java-cosmos is a client for Azure CosmosDB 's SQL API (also called documentdb fo
2929
<dependency>
3030
<groupId>com.github.thunderz99</groupId>
3131
<artifactId>java-cosmos</artifactId>
32-
<version>0.2.22</version>
32+
<version>0.2.23</version>
3333
</dependency>
3434

3535
```
@@ -105,6 +105,10 @@ db.upsert("Collection1", new User("id011", "Tom", "Banks"), "Users");
105105
var cosmos = new Cosmos(System.getenv("YOUR_CONNECTION_STRING"));
106106
var db = cosmos.createIfNotExist("Database1", "Collection1");
107107
db.upsert("Collection1", new User("id011", "Tom", "Banks"))
108+
109+
// create a collection with uniqueIndexPolicy
110+
var uniqueKeyPolicy = Cosmos.getUniqueKeyPolicy(Set.of("/_uniqueKey1", "/_uniqueKey2"));
111+
var db = cosmos.createIfNotExist("Database1", "Collection2", uniqueKeyPolicy);
108112

109113
```
110114

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<groupId>com.github.thunderz99</groupId>
55
<artifactId>java-cosmos</artifactId>
66
<packaging>jar</packaging>
7-
<version>0.2.22</version>
7+
<version>0.2.23</version>
88
<name>${project.groupId}:${project.artifactId}$</name>
99
<description>A lightweight Azure CosmosDB client for Java</description>
1010
<url>https://github.com/thunderz99/java-cosmos</url>

0 commit comments

Comments
 (0)