Commit 03ac9fa1 authored by Grzegorz Pietrusza's avatar Grzegorz Pietrusza

db object stub

parent 35de28f6
package objects;
import helpers.PublicProperty;
import objects.tasks.Task;
import java.lang.reflect.Field;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class DBObject
{
public static String[] getPublicFields(Class<Task> taskClass) //todo: do not use argument
{
//todo: get upper class
Field[] declaredFields = taskClass.getDeclaredFields(); //todo: declared or not declared?
List<String> publicFieldsNames = Stream.of(declaredFields)
.filter(field -> field.getAnnotation(PublicProperty.class) != null)
.map(Field::getName)
.collect(Collectors.toList());
return publicFieldsNames.toArray(new String[publicFieldsNames.size()]);
}
}
...@@ -3,6 +3,7 @@ package objects.tasks; ...@@ -3,6 +3,7 @@ package objects.tasks;
import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude;
import core.TaskType; import core.TaskType;
import helpers.PublicProperty; import helpers.PublicProperty;
import objects.DBObject;
import objects.Flag; import objects.Flag;
import org.bson.types.ObjectId; import org.bson.types.ObjectId;
import org.mongodb.morphia.annotations.Entity; import org.mongodb.morphia.annotations.Entity;
...@@ -15,7 +16,7 @@ import java.util.stream.Stream; ...@@ -15,7 +16,7 @@ import java.util.stream.Stream;
@Entity("tasks") @Entity("tasks")
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL)
public class Task public class Task extends DBObject
{ {
@Id @Id
private ObjectId id; private ObjectId id;
...@@ -27,19 +28,6 @@ public class Task ...@@ -27,19 +28,6 @@ public class Task
private List<Flag> flags; private List<Flag> flags;
private TaskContent taskContent; private TaskContent taskContent;
public static String[] getPublicFields()
{
//todo: move to db object?
//todo: move to task
Field[] declaredFields = Task.class.getDeclaredFields();
List<String> publicFieldsNames = Stream.of(declaredFields)
.filter(field -> field.getAnnotation(PublicProperty.class) != null)
.map(Field::getName)
.collect(Collectors.toList());
return publicFieldsNames.toArray(new String[publicFieldsNames.size()]);
}
public Task(String name, int level, TaskType type, List<Flag> flags, TaskContent taskContent) public Task(String name, int level, TaskType type, List<Flag> flags, TaskContent taskContent)
{ {
this.flags = flags; this.flags = flags;
......
...@@ -67,7 +67,7 @@ public class TasksRepository implements Repository ...@@ -67,7 +67,7 @@ public class TasksRepository implements Repository
public List<Task> getAllPublic() public List<Task> getAllPublic()
{ {
return datastore.createQuery(Task.class) return datastore.createQuery(Task.class)
.retrievedFields(true, Task.getPublicFields()) //todo: refactor .retrievedFields(true, Task.getPublicFields(Task.class)) //todo: refactor
.asList(); .asList();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment