Package com._1c.g5.modeling.text
Class ModelTextUtil
- java.lang.Object
-
- com._1c.g5.modeling.text.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)
Надежное получение узла ASTINode
, соответсвующего объекту EMF-модели.static INode
getNode(org.eclipse.emf.ecore.EObject eObject, org.eclipse.emf.ecore.EStructuralFeature eFeature)
Надежное получение узла ASTINode
, соответсвующего значению single-valuedEStructuralFeature
объекта EMF-модели.static INode
getNode(org.eclipse.emf.ecore.EObject eObject, org.eclipse.emf.ecore.EStructuralFeature eFeature, int idx)
Надежное получение узла ASTINode
, соответсвующего значению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-valuedEStructuralFeature
объекта 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
.
-
-
-
Method Detail
-
getNode
public static INode getNode(org.eclipse.emf.ecore.EObject eObject)
Надежное получение узла ASTINode
, соответсвующего объекту 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)
Надежное получение узла ASTINode
, соответсвующего значению single-valuedEStructuralFeature
объекта EMF-модели.- Parameters:
eObject
- объект EMF-модели. Может бытьnull
.eFeature
- single-valuedEStructuralFeature
для значения которой надо получить узел 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)
Надежное получение узла ASTINode
, соответсвующего значениюEStructuralFeature
объекта EMF-модели.- Parameters:
eObject
- объект EMF-модели. Может бытьnull
.eFeature
-EStructuralFeature
для значения которой надо получить узел ASTidx
- если значениеidx >= 0
, тоeFeature
должна быть
null
или many-valued. В этом случаеidx
- это индекс значения для many-valuedEStructuralFeature
.
Еслиidx < 0
, то подразумевается, чтоeFeature
может быть только single-valued.- Returns:
- узел AST, соответствующий значению из списка значений
many-valued
EStructuralFeature
или одиночному значению single-valuedEStructuralFeature
Если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-valuedEStructuralFeature
объекта EMF-модели.- Parameters:
eObject
- объект EMF-модели. Может бытьnull
.eFeature
- single-valuedEStructuralFeature
для значения которой надо получить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-valuedEStructuralFeature
.
Еслиidx < 0
, то подразумевается, чтоeFeature
может быть только single-valued.- Returns:
TextLocation
, соответствующий значению из списка значений many-valuedEStructuralFeature
или одиночному значению single-valuedEStructuralFeature
Если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
, если смещению в тексте никакая ссылка не соответствует или в параметреroot
null
-
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
.
-
-