Advanced properties
When querying through EOL, we can access several extra properties on any model element:
eAllContents: collection with all the model elements directly or indirectly contained within this one.eContainer: returns the model element that contains this one, ornullif it does not have a container.eContents: collection with all the model elements directly contained within this one.hawkFile: string with the repository paths of the files that this model element belongs to, separated by ";".hawkFiles: collection with the repository paths of all the files that this model element belongs to.hawkIn: collection with all the model elements accessible through incoming references.hawkInEdges: collection with all the incoming references (see their attributes below).hawkNodeId: (since 2.3.0) raw ID of the underlying graph node.hawkOut: collection with all the model elements accessible through outgoing references.hawkOutEdges: collection with all the outgoing references (see their attributes below).hawkProxies: collection with all the proxy reference lists (see their properties below).hawkRepo: string with the URLs of the repositories that this model element belongs to, separated by ";".hawkRepos: collection with all the repositories that this model element belongs to.hawkURIFragment: URI fragment of the model element within its file.
There is also the isContainedWithin(repo, path) method for checking if an element is directly or indirectly contained within a certain file.
References¶
References are wrapped into entities of their own, with the following attributes:
edge: raw edge, without wrapping.type/name: name of the reference.source/startNode: source of the reference.target/endNode: target of the reference.
Proxy reference lists¶
A proxy reference list represents all the unresolved links from a node to the elements in a certain file. These links may be unresolved as the file may be missing, or the specific elements may not be in the file. Proxy reference lists have the following fields:
sourceNodeID: unique ID of the source model element node for these proxy references.targetFile: returns an object which refers to the target file. This object has several fields:repositoryURL: string with URL of the repository that should have this file.filePath: string with path within the repository for the file.
references: returns a collection with each of the proxy references to the missing file. Each reference has the following fields:edgeLabel: name of the proxy reference.isContainment:trueif and only if the proxy reference is a containment reference (the target is contained within the source).isContainer:trueif and only if the proxy reference is a container reference (the source is contained within the target).target: object which refers to the target of the proxy reference. This object has several fields:repositoryURL: string with URL of the repository that should have this file.filePath: string with path within the repository for the file.fragment: string with the fragment that identifies the model element within the file.isFragmentBased:trueif and only if the proxy reference is purely fragment-based (file path is irrelevant). This can be the case for some modelling technologies (e.g. Modelio).