Class NodeUtil


  • public class NodeUtil
    extends Object
    Служебный класс для работы со связкой объектов модели и соответствующих им узлов в parse-tree
    EObject <-> INode
    • Constructor Summary

      Constructors 
      Constructor Description
      NodeUtil()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static void attachEObjectToNode​(org.eclipse.emf.ecore.EObject eObject, INode node)
      Осуществляет привязку eObject к node
      static void attachFeatureToNode​(org.eclipse.emf.ecore.EObject eObject, org.eclipse.emf.ecore.EStructuralFeature feature, INode node)
      Осуществляет привязку структуральной фичи feature объекта eObject к node
      static void detachFeatureFromNode​(org.eclipse.emf.ecore.EObject eObject, org.eclipse.emf.ecore.EStructuralFeature feature)
      Удаляет привязку структуральной фичи feature объекта eObject ко всем нодам
      static Object getAssocNodesByObjectFeature​(org.eclipse.emf.ecore.EObject eObject, org.eclipse.emf.ecore.EStructuralFeature feature)
      Метод для получения узла(ов) из parse-tree для структуральной фичи feature объекта eObject
      static List<ErrorNode> getErrorNodes​(XmlException exception)
      Возвращает ErrorNode узлы parse-tree содержащие координаты в, которых возникла исключительная ситуация
      static INode getNodeByEObject​(org.eclipse.emf.ecore.EObject eObject)
      Метод для получения узла из parse-tree для объекта модели eObject
      static INode getNodeByObjectFeature​(org.eclipse.emf.ecore.EObject eObject, org.eclipse.emf.ecore.EStructuralFeature feature)
      Метод для получения узла из parse-tree для структуральной фичи feature объекта eObject
      static INode getNodeByObjectFeature​(org.eclipse.emf.ecore.EObject eObject, org.eclipse.emf.ecore.EStructuralFeature feature, int index)
      Метод для получения узла из parse-tree для структуральной фичи feature объекта eObject с индексом index
      static INode getNodeByObjectFeatureValue​(org.eclipse.emf.ecore.EObject eObject, org.eclipse.emf.ecore.EStructuralFeature feature, org.eclipse.emf.ecore.EObject value)
      Метод для получения узла из parse-tree для структуральной фичи feature объекта eObject со значением value
      static INode getNodeByOffset​(INode rootNode, int offset)
      Возвращает узел со смещением offset в parse-tree с корнем rootNode
      static List<INode> getNodesByLineNumber​(INode rootNode, int lineNumber)
      Возвращает список узлов parse-tree с корнем rootNode, расположенных на строке №lineNumber
      static List<INode> getNodesByObjectFeature​(org.eclipse.emf.ecore.EObject eObject, org.eclipse.emf.ecore.EStructuralFeature feature)
      Метод для получения списка узлов из parse-tree для multi-valued структуральной фичи
      static String getNodeText​(INode node)  
      static Location getTagNameLocation​(INode node)
      Возвращает координаты открывающего тэга для узла parse-tree
      static INode getTreeRoot​(INode node)  
    • Constructor Detail

      • NodeUtil

        public NodeUtil()
    • Method Detail

      • attachEObjectToNode

        public static void attachEObjectToNode​(org.eclipse.emf.ecore.EObject eObject,
                                               INode node)
        Осуществляет привязку eObject к node
        Parameters:
        eObject - объект модели
        node - узел в parse-tree
      • attachFeatureToNode

        public static void attachFeatureToNode​(org.eclipse.emf.ecore.EObject eObject,
                                               org.eclipse.emf.ecore.EStructuralFeature feature,
                                               INode node)
        Осуществляет привязку структуральной фичи feature объекта eObject к node
        Parameters:
        eObject - объект модели
        feature - атрибут объекта eObject
        node - узел в parse-tree
      • detachFeatureFromNode

        public static void detachFeatureFromNode​(org.eclipse.emf.ecore.EObject eObject,
                                                 org.eclipse.emf.ecore.EStructuralFeature feature)
        Удаляет привязку структуральной фичи feature объекта eObject ко всем нодам
        Parameters:
        eObject - объект модели
        feature - атрибут объекта eObject
      • getNodeByEObject

        public static INode getNodeByEObject​(org.eclipse.emf.ecore.EObject eObject)
        Метод для получения узла из parse-tree для объекта модели eObject
        Parameters:
        eObject - объект модели
        Returns:
        узел из parse-tree для объекта модели или null, если для данного объекта нет узла в дереве
      • getAssocNodesByObjectFeature

        public static Object getAssocNodesByObjectFeature​(org.eclipse.emf.ecore.EObject eObject,
                                                          org.eclipse.emf.ecore.EStructuralFeature feature)
        Метод для получения узла(ов) из parse-tree для структуральной фичи feature объекта eObject
        Parameters:
        eObject - объект модели
        feature - структуральная фича объекта eObject
        Returns:
      • узел из parse-tree для структуральной фичи объекта модели
      • список узлов, если структуральная фича multi-valued
      • null, если для данной фичи нет узла(ов) в дереве
      • getNodeByObjectFeature

        public static INode getNodeByObjectFeature​(org.eclipse.emf.ecore.EObject eObject,
                                                   org.eclipse.emf.ecore.EStructuralFeature feature)
        Метод для получения узла из parse-tree для структуральной фичи feature объекта eObject
        Parameters:
        eObject - объект модели
        feature - структуральная фича объекта eObject
        Returns:
      • узел из parse-tree для структуральной фичи объекта модели
      • null, если для данной фичи нет узла(ов) в дереве или структуральная фича single-valued
      • getNodeByObjectFeature

        public static INode getNodeByObjectFeature​(org.eclipse.emf.ecore.EObject eObject,
                                                   org.eclipse.emf.ecore.EStructuralFeature feature,
                                                   int index)
        Метод для получения узла из parse-tree для структуральной фичи feature объекта eObject с индексом index
        Parameters:
        eObject - объект модели
        feature - структуральная фича объекта eObject
        index - номер в списке узлов, если фича multi-valued данный параметр не учитывается
        Returns:
      • узел из parse-tree для структуральной фичи объекта модели
      • узел из parse-tree с индексом index для multi-valued структуральной фичи объекта модели
      • null, если для данной фичи нет узла(ов) в дереве
      • getNodeByObjectFeatureValue

        public static INode getNodeByObjectFeatureValue​(org.eclipse.emf.ecore.EObject eObject,
                                                        org.eclipse.emf.ecore.EStructuralFeature feature,
                                                        org.eclipse.emf.ecore.EObject value)
        Метод для получения узла из parse-tree для структуральной фичи feature объекта eObject со значением value
      • getNodesByObjectFeature

        public static List<INode> getNodesByObjectFeature​(org.eclipse.emf.ecore.EObject eObject,
                                                          org.eclipse.emf.ecore.EStructuralFeature feature)
        Метод для получения списка узлов из parse-tree для multi-valued структуральной фичи
        Parameters:
        eObject - объект модели
        feature - структуральная фича объекта eObject
        Returns:
      • список узлов из parse-tree для multi-valued структуральной фичи,
      • список из одного элемента, если фича не multi-valued вернет
      • null, если для данной фичи нет узла(ов) в дереве
      • getTagNameLocation

        public static Location getTagNameLocation​(INode node)
        Возвращает координаты открывающего тэга для узла parse-tree
        Parameters:
        node - узел parse-tree. не может быть null
        Returns:
        Location. не может быть null
      • getErrorNodes

        public static List<ErrorNode> getErrorNodes​(XmlException exception)
        Возвращает ErrorNode узлы parse-tree содержащие координаты в, которых возникла исключительная ситуация
        Parameters:
        exception -
        Returns:
        List<ErrorNode>. Не может быть null
      • getNodeText

        public static String getNodeText​(INode node)
      • getTreeRoot

        public static INode getTreeRoot​(INode node)
      • getNodeByOffset

        public static INode getNodeByOffset​(INode rootNode,
                                            int offset)
        Возвращает узел со смещением offset в parse-tree с корнем rootNode
        Parameters:
        rootNode - кореневой узел parse-tree. Не может быть null
        offset - смещение
        Returns:
        INode
      • getNodesByLineNumber

        public static List<INode> getNodesByLineNumber​(INode rootNode,
                                                       int lineNumber)
        Возвращает список узлов parse-tree с корнем rootNode, расположенных на строке №lineNumber
        Parameters:
        rootNode - кореневой узел parse-tree
        lineNumber - номер строки
        Returns:
        List<INode>. Не может быть null