Class ModelUtil


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

      Constructors 
      Constructor Description
      ModelUtil()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static org.eclipse.emf.common.util.Diagnostic computeDiagnostic​(org.eclipse.emf.ecore.resource.Resource resource, boolean includeWarnings)
      Функция оформляет дигностику, содержащуюся в экземпляре Resource в виде экземпляра Diagnostic.
      static org.eclipse.emf.ecore.EObject createProxy​(org.eclipse.emf.ecore.EClass eClass, org.eclipse.emf.common.util.URI uri)
      Функция создает proxy по заданным EClass и URI
      static org.eclipse.emf.ecore.EClass getEClass​(String nsUri, String name)
      Возвращает EClass по заданным NsURI пакета и имени класса.
      static String getObjectLabel​(org.eclipse.emf.ecore.EObject eObject)
      Функция получает текстовое представление для элемента модели.
      static org.eclipse.emf.common.util.URI getResourceUri​(org.eclipse.emf.ecore.EObject eObject)
      Получение URI ресурса, к которому присоединен элемент модели eObject.
      static org.eclipse.emf.ecore.resource.Resource loadResource​(org.eclipse.emf.ecore.resource.ResourceSet rs, org.eclipse.emf.common.util.URI uri)
      Загрузка Resource в контексте ResourceSet по URI, содержащему адрес ресурса.
      static Set<org.eclipse.emf.common.util.URI> referredResourceUris​(org.eclipse.emf.ecore.EObject eObject)
      Функция вычисляет множество URI всех ресурсов, на которые имеются ссылки из eObject и, соответственно, всех агрегированных EObject.
    • Constructor Detail

      • ModelUtil

        public ModelUtil()
    • Method Detail

      • getObjectLabel

        public static String getObjectLabel​(org.eclipse.emf.ecore.EObject eObject)
        Функция получает текстовое представление для элемента модели. TODO Пока еще очень наивная реализация.
        Parameters:
        eObject - объект, для которого надо получить текстовое представление
        Returns:
        текстовое представление
      • loadResource

        public static org.eclipse.emf.ecore.resource.Resource loadResource​(org.eclipse.emf.ecore.resource.ResourceSet rs,
                                                                           org.eclipse.emf.common.util.URI uri)
        Загрузка Resource в контексте ResourceSet по URI, содержащему адрес ресурса.

        URI обязательно должен идентифицировать ресурс. То есть это должен быть абсолютный URI. Данный URI может также содержать фрагмент, идентифицирующий объект внутри ресурса. Значение фрагмент не используется данной функцией. Таким образом, обращения к данной функции ModelUtil.loadResource(rs, uri); и ModelUtil.loadResource(rs, uri.trimFragment()); дают одинаковый результат.
        Если при загрузке Resource будут обнаружены ошибки, то он все равно будет загружен и возвращен данной функцией.
        Если Resource, соответствующий указанному URI уже был загружен ранее, то загруженный экземпляр Resource будет возвращен данной функцией.
        Основное отличие данной функции от ResourceSet.getResource(URI, boolean) со вторым параметром равным true состоит в том, что данная функция не выбрасывает исключения даже при возникновении ошибок при загрузке. При этом проверка коллекции ошибок ресурса с соответствующей обработкой является обязанностью клиентского кода.

        Parameters:
        rs - ResourceSet, в контексте которого производится поиск и загрузка Resource. Не может быть null.
        uri - URI, определеяющий ресурс, который надо загрузить. Данный URI может содержать фрагмент, адресующий объект внутри ресурса. Этот фрагмент будет проигнорирован. Значением параметра не может быть null.
        Returns:
        загруженный Resource
      • createProxy

        public static org.eclipse.emf.ecore.EObject createProxy​(org.eclipse.emf.ecore.EClass eClass,
                                                                org.eclipse.emf.common.util.URI uri)
        Функция создает proxy по заданным EClass и URI
        Parameters:
        eClass - EClass, задающий тип создаваемого proxy. Значением параметра не может быть абстрактный EClass и не может быть null.
        uri - URI создаваемого proxy. В принципе может быть null, но в этом случае созданный объект не будет являться proxy.
        Returns:
        созданный proxy (или не proxy, если значением параметра uri является null)
      • referredResourceUris

        public static Set<org.eclipse.emf.common.util.URI> referredResourceUris​(org.eclipse.emf.ecore.EObject eObject)
        Функция вычисляет множество URI всех ресурсов, на которые имеются ссылки из eObject и, соответственно, всех агрегированных EObject. URI ресурса, в котором находится сам eObject в результирующее множество не попадает.
        Parameters:
        eObject - элемент модели, для которого ищутся ссылки на внешние ресурсы
        Returns:
        множество URI, на которые имеются ссылки из элемента модели и агрегированных в него элементов.
      • getResourceUri

        public static org.eclipse.emf.common.util.URI getResourceUri​(org.eclipse.emf.ecore.EObject eObject)
        Получение URI ресурса, к которому присоединен элемент модели eObject. Если eObject представляет собой proxy, то возвращается URI, полученный из proxy. Если URI добыть не удалось то возвращается null.
        Parameters:
        eObject - элемент модели, для которого нужно получить URI ресурса или proxy
        Returns:
        URI ресурса или proxy
      • getEClass

        public static org.eclipse.emf.ecore.EClass getEClass​(String nsUri,
                                                             String name)
        Возвращает EClass по заданным NsURI пакета и имени класса.
        Parameters:
        nsUri - NsURI пакета
        name - имя класса
        Returns:
        искомый EClass или null, если не найден
      • computeDiagnostic

        public static org.eclipse.emf.common.util.Diagnostic computeDiagnostic​(org.eclipse.emf.ecore.resource.Resource resource,
                                                                               boolean includeWarnings)
        Функция оформляет дигностику, содержащуюся в экземпляре Resource в виде экземпляра Diagnostic.

        Фактически, для выполнения полезной работы данная функция обращается к EcoreUtil.computeDiagnostic(Resource, boolean). Отличие в результате, возвращаемом данной функцией и функцией EcoreUtil.computeDiagnostic(Resource, boolean) состоит в том, что объект Diagnostic возвращаемый данной функцией в случае обнаружения проблем содержит непустое сообщение.

        Parameters:
        resource - Resource. Не может быть null
        includeWarnings - признак, показывающий, нужно ли учитывать warning'и. Если false то возвращаемый Diagnostic будет содержать дочерние элементы соответствующие только ошибкам. Если true, то также будут содержаться дочерние элементы, соответствующие предупреждениям.
        Returns:
        Diagnostic. Если в Resource нет проблем, то будет возвращен объект, у которого метод Diagnostic.getSeverity() возвращает Diagnostic.OK. Возвращаемое значение не может быть null.