git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/Common/storagehub-model@167115 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
e58ef0f251
commit
fdbc419887
|
@ -0,0 +1,5 @@
|
|||
package org.gcube.common.storagehub.model.expressions;
|
||||
|
||||
public interface Expression<T> {
|
||||
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package org.gcube.common.storagehub.model.expressions;
|
||||
|
||||
import java.util.Calendar;
|
||||
|
||||
import org.gcube.common.storagehub.model.items.Item;
|
||||
|
||||
public class GenericSearchableItem extends SearchableItem<Item>{
|
||||
|
||||
private static GenericSearchableItem item = new GenericSearchableItem();
|
||||
|
||||
public static GenericSearchableItem get() {
|
||||
return item;
|
||||
}
|
||||
|
||||
protected GenericSearchableItem() {
|
||||
super(Item.class);
|
||||
}
|
||||
|
||||
public final SearchableField<String> title = new SearchableField<String>(String.class, "jcr:title");
|
||||
|
||||
public final SearchableField<Calendar> lastModification = new SearchableField<Calendar>(Calendar.class, "jcr:lastModified");
|
||||
|
||||
public final SearchableField<Calendar> creationTime = new SearchableField<Calendar>(Calendar.class, "jcr:created");
|
||||
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
package org.gcube.common.storagehub.model.expressions;
|
||||
|
||||
public final class SearchableField<T> {
|
||||
|
||||
private Class<T> type;
|
||||
|
||||
private String name;
|
||||
|
||||
protected SearchableField(Class<T> _class, String name) {
|
||||
this.type = _class;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "[" + name +"]";
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
package org.gcube.common.storagehub.model.expressions;
|
||||
|
||||
import org.gcube.common.storagehub.model.items.Item;
|
||||
|
||||
public class SearchableItem<T extends Item> {
|
||||
|
||||
Class<T> type;
|
||||
|
||||
protected SearchableItem(Class<T> _class){
|
||||
this.type = _class;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
package org.gcube.common.storagehub.model.expressions.date;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
|
||||
import org.gcube.common.storagehub.model.expressions.Expression;
|
||||
import org.gcube.common.storagehub.model.expressions.SearchableField;
|
||||
|
||||
public class Before implements Expression<Boolean> {
|
||||
|
||||
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
|
||||
|
||||
private SearchableField<Calendar> searchableField;
|
||||
private Calendar value;
|
||||
|
||||
public Before(SearchableField<Calendar> searchableField, Calendar value) {
|
||||
super();
|
||||
this.searchableField = searchableField;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public SearchableField<Calendar> getSearchableField() {
|
||||
return searchableField;
|
||||
}
|
||||
|
||||
public Calendar getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Before [searchableField=" + searchableField + ", value=" + dateFormat.format(value.getTime()) + "]";
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
package org.gcube.common.storagehub.model.expressions.logical;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.gcube.common.storagehub.model.expressions.Expression;
|
||||
|
||||
public class And implements Expression<Boolean>{
|
||||
|
||||
List<Expression<Boolean>> expressions = new ArrayList<>();
|
||||
|
||||
public And(Expression<Boolean> first , Expression<Boolean> second , Expression<Boolean> ... others ) {
|
||||
expressions = Arrays.asList(first, second);
|
||||
if (others !=null && others.length>0)
|
||||
expressions.addAll(Arrays.asList(others));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "And [" + expressions.stream().map(Object::toString).collect(Collectors.joining(",")).toString() + "]";
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
package org.gcube.common.storagehub.model.expressions.logical;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.gcube.common.storagehub.model.expressions.Expression;
|
||||
|
||||
public class Or implements Expression<Boolean>{
|
||||
|
||||
List<Expression<Boolean>> expressions = new ArrayList<>();
|
||||
|
||||
public Or(Expression<Boolean> first , Expression<Boolean> second , Expression<Boolean> ... others ) {
|
||||
expressions = Arrays.asList(first, second);
|
||||
if (others !=null && others.length>0)
|
||||
expressions.addAll(Arrays.asList(others));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Or [" + expressions.stream().map(Object::toString).collect(Collectors.joining(",")).toString() + "]";
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package org.gcube.common.storagehub.model.expressions.text;
|
||||
|
||||
|
||||
import org.gcube.common.storagehub.model.expressions.Expression;
|
||||
import org.gcube.common.storagehub.model.expressions.SearchableField;
|
||||
|
||||
public class Contains implements Expression<Boolean> {
|
||||
|
||||
private SearchableField<String> searchableField;
|
||||
private String value;
|
||||
|
||||
public Contains(SearchableField<String> searchableField, String value) {
|
||||
super();
|
||||
this.searchableField = searchableField;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public SearchableField<String> getSearchableField() {
|
||||
return searchableField;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Contains [searchableField=" + searchableField + ", value=" + value + "]";
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
package org.gcube.storagehub.model.expressions;
|
||||
|
||||
import org.gcube.common.storagehub.model.expressions.Expression;
|
||||
import org.gcube.common.storagehub.model.expressions.GenericSearchableItem;
|
||||
import org.gcube.common.storagehub.model.expressions.text.Contains;
|
||||
import org.junit.Test;
|
||||
|
||||
public class ExpressionsTest {
|
||||
|
||||
|
||||
@Test
|
||||
public void contains() {
|
||||
Expression<Boolean> expr = new Contains(GenericSearchableItem.get().title, "Data");
|
||||
System.out.println( expr.toString());
|
||||
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue