blob: 0f77865b135e32ddd7ab0ff8be5565573cfbd59a [file] [log] [blame]
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "../xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="../css/ot.css" />
<link rel="stylesheet" type="text/css" href="../css/otjld.css" />
<title>OT/J Language Definition v1.3</title>
</head>
<body class="otdt">
<div id="content">
<table class="nav">
<tr>
<td class="back"><a id="top"></a><a href="s2.4.1.b.html" rel="prev">&lt;&lt;&nbsp;&sect;2.4.1.(b)&nbsp;Fresh base object</a></td>
<td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
<td class="next"></td>
</tr>
</table>
<div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.html" rel="section">&sect;2.4&nbsp;Explicit role creation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.1.html" rel="section">&sect;2.4.1&nbsp;Role creation via a lifting constructor</a></div>
<div class="subsect depth4" id="s2.4.1.c">
<h4 class="subsect">&sect;2.4.1.(c)&nbsp;<span class="title">Duplicate role runtime check</span><a class="img" href="s2.4.1.c.html"
title="PermaLink to (c)&nbsp;Duplicate role runtime check"><img style="vertical-align:text-top;margin-left:5px;" src="../images/permalink.png"
alt="" /></a></h4>
<p>If it cannot be syntactically derived, that the argument to a lifting
constructor is a freshly created base object (b), a compile time warning will
signal that an additional runtime check is needed: It must be prevented that
a new role is created for a base object, which already has a role of the
required type in the given team. It is not possible to replace an existing
role by use of the lifting constructor. At runtime, any attempt to do so
will cause a <code>org.objectteams.DuplicateRoleException</code> to be thrown.
This exception can only occur in situations where the mentioned compile
time warning had been issued.
<br /><a href="s6.1.html" title="&sect;6.1&nbsp;Reflection" class="sect">&sect;6.1</a> will introduce reflective functions
which can be used to manually prevent errors like a duplicate role.
</p>
</div>
<table class="nav">
<tr>
<td class="back"><a href="s2.4.1.b.html" rel="prev">&lt;&lt;&nbsp;&sect;2.4.1.(b)&nbsp;Fresh base object</a></td>
<td class="top"><a href="index.html" rel="contents">&uarr;&nbsp;Table of Contents&nbsp;&uarr;</a></td>
<td class="next"></td>
</tr>
</table>
<div class="breadcrumb"><a class="nav" href="s2.html" rel="section">&sect;2&nbsp;Role Binding</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.html" rel="section">&sect;2.4&nbsp;Explicit role creation</a>&nbsp;&gt;&nbsp;<a class="nav" href="s2.4.1.html" rel="section">&sect;2.4.1&nbsp;Role creation via a lifting constructor</a></div>
</div>
<div id="footer">
<hr /><a class="w3c img" href="http://jigsaw.w3.org/css-validator/check/referer"
shape="rect"><img src="../images/valid-css2-blue.png" alt="Valid CSS!" height="31" width="88" /></a><a class="w3c img" href="http://validator.w3.org/check?uri=referer" shape="rect"><img src="../images/valid-xhtml10-blue.png" alt="Valid XHTML 1.0 Strict" height="31"
width="88" /></a><address>&copy; Stephan Herrmann, Christine Hundt, Marco Mosconi</address>
OT/J version 1.3 &mdash; last modified: 2011-05-15
</div>
</body>
</html>