Class ModelTextUtil


  • public class ModelTextUtil
    extends Object
    Утилитный класс, содержащий полезные функции для работы с текстовыми представлениями моделей.
    • Constructor Summary

      Constructors 
      Constructor Description
      ModelTextUtil()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static EObjectFeature findEObjectFeatureForOffset​(org.eclipse.emf.ecore.EObject root, int offset)
      Нахождение ссылки, представленной как EObjectFeature в дереве с корнем root по смещению в тексте offset.
      static EObjectFeature findEObjectFeatureForOffset​(org.eclipse.emf.ecore.resource.Resource resource, int offset)
      Нахождение ссылки, представленной как EObjectFeature в EMF-ресурсе resource по смещению в тексте offset.
      static org.eclipse.emf.ecore.EObject findEObjectForOffset​(org.eclipse.emf.ecore.EObject root, int offset)
      Нахождение объекта модели в дереве, корень которого передан в параметре root по смещению в тексте offset.
      static org.eclipse.emf.ecore.EObject findEObjectForOffset​(org.eclipse.emf.ecore.resource.Resource resource, int offset)
      Нахождение объекта модели в EMF-ресурсе resource по смещению в тексте offset.
      static org.eclipse.emf.ecore.EObject findReferencedEObjectForOffset​(org.eclipse.emf.ecore.EObject root, int offset)
      Нахождение в дереве с корнем root объекта модели, ссылка на который содержится в тексте по смещению offset.
      static org.eclipse.emf.ecore.EObject findReferencedEObjectForOffset​(org.eclipse.emf.ecore.resource.Resource resource, int offset)
      Нахождение в EMF-ресурсе resource объекта модели, ссылка на который содержится в тексте по смещению offset.
      static INode getNode​(org.eclipse.emf.ecore.EObject eObject)
      Надежное получение узла AST INode, соответсвующего объекту EMF-модели.
      static INode getNode​(org.eclipse.emf.ecore.EObject eObject, org.eclipse.emf.ecore.EStructuralFeature eFeature)
      Надежное получение узла AST INode, соответсвующего значению single-valued EStructuralFeature объекта EMF-модели.
      static INode getNode​(org.eclipse.emf.ecore.EObject eObject, org.eclipse.emf.ecore.EStructuralFeature eFeature, int idx)
      Надежное получение узла AST INode, соответсвующего значению EStructuralFeature объекта EMF-модели.
      static TextLocation getTextLocation​(org.eclipse.emf.ecore.EObject eObject)
      Надежное получение TextLocation, соответсвующего объекту EMF-модели.
      static TextLocation getTextLocation​(org.eclipse.emf.ecore.EObject eObject, org.eclipse.emf.ecore.EStructuralFeature eFeature)
      Надежное получение TextLocation, соответсвующего значению single-valued EStructuralFeature объекта EMF-модели.
      static TextLocation getTextLocation​(org.eclipse.emf.ecore.EObject eObject, org.eclipse.emf.ecore.EStructuralFeature eFeature, int idx)
      Надежное получение TextLocation, соответсвующего значению EStructuralFeature объекта EMF-модели.
      static void visitNodes​(ITextResource resource, INodeVisitor visitor)
      Выполняет посещение каждого узла синтаксического дерева в EMF-ресурсе resource.
    • Constructor Detail

      • ModelTextUtil

        public ModelTextUtil()
    • Method Detail

      • getNode

        public static INode getNode​(org.eclipse.emf.ecore.EObject eObject)
        Надежное получение узла AST INode, соответсвующего объекту EMF-модели.
        Parameters:
        eObject - объект EMF-модели. Может быть null
        Returns:
        узел AST, соответствующий объекту EMF-модели.
        Если в качестве объекта модели передан null или узел AST для объекта не установлен, то null.
      • getNode

        public static INode getNode​(org.eclipse.emf.ecore.EObject eObject,
                                    org.eclipse.emf.ecore.EStructuralFeature eFeature)
        Надежное получение узла AST INode, соответсвующего значению single-valued EStructuralFeature объекта EMF-модели.
        Parameters:
        eObject - объект EMF-модели. Может быть null.
        eFeature - single-valued EStructuralFeature для значения которой надо получить узел AST. Может быть null
        Returns:
        узел AST, соответствующий значению EStructuralFeature объекта EMF-модели.
        Если eFeature == null или узел AST для ее значения не установлен, то возвращается узел AST, соответствующий объекту в целом.
        Если в качестве объекта передан null или узел AST для объекта не установлен, то null.
      • getNode

        public static INode getNode​(org.eclipse.emf.ecore.EObject eObject,
                                    org.eclipse.emf.ecore.EStructuralFeature eFeature,
                                    int idx)
        Надежное получение узла AST INode, соответсвующего значению EStructuralFeature объекта EMF-модели.
        Parameters:
        eObject - объект EMF-модели. Может быть null.
        eFeature - EStructuralFeature для значения которой надо получить узел AST
        idx - если значение idx >= 0, то eFeature должна быть null или many-valued. В этом случае idx - это индекс значения для many-valued EStructuralFeature.
        Если idx < 0, то подразумевается, что eFeature может быть только single-valued.
        Returns:
        узел AST, соответствующий значению из списка значений many-valued EStructuralFeature или одиночному значению single-valued EStructuralFeature
        Если eFeature == null или узел AST в разрезе значения EStructuralFeature не установлен, то узел AST, соответствующий всему объекту.
        Если в качестве объекта передан null или узел AST для объекта не установлен, то null.
      • getTextLocation

        public static TextLocation getTextLocation​(org.eclipse.emf.ecore.EObject eObject)
        Надежное получение TextLocation, соответсвующего объекту EMF-модели.
        Parameters:
        eObject - объект EMF-модели. Может быть null
        Returns:
        TextLocation, соответствующий объекту EMF-модели.
        Если в качестве объекта передан null или TextLocation для объекта не установлен, то null.
      • getTextLocation

        public static TextLocation getTextLocation​(org.eclipse.emf.ecore.EObject eObject,
                                                   org.eclipse.emf.ecore.EStructuralFeature eFeature)
        Надежное получение TextLocation, соответсвующего значению single-valued EStructuralFeature объекта EMF-модели.
        Parameters:
        eObject - объект EMF-модели. Может быть null.
        eFeature - single-valued EStructuralFeature для значения которой надо получить TextLocation. Может быть null
        Returns:
        TextLocation, соответствующий значению EStructuralFeature объекта EMF-модели.
        Если eFeature == null или TextLocation для ее значения не установлен, то TextLocation для всего объекта.
        Если в качестве объекта передан null или TextLocation для объекта не установлен, то null.
      • getTextLocation

        public static TextLocation getTextLocation​(org.eclipse.emf.ecore.EObject eObject,
                                                   org.eclipse.emf.ecore.EStructuralFeature eFeature,
                                                   int idx)
        Надежное получение TextLocation, соответсвующего значению EStructuralFeature объекта EMF-модели.
        Parameters:
        eObject - объект EMF-модели. Может быть null.
        eFeature - EStructuralFeature для значения которой надо получить TextLocation
        idx - если значение idx >= 0, то eFeature должна быть null или many-valued. В этом случае idx - это индекс значения для many-valued EStructuralFeature.
        Если idx < 0, то подразумевается, что eFeature может быть только single-valued.
        Returns:
        TextLocation, соответствующий значению из списка значений many-valued EStructuralFeature или одиночному значению single-valued EStructuralFeature
        Если eFeature == null или TextLocation в разрезе значения EStructuralFeature не установлен, то TextLocation для всего объекта.
        Если в качестве объекта передан null или TextLocation для объекта не установлен, то null.
      • findEObjectForOffset

        public static org.eclipse.emf.ecore.EObject findEObjectForOffset​(org.eclipse.emf.ecore.EObject root,
                                                                         int offset)
        Нахождение объекта модели в дереве, корень которого передан в параметре root по смещению в тексте offset. Функция находит объект, TextLovcation которого наиболее точно соответсвует смещению в тексте.
        Parameters:
        root - объект модели, являющийся корнем дерева, в котором производится поиск.
        offset - смещение в тексте, для которого ищется объект модели.
        Returns:
        найденный объект модели или null, если не нашлось ни одного объекта, соответствующего смещению или в качестве корня передан null
      • findEObjectForOffset

        public static org.eclipse.emf.ecore.EObject findEObjectForOffset​(org.eclipse.emf.ecore.resource.Resource resource,
                                                                         int offset)
        Нахождение объекта модели в EMF-ресурсе resource по смещению в тексте offset. Функция находит объект, TextLocation которого наиболее точно соответсвует смещению в тексте.
        Parameters:
        resource - EMF-ресурс, в котором производится поиск.
        offset - смещение в тексте, для которого ищется объект модели.
        Returns:
        найденный объект модели или null, если не нашлось ни одного объекта, соответствующего смещению или в качестве EMF-ресурса null
      • findEObjectFeatureForOffset

        public static EObjectFeature findEObjectFeatureForOffset​(org.eclipse.emf.ecore.EObject root,
                                                                 int offset)
        Нахождение ссылки, представленной как EObjectFeature в дереве с корнем root по смещению в тексте offset.
        Parameters:
        root - объект модели, являющийся корнем дерева, в котором производится поиск.
        offset - смещение в тексте, для которого ищется ссылка.
        Returns:
        найденная ссылка или null, если смещению в тексте никакая ссылка не соответствует или в параметре rootnull
      • findEObjectFeatureForOffset

        public static EObjectFeature findEObjectFeatureForOffset​(org.eclipse.emf.ecore.resource.Resource resource,
                                                                 int offset)
        Нахождение ссылки, представленной как EObjectFeature в EMF-ресурсе resource по смещению в тексте offset.
        Parameters:
        resource - EMF-ресурс, в котором производится поиск.
        offset - смещение в тексте, для которого ищется ссылка.
        Returns:
        найденная ссылка или null, если смещению в тексте никакая ссылка не соответствует или в параметре resource передан null
      • findReferencedEObjectForOffset

        public static org.eclipse.emf.ecore.EObject findReferencedEObjectForOffset​(org.eclipse.emf.ecore.EObject root,
                                                                                   int offset)
        Нахождение в дереве с корнем root объекта модели, ссылка на который содержится в тексте по смещению offset.
        Parameters:
        root - объект модели, являющийся корнем дерева, в котором производится поиск.
        offset - смещение в тексте, для которого ищется объект модели.
        Returns:
        объект модели, ссылка на который находится по смещению в тексте offset или null, если по указанному смещению в тексте нет ссылок или в параметре root передан null.
      • findReferencedEObjectForOffset

        public static org.eclipse.emf.ecore.EObject findReferencedEObjectForOffset​(org.eclipse.emf.ecore.resource.Resource resource,
                                                                                   int offset)
        Нахождение в EMF-ресурсе resource объекта модели, ссылка на который содержится в тексте по смещению offset.
        Parameters:
        resource - EMF-ресурс, в котором производится поиск.
        offset - смещение в тексте, для которого ищется объект модели.
        Returns:
        объект модели, ссылка на который находится по смещению в тексте offset или null, если по указанному смещению в тексте нет ссылок или в параметре resource передан null.
      • visitNodes

        public static void visitNodes​(ITextResource resource,
                                      INodeVisitor visitor)
        Выполняет посещение каждого узла синтаксического дерева в EMF-ресурсе resource.
        Parameters:
        resource - EMF-ресурс, в котором производится посещение. Может быть null. В этом случае никаких посещений не производится.
        visitor - объект, выполняющий посещение. Не может быть null.