59 lines
1.9 KiB
Java
59 lines
1.9 KiB
Java
package it.cavallium.strangedb.tests;
|
|
|
|
import it.cavallium.strangedb.java.annotations.DbDataType;
|
|
import it.cavallium.strangedb.java.annotations.DbField;
|
|
import it.cavallium.strangedb.java.database.IDatabaseTools;
|
|
import it.cavallium.strangedb.java.objects.EnhancedObject;
|
|
import it.cavallium.strangedb.java.objects.lists.EnhancedObjectStrangeDbList;
|
|
|
|
import java.io.IOException;
|
|
import java.util.Random;
|
|
import java.util.concurrent.*;
|
|
|
|
public class ListContainer extends EnhancedObject {
|
|
|
|
@DbField(id = 0, type = DbDataType.ENHANCED_OBJECT)
|
|
public EnhancedObjectStrangeDbList<User> usersList;
|
|
|
|
public ListContainer() {
|
|
}
|
|
|
|
public ListContainer(IDatabaseTools databaseTools, int count) throws IOException {
|
|
super(databaseTools);
|
|
this.usersList = new EnhancedObjectStrangeDbList<>(databaseTools, User.class);
|
|
Random random = new Random();
|
|
ExecutorService threadPool = Executors.newWorkStealingPool();
|
|
for (int i = 0; i < count; i++) {
|
|
threadPool.execute(() -> {
|
|
try {
|
|
User usr;
|
|
int randomInt = random.nextInt(2);
|
|
switch (randomInt) {
|
|
case 0:
|
|
usr = new User(databaseTools, "Rossi" + count + "Mario" + count, "the" + count + "_mariorossi99", "Long long big " + count + " giant bio mario rossi 99 abcdefghijklmnopqrstuvwxyz");
|
|
break;
|
|
case 1:
|
|
usr = new User(databaseTools, QueryTests.constantFirstName, QueryTests.constantUsername, QueryTests.constantBio);
|
|
break;
|
|
case 2:
|
|
usr = new User(databaseTools, QueryTests.constantFirstName, "b" + count + "a", QueryTests.constantBio);
|
|
break;
|
|
default:
|
|
throw new ArrayIndexOutOfBoundsException();
|
|
}
|
|
this.usersList.add(usr);
|
|
} catch (IOException ex) {
|
|
throw new CompletionException(ex);
|
|
}
|
|
});
|
|
}
|
|
threadPool.shutdown();
|
|
try {
|
|
threadPool.awaitTermination(Long.MAX_VALUE, TimeUnit.DAYS);
|
|
} catch (InterruptedException e) {
|
|
throw new IOException(e);
|
|
}
|
|
}
|
|
|
|
}
|