blob: 8b69fc620e8468c2c328aa89bc9e91cac1c93631 [file] [log] [blame]
<?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>user</title>
</head>
<body>
<h1 id="Java_Composition_Metamodel">Java Composition Metamodel</h1>
<h2 id="Description">Description</h2>
<p>This
<i>JavaApplication</i> metamodel aims at weaving a MoDisco Java Model with a MoDisco KDM Inventory Model. It relies on the core metamodel described in the
<a href="../../../org.eclipse.modisco.infrastructure.doc/mediawiki/kdm_source_extension/user.html">kdm.source extension framework</a>.
</p>
<p>Such a metamodel allows linking java nodes to their physical position in the source files (
<i>JavaNodeSourceRegion</i> metaclass owning
<i>startLine</i>,
<i>endLine</i> properties).
</p>
<p>As proposed in the
<a href="../../../org.eclipse.modisco.infrastructure.doc/mediawiki/kdm_source_extension/user.html">kdm.source extension framework</a>, the reference
<i>JavaASTNodeSourceRegion.javaNode</i> derives from
<i>ASTNodeSourceRegion.node</i>. So does
<i>Java2File.javaUnit</i> from
<i>CodeUnit2File.unit</i>.
</p>
<p>
<img align="middle" title="JavaApplication Metamodel" alt="JavaApplication Metamodel" border="1" src="../../img/composition/JavaApplicationMetaModel.png"/>
</p>
<p>Note : the references
<i>java2DirectoryChildren</i> and
<i>java2FileChildren</i> are expected to be containment references. For some technical reasons (memory usage tuning via lazy loading), they are not containments to make sure that the
<i>Java2Directory</i>,
<i>Java2File</i> and
<i>JavaNodeSourceRegion</i> instances are managed in their own graph compared with
<i>JavaApplication</i> instances (see
<a href="../../../org.eclipse.modisco.java.doc.archi/mediawiki/composition/archi.html#Benchmark">benchmark</a>).
</p>
</body>
</html>