blob: ccee2f28faed69a4b0e46645f3763747ac9bac30 [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 lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="copyright" content="(C) Copyright Eclipse contributors 2005, 2006" />
<meta name="DC.rights.owner" content="(C) Copyright Eclipse contributors 2005, 2006" />
<meta name="security" content="public" />
<meta name="Robots" content="index,follow" />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta name="DC.Type" content="concept" />
<meta name="DC.Title" content="Replaces" />
<meta name="DC.Relation" scheme="URI" content="variability.html#variability" />
<meta name="DC.Relation" scheme="URI" content="extends.html#extends" />
<meta name="DC.Relation" scheme="URI" content="contributes.html#contributes" />
<meta name="DC.Format" content="XHTML" />
<meta name="DC.Identifier" content="replaces" />
<meta name="DC.Language" content="en-us" />
<!--
Copyright (c) 2005, 2006 IBM Corporation and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html
Contributors:
IBM Corporation - initial implementation
-->
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
<title>Replaces</title>
</head>
<body id="replaces"><a name="replaces"><!-- --></a>
<h1 class="topictitle1">Replaces</h1>
<div><p>A replacing element replaces parts of the base element. Replaces provides
a way for an element to replace a base element without directly changing any
of the base element's existing properties. This is, in most cases, used for
method plug-ins that aim to replace specific content elements such as roles,
tasks, or activities with either a completely new variant or to change the
fundamental relationships of these elements. The effect of this, is that the
base content element is logically replaced with the new replacing element
to which all incoming associations still point as before, but which has potentially
new attribute values and outgoing association properties.</p>
<p>Use the Content Variability section on the Description tab to make an element
replace another element. Select <strong>Replaces</strong> as the variability type and
select the base element that this element will replace. The base element must
be the same type of element as the replacing element.</p>
<p>When you replace an element, all the description attributes are replaced
by the replacing element. If a description attribute in the replacing element
is blank, but the base element has content, the attribute will be blank in
the resulting element.</p>
<p>Replace always replaces attributes and associations of the base element
with the replacing element's attributes and associations, except for incoming
associations, which are only added to the base, but do not replace the base's
incoming associations.</p>
<div class="p"><strong>Replaces rules:</strong><ul><li>Attributes of the base element are replaced with attributes of the replacing
element including identifier of the base element.</li>
<li>Outgoing to-one and to-many associations of the replacing element replace
any outgoing associations of the base element. If the contributor does not
have any outgoing associations, then neither will the resulting element.</li>
<li>Incoming associations with a to-many constraint on the other association
end to the replaced element are preserved and augmented with incoming associations
of the replacing element.</li>
<li>Incoming associations with a to-one constraint on the other association
end to the replaced element are replaced with the respective incoming association
of the replacing element. If the replacing element does not have such an association
then the resulting element keeps the incoming association of the base element.</li>
<li>A base element of a replacement can have only one replacing element per
configuration. If more than one replacing element is present, no replacement
takes place.</li>
<li>Replacement works transitively, i.e. if a replacing element is replaced
itself, the final replacer prevails.</li>
<li>Contribution precedes Replacement, i.e. contribution is evaluated first
and then replacement performed afterward. The evaluation of contribution and
replacement is performed top-down in the specialization hierarchy.</li>
</ul>
See <a href="variabilityassociations.html#variabilityassociations">Variability Associations</a> for more information on the associations for each element
type.</div>
</div>
<div><div class="relconcepts"><strong>Related concepts</strong><br />
<div><a href="variability.html#variability" title="Variability allows elements in one content package to influence or modify elements in other content packages without actually directly modifying the original content. Variability enables changes to the content while keeping the changes separate and optional.">Variability</a></div>
<div><a href="extends.html#extends">Extends</a></div>
<div><a href="contributes.html#contributes">Contributes</a></div>
</div>
</div>
</body>
</html>