package se.unlogic.standardutils.dao;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class RelationQuery {
private List<Field> relations;
public RelationQuery() {}
public RelationQuery(List<Field> relations) {
this.relations = relations;
}
public RelationQuery(Field... relations) {
this.addRelations(relations);
}
public RelationQuery(RelationQuery relationQuery) {
this.addRelations(relationQuery);
}
public List<Field> getRelations() {
return relations;
}
// public Field[] getRelationsArray() {
//
// if(this.relations == null || this.relations.isEmpty()){
//
// return null;
// }
//
// return this.relations.toArray(new Field[relations.size()]);
// }
public void setRelations(List<Field> relations) {
this.relations = relations;
}
public synchronized void addRelation(Field relation){
if(this.relations == null){
this.relations = new ArrayList<Field>();
}
this.relations.add(relation);
}
public synchronized void addRelations(Field... relations){
if(this.relations == null){
this.relations = new ArrayList<Field>();
}
this.relations.addAll(Arrays.asList(relations));
}
public static boolean hasRelations(RelationQuery query){
if(query == null || query.getRelations() == null || query.getRelations().isEmpty()){
return false;
}
return true;
}
public void addRelations(RelationQuery relationQuery) {
if(hasRelations(relationQuery)){
this.addRelations(relationQuery.getRelations());
}
}
public void addRelations(List<Field> relations){
if(this.relations == null){
this.relations = relations;
}else{
this.relations.addAll(relations);
}
}
}