All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy