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

AnnotatedTree.ParseNodeSearchable Maven / Gradle / Ivy

package AnnotatedTree;

import AnnotatedSentence.ViewLayerType;
import ParseTree.ParseNode;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;

import java.util.ArrayList;

public class ParseNodeSearchable extends ParseNode {

    private ArrayList searchTypes;
    private ArrayList viewLayerTypes;
    private ArrayList searchValues;
    private boolean isLeaf = false;

    public ParseNodeSearchable(ParseNodeSearchable parent, Node node){
        NamedNodeMap attributes;
        Node child;
        children = new ArrayList();
        this.parent = parent;
        isLeaf = node.getNodeName().equalsIgnoreCase("leaf");
        searchTypes = new ArrayList<>();
        viewLayerTypes = new ArrayList<>();
        searchValues = new ArrayList<>();
        if (node.hasAttributes()){
            attributes = node.getAttributes();
            for (int i = 0; i < attributes.getLength(); i++){
                Node attribute = attributes.item(i);
                String viewLayerType = attribute.getNodeName().substring(0, 3);
                String searchType = attribute.getNodeName().substring(3);
                searchValues.add(attribute.getNodeValue());
                if (searchType.equalsIgnoreCase("equals")){
                    searchTypes.add(SearchType.EQUALS);
                } else {
                    if (searchType.equalsIgnoreCase("contains")){
                        searchTypes.add(SearchType.CONTAINS);
                    } else {
                        if (searchType.equalsIgnoreCase("matches")){
                            searchTypes.add(SearchType.MATCHES);
                        } else {
                            if (searchType.equalsIgnoreCase("starts")){
                                searchTypes.add(SearchType.STARTS);
                            } else {
                                if (searchType.equalsIgnoreCase("ends")){
                                    searchTypes.add(SearchType.ENDS);
                                } else {
                                    if (searchType.equalsIgnoreCase("equalsignorecase")){
                                        searchTypes.add(SearchType.EQUALS_IGNORE_CASE);
                                    } else {
                                        if (searchType.equalsIgnoreCase("isnull")){
                                            searchTypes.add(SearchType.IS_NULL);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                if (viewLayerType.equalsIgnoreCase("mor") || viewLayerType.equalsIgnoreCase("inf")){
                    viewLayerTypes.add(ViewLayerType.INFLECTIONAL_GROUP);
                } else {
                    if (viewLayerType.equalsIgnoreCase("tur")){
                        viewLayerTypes.add(ViewLayerType.TURKISH_WORD);
                    } else {
                        if (viewLayerType.equalsIgnoreCase("per")){
                            viewLayerTypes.add(ViewLayerType.PERSIAN_WORD);
                        } else {
                            if (viewLayerType.equalsIgnoreCase("eng")){
                                viewLayerTypes.add(ViewLayerType.ENGLISH_WORD);
                            } else {
                                if (viewLayerType.equalsIgnoreCase("ner")){
                                    viewLayerTypes.add(ViewLayerType.NER);
                                } else {
                                    if (viewLayerType.equalsIgnoreCase("sem") || viewLayerType.equalsIgnoreCase("tse")){
                                        viewLayerTypes.add(ViewLayerType.SEMANTICS);
                                    } else {
                                        if (viewLayerType.equalsIgnoreCase("met")){
                                            viewLayerTypes.add(ViewLayerType.META_MORPHEME);
                                        } else {
                                            if (viewLayerType.equalsIgnoreCase("pro")){
                                                viewLayerTypes.add(ViewLayerType.PROPBANK);
                                            } else {
                                                if (viewLayerType.equalsIgnoreCase("dep")){
                                                    viewLayerTypes.add(ViewLayerType.DEPENDENCY);
                                                } else {
                                                    if (viewLayerType.equalsIgnoreCase("sha") || viewLayerType.equalsIgnoreCase("chu")){
                                                        viewLayerTypes.add(ViewLayerType.SHALLOW_PARSE);
                                                    } else {
                                                        if (viewLayerType.equalsIgnoreCase("ese")){
                                                            viewLayerTypes.add(ViewLayerType.ENGLISH_SEMANTICS);
                                                        } else {
                                                            if (viewLayerType.equalsIgnoreCase("epr")){
                                                                viewLayerTypes.add(ViewLayerType.ENGLISH_PROPBANK);
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        child = node.getFirstChild();
        while (child != null){
            if (child.getNodeName().equalsIgnoreCase("node") || child.getNodeName().equalsIgnoreCase("leaf"))
                children.add(new ParseNodeSearchable(this, child));
            child = child.getNextSibling();
        }
    }

    public SearchType getType(int index){
        return searchTypes.get(index);
    }

    public String getValue(int index){
        return searchValues.get(index);
    }

    public ViewLayerType getViewLayerType(int index){
        return viewLayerTypes.get(index);
    }

    public boolean isLeaf(){
        return isLeaf;
    }

    public int size(){
        return searchValues.size();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy