// Path: amr2Fred/src/amr2fred/Glossary.java
// public static final int ENDLESS = 1000;
// 
// Path: amr2Fred/src/amr2fred/Glossary.java
// public static final String RECURSIVE_ERROR = " recursive error! ";
// 
// Path: amr2Fred/src/amr2fred/Glossary.java
// public enum NodeStatus {
//     OK, AMR, ERROR, REMOVE
// }
// 
// Path: amr2Fred/src/amr2fred/Glossary.java
// public enum NodeType {
//     NOUN, VERB, OTHER, AMR2FRED, FRED, COMMON
// }
// 
// Path: amr2Fred/src/amr2fred/Glossary.java
// public static final String AMR_INVERSE = ":+.+-of";


import static amr2fred.Glossary.ENDLESS;
import static amr2fred.Glossary.RECURSIVE_ERROR;
import amr2fred.Glossary.NodeStatus;
import static amr2fred.Glossary.NodeStatus.AMR;
import amr2fred.Glossary.NodeType;
import static amr2fred.Glossary.NodeType.OTHER;
import java.util.ArrayList;
import java.util.Objects;
import static amr2fred.Glossary.AMR_INVERSE;
import static amr2fred.Glossary.NodeStatus.REMOVE;
/*
 * Copyright (C) 2016 anto
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package amr2fred;


/**
 * Basic object for the data structure.
 *
 * @author anto
 */
public class Node {

    //usato per dare ad ogni nodo un identificativo univoco
    static int id;

    //informazione usata per la gestione dell'indentazione nel metodo toString()
    static int liv = 0;

    //valore ramo
    String relation;

    //valore foglia
    String var;

    //nodi collegati
    ArrayList<Node> list;

    //contiene lo stato di lavorazione del nodo - usato per verificare gli errori
    private NodeStatus status;

    //usato per distinguere la lavorazione da effettuare su ogni nodo 
    private NodeType type;

    //memorizza identificativo univoco del nodo
    private int nodeId;

    //memorizza la var originale nel caso sia un verbo, per l'uso con la predmatrix
// Path: amr2Fred/src/amr2fred/Glossary.java
// public static final int ENDLESS = 1000;
// 
// Path: amr2Fred/src/amr2fred/Glossary.java
// public static final String RECURSIVE_ERROR = " recursive error! ";
// 
// Path: amr2Fred/src/amr2fred/Glossary.java
// public enum NodeStatus {
//     OK, AMR, ERROR, REMOVE
// }
// 
// Path: amr2Fred/src/amr2fred/Glossary.java
// public enum NodeType {
//     NOUN, VERB, OTHER, AMR2FRED, FRED, COMMON
// }
// 
// Path: amr2Fred/src/amr2fred/Glossary.java
// public static final String AMR_INVERSE = ":+.+-of";


// Path: amr2Fred/src/amr2fred/Node.java
import static amr2fred.Glossary.ENDLESS;
import static amr2fred.Glossary.RECURSIVE_ERROR;
import amr2fred.Glossary.NodeStatus;
import static amr2fred.Glossary.NodeStatus.AMR;
import amr2fred.Glossary.NodeType;
import static amr2fred.Glossary.NodeType.OTHER;
import java.util.ArrayList;
import java.util.Objects;
import static amr2fred.Glossary.AMR_INVERSE;
import static amr2fred.Glossary.NodeStatus.REMOVE;

/*
 * Copyright (C) 2016 anto
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package amr2fred;


/**
 * Basic object for the data structure.
 *
 * @author anto
 */
public class Node {

    //usato per dare ad ogni nodo un identificativo univoco
    static int id;

    //informazione usata per la gestione dell'indentazione nel metodo toString()
    static int liv = 0;

    //valore ramo
    String relation;

    //valore foglia
    String var;

    //nodi collegati
    ArrayList<Node> list;

    //contiene lo stato di lavorazione del nodo - usato per verificare gli errori
    private NodeStatus status;

    //usato per distinguere la lavorazione da effettuare su ogni nodo 
    private NodeType type;

    //memorizza identificativo univoco del nodo
    private int nodeId;

    //memorizza la var originale nel caso sia un verbo, per l'uso con la predmatrix
    private String verb;