File tree 4 files changed +161
-0
lines changed
src/main/java/org/soujava/demos/arangodb/document
4 files changed +161
-0
lines changed Original file line number Diff line number Diff line change
1
+ package org .soujava .demos .arangodb .document ;
2
+
3
+ import jakarta .nosql .Column ;
4
+ import jakarta .nosql .DiscriminatorValue ;
5
+ import jakarta .nosql .Entity ;
6
+ import net .datafaker .Faker ;
7
+
8
+ import java .util .UUID ;
9
+
10
+ @ Entity
11
+ @ DiscriminatorValue ("AWS" )
12
+ public class AWSCloudProvider extends CloudProvider {
13
+
14
+
15
+ @ Column
16
+ private String accountId ;
17
+
18
+ public String getAccountId () {
19
+ return accountId ;
20
+ }
21
+
22
+ @ Override
23
+ public String toString () {
24
+ return "AWSCloudProvider{" +
25
+ "accountId='" + accountId + '\'' +
26
+ ", id='" + id + '\'' +
27
+ ", region='" + region + '\'' +
28
+ '}' ;
29
+ }
30
+
31
+ public static AWSCloudProvider of (Faker faker ) {
32
+ var aws = faker .aws ();
33
+ var cloudProvider = new AWSCloudProvider ();
34
+ cloudProvider .region = aws .region ();
35
+ cloudProvider .region = aws .region ();
36
+ cloudProvider .id = UUID .randomUUID ().toString ();
37
+ cloudProvider .accountId = aws .accountId ();
38
+ return cloudProvider ;
39
+ }
40
+
41
+
42
+ }
Original file line number Diff line number Diff line change
1
+ /*
2
+ * Copyright (c) 2022 Contributors to the Eclipse Foundation
3
+ * All rights reserved. This program and the accompanying materials
4
+ * are made available under the terms of the Eclipse Public License v1.0
5
+ * and Apache License v2.0 which accompanies this distribution.
6
+ * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
7
+ * and the Apache License v2.0 is available at http://www.opensource.org/licenses/apache2.0.php.
8
+ *
9
+ * You may elect to redistribute this code under either of these licenses.
10
+ */
11
+
12
+ package org .soujava .demos .arangodb .document ;
13
+
14
+
15
+ import jakarta .enterprise .inject .se .SeContainer ;
16
+ import jakarta .enterprise .inject .se .SeContainerInitializer ;
17
+ import net .datafaker .Faker ;
18
+ import org .eclipse .jnosql .mapping .document .DocumentTemplate ;
19
+
20
+ import java .util .List ;
21
+ import java .util .logging .Logger ;
22
+
23
+
24
+ public class App {
25
+
26
+ private static final Logger LOGGER = Logger .getLogger (App .class .getName ());
27
+
28
+ public static void main (String [] args ) {
29
+ var faker = new Faker ();
30
+ LOGGER .info ("Starting the application" );
31
+ try (SeContainer container = SeContainerInitializer .newInstance ().initialize ()) {
32
+ var template = container .select (DocumentTemplate .class ).get ();
33
+ LOGGER .info ("Creating 10 documents" );
34
+ for (int index = 0 ; index < 5 ; index ++) {
35
+ template .insert (List .of (AWSCloudProvider .of (faker ), AzureCloudProvider .of (faker )));
36
+ }
37
+ template .select (CloudProvider .class ).stream ().forEach (System .out ::println );
38
+ }
39
+ }
40
+
41
+ private App () {
42
+ }
43
+ }
Original file line number Diff line number Diff line change
1
+ package org .soujava .demos .arangodb .document ;
2
+
3
+ import jakarta .nosql .Column ;
4
+ import jakarta .nosql .DiscriminatorValue ;
5
+ import jakarta .nosql .Entity ;
6
+ import net .datafaker .Faker ;
7
+
8
+ import java .util .UUID ;
9
+
10
+ @ Entity
11
+ @ DiscriminatorValue ("AZURE" )
12
+ public class AzureCloudProvider extends CloudProvider {
13
+
14
+
15
+ @ Column
16
+ private String tenantId ;
17
+
18
+ public String getTenantId () {
19
+ return tenantId ;
20
+ }
21
+
22
+ @ Override
23
+ public String toString () {
24
+ return "AzureCloudProvider{" +
25
+ "tenantId='" + tenantId + '\'' +
26
+ ", id='" + id + '\'' +
27
+ ", region='" + region + '\'' +
28
+ '}' ;
29
+ }
30
+
31
+ public static AzureCloudProvider of (Faker faker ) {
32
+ var azure = faker .azure ();
33
+ var cloudProvider = new AzureCloudProvider ();
34
+ cloudProvider .region = azure .region ();
35
+ cloudProvider .region = azure .region ();
36
+ cloudProvider .id = UUID .randomUUID ().toString ();
37
+ cloudProvider .tenantId = azure .tenantId ();
38
+ return cloudProvider ;
39
+ }
40
+ }
Original file line number Diff line number Diff line change
1
+ package org .soujava .demos .arangodb .document ;
2
+
3
+ import jakarta .nosql .Column ;
4
+ import jakarta .nosql .DiscriminatorColumn ;
5
+ import jakarta .nosql .Entity ;
6
+ import jakarta .nosql .Id ;
7
+ import jakarta .nosql .Inheritance ;
8
+
9
+ import java .util .Objects ;
10
+
11
+ @ Entity
12
+ @ Inheritance
13
+ @ DiscriminatorColumn ("type" )
14
+ public class CloudProvider {
15
+
16
+ @ Id
17
+ protected String id ;
18
+
19
+ @ Column
20
+ protected String region ;
21
+
22
+
23
+ @ Override
24
+ public boolean equals (Object o ) {
25
+ if (o == null || getClass () != o .getClass ()) {
26
+ return false ;
27
+ }
28
+ CloudProvider that = (CloudProvider ) o ;
29
+ return Objects .equals (id , that .id );
30
+ }
31
+
32
+ @ Override
33
+ public int hashCode () {
34
+ return Objects .hashCode (id );
35
+ }
36
+ }
You can’t perform that action at this time.
0 commit comments