eu.xenit.apix.search.nodes.SearchSyntaxNode Maven / Gradle / Ivy
package eu.xenit.apix.search.nodes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.databind.annotation.JsonTypeResolver;
import eu.xenit.apix.search.json.TypeResolver;
import eu.xenit.apix.search.visitors.ISearchSyntaxVisitor;
/**
* A search syntax node.
*/
// visible is set to true so that searchNodes can use the "nodeType" as a property
//@JsonTypeInfo(use = JsonTypeInfo.Id.CUSTOM)
@JsonTypeResolver(TypeResolver.class)
//@JsonDeserialize(using = SearchNodeDeserializer.class)
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.WRAPPER_OBJECT, visible = true, property = "nodeType")
/*@JsonSubTypes({@JsonSubTypes.Type(value=InvertSearchNode.class,name="not"),
@JsonSubTypes.Type(value=TermSearchNode.class,name="aspect")})*/
//@JsonIgnoreProperties(value = "nodeType",ignoreUnknown = true)
public interface SearchSyntaxNode {
public T accept(ISearchSyntaxVisitor visitor);
}