FIProjetIHM2022/docs/API/AbstractGroupeFactory.html

447 lines
19 KiB
HTML
Raw Normal View History

2022-11-15 17:38:45 +01:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="fr">
<head>
2022-11-15 18:57:04 +01:00
<!-- Generated by javadoc (1.8.0_202) on Tue Nov 15 18:43:02 CET 2022 -->
2022-11-15 17:38:45 +01:00
<title>AbstractGroupeFactory</title>
2022-11-15 18:57:04 +01:00
<meta name="date" content="2022-11-15">
2022-11-15 17:38:45 +01:00
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
<script type="text/javascript" src="../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="AbstractGroupeFactory";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-all.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../API/AbstractChangementFactory.html" title="interface in API"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../API/Changement.html" title="interface in API"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?API/AbstractGroupeFactory.html" target="_top">Frames</a></li>
<li><a href="AbstractGroupeFactory.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">API</div>
<h2 title="Interface AbstractGroupeFactory" class="title">Interface AbstractGroupeFactory</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../MNP/AbstractGroupeFactoryNP.html" title="class in MNP">AbstractGroupeFactoryNP</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">AbstractGroupeFactory</span></pre>
<div class="block">Usine abstraite gérant l'ensemble des groupes.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../API/AbstractGroupeFactory.html#addToGroupe-API.Groupe-API.Etudiant-">addToGroupe</a></span>(<a href="../API/Groupe.html" title="interface in API">Groupe</a>&nbsp;g,
<a href="../API/Etudiant.html" title="interface in API">Etudiant</a>&nbsp;e)</code>
<div class="block">permet d'ajouter un étudiant à un groupe.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../API/AbstractGroupeFactory.html#createGroupe-API.Groupe-java.lang.String-int-int-">createGroupe</a></span>(<a href="../API/Groupe.html" title="interface in API">Groupe</a>&nbsp;pere,
java.lang.String&nbsp;name,
int&nbsp;min,
int&nbsp;max)</code>
<div class="block">permet d'ajouter un groupe vide de type FREE comme sous-groupe d'un groupe donné.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../API/AbstractGroupeFactory.html#createPartition-API.Groupe-java.lang.String-int-">createPartition</a></span>(<a href="../API/Groupe.html" title="interface in API">Groupe</a>&nbsp;pere,
java.lang.String&nbsp;name,
int&nbsp;n)</code>
<div class="block">permet de créer une partition automatiquement sous un groupe donné.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../API/AbstractGroupeFactory.html#deleteGroupe-API.Groupe-">deleteGroupe</a></span>(<a href="../API/Groupe.html" title="interface in API">Groupe</a>&nbsp;g)</code>
<div class="block">permet de supprimer un groupe connu de l'usine abstraite qui ne contient pas de groupes.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../API/AbstractGroupeFactory.html#dropFromGroupe-API.Groupe-API.Etudiant-">dropFromGroupe</a></span>(<a href="../API/Groupe.html" title="interface in API">Groupe</a>&nbsp;g,
<a href="../API/Etudiant.html" title="interface in API">Etudiant</a>&nbsp;e)</code>
<div class="block">permet d'enlever un étudiant d'un groupe.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>java.util.Set&lt;<a href="../API/Etudiant.html" title="interface in API">Etudiant</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../API/AbstractGroupeFactory.html#getEtudiants-java.lang.String-">getEtudiants</a></span>(java.lang.String&nbsp;nomEtu)</code>
<div class="block">permet de retrouver un étudiant à partir d'un String.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>java.util.Set&lt;<a href="../API/Groupe.html" title="interface in API">Groupe</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../API/AbstractGroupeFactory.html#getGroupesOfEtudiant-API.Etudiant-">getGroupesOfEtudiant</a></span>(<a href="../API/Etudiant.html" title="interface in API">Etudiant</a>&nbsp;etu)</code>
<div class="block">permet de retrouver les groupes d'un étudiant.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="../API/Groupe.html" title="interface in API">Groupe</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../API/AbstractGroupeFactory.html#getPromotion--">getPromotion</a></span>()</code>
<div class="block">permet de récupérer le Groupe qui contient les étudiants de toute la promotion</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>java.lang.Boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../API/AbstractGroupeFactory.html#knows-API.Groupe-">knows</a></span>(<a href="../API/Groupe.html" title="interface in API">Groupe</a>&nbsp;g)</code>
<div class="block">Test si le groupe g est connu de l'usine (connu maintenant).</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getPromotion--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPromotion</h4>
<pre><a href="../API/Groupe.html" title="interface in API">Groupe</a>&nbsp;getPromotion()</pre>
<div class="block">permet de récupérer le Groupe qui contient les étudiants de toute la promotion</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>la promo.</dd>
</dl>
</li>
</ul>
<a name="knows-API.Groupe-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>knows</h4>
<pre>java.lang.Boolean&nbsp;knows(<a href="../API/Groupe.html" title="interface in API">Groupe</a>&nbsp;g)</pre>
<div class="block">Test si le groupe g est connu de l'usine (connu maintenant).
Si la réponse est true, les méthodes avec ce groupe en paramètre devraient bien fonctionner.
Si la réponse est false, le comportement n'est pas garanti.</div>
</li>
</ul>
<a name="deleteGroupe-API.Groupe-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deleteGroupe</h4>
<pre>void&nbsp;deleteGroupe(<a href="../API/Groupe.html" title="interface in API">Groupe</a>&nbsp;g)</pre>
<div class="block">permet de supprimer un groupe connu de l'usine abstraite qui ne contient pas de groupes.
Pour détruire un groupe connu qui en contient d'autres il faut le faire récursivement.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.NullPointerException</code> - si un argument est null</dd>
<dd><code>java.lang.IllegalStateException</code> - si le groupe contient des groupes</dd>
<dd><code>java.lang.IllegalArgumentException</code> - si le groupe n'est pas connu de l'usine abstraite ou bien si le groupe est celui de toute la promotion (renvoyé par getPromotion)</dd>
</dl>
</li>
</ul>
<a name="createGroupe-API.Groupe-java.lang.String-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createGroupe</h4>
<pre>void&nbsp;createGroupe(<a href="../API/Groupe.html" title="interface in API">Groupe</a>&nbsp;pere,
java.lang.String&nbsp;name,
int&nbsp;min,
int&nbsp;max)</pre>
<div class="block">permet d'ajouter un groupe vide de type FREE comme sous-groupe d'un groupe donné.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>pere</code> - le groupe père du groupe à créer</dd>
<dd><code>name</code> - le nom du groupe à créer</dd>
<dd><code>min,max</code> - bornes indicatives sur la taille du groupe à créer</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.NullPointerException</code> - si un argument est null</dd>
<dd><code>java.lang.IllegalArgumentException</code> - si le groupe pere est de type PARTITION
ou si il n'y a pas 0 < min <= max</dd>
</dl>
</li>
</ul>
<a name="createPartition-API.Groupe-java.lang.String-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createPartition</h4>
<pre>void&nbsp;createPartition(<a href="../API/Groupe.html" title="interface in API">Groupe</a>&nbsp;pere,
java.lang.String&nbsp;name,
int&nbsp;n)</pre>
<div class="block">permet de créer une partition automatiquement sous un groupe donné.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>pere</code> - le groupe père du groupe à partitionner</dd>
<dd><code>name</code> - le nom des groupe à créer (on ajoutera à la suite un numéro ou une lettre pour distinguer chaque groupe)</dd>
<dd><code>n</code> - le nombre de partitions</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.NullPointerException</code> - si un argument est null</dd>
<dd><code>java.lang.IllegalArgumentException</code> - si le groupe pere est de type PARTITION
ou n négatif ou nul
<p>
NB. doit créer une "copie" de pere
sous pere de type Partition et ajouter sous ce groupe, n groupes de type "FREE".
les valeurs min et max de ces n groupes sont
min = 0 et
max = partie entière de N/n plus 1, où N est le nombre max du groupe pere.</dd>
</dl>
</li>
</ul>
<a name="addToGroupe-API.Groupe-API.Etudiant-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addToGroupe</h4>
<pre>void&nbsp;addToGroupe(<a href="../API/Groupe.html" title="interface in API">Groupe</a>&nbsp;g,
<a href="../API/Etudiant.html" title="interface in API">Etudiant</a>&nbsp;e)</pre>
<div class="block">permet d'ajouter un étudiant à un groupe.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>g</code> - le groupe dans lequel il faut ajouter l'étudiant</dd>
<dd><code>e</code> - l'étudiant à ajouter</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.NullPointerException</code> - si un argument est null</dd>
<dd><code>java.lang.IllegalArgumentException</code> - la factory ne connaît pas g</dd>
<dd><code>java.lang.IllegalStateException</code> - le père de g ne contient pas e</dd>
</dl>
</li>
</ul>
<a name="dropFromGroupe-API.Groupe-API.Etudiant-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dropFromGroupe</h4>
<pre>void&nbsp;dropFromGroupe(<a href="../API/Groupe.html" title="interface in API">Groupe</a>&nbsp;g,
<a href="../API/Etudiant.html" title="interface in API">Etudiant</a>&nbsp;e)</pre>
<div class="block">permet d'enlever un étudiant d'un groupe.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>g</code> - le groupe dans lequel il faut enlever l'étudiant</dd>
<dd><code>e</code> - l'étudiant à enlever</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.NullPointerException</code> - si un argument est null</dd>
<dd><code>java.lang.IllegalStateException</code> - g ne contient pas e</dd>
<dd><code>java.lang.IllegalArgumentException</code> - la factory ne connaît pas g</dd>
</dl>
</li>
</ul>
<a name="getEtudiants-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEtudiants</h4>
<pre>java.util.Set&lt;<a href="../API/Etudiant.html" title="interface in API">Etudiant</a>&gt;&nbsp;getEtudiants(java.lang.String&nbsp;nomEtu)</pre>
<div class="block">permet de retrouver un étudiant à partir d'un String.
<p>
NB. dans une version simple il doit s'agir du nom exact.
dans une version un peu plus complexe, il s'agit des premières lettres du nom
dans une version avancée, on peut autoriser une expression régulière plus ou moins complexe qui est générée si la première recherche n'a pas renvoyé de candidat.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>String</code> - nomEtu le nom approximmatif de l'étudiant</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Set<Etudiant> l'ensemble des étudiants connus de la factory ayant un nom "proche" de ce string au sens de la remarque ci-dessus.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.NullPointerException</code> - si le String est null.</dd>
</dl>
</li>
</ul>
<a name="getGroupesOfEtudiant-API.Etudiant-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getGroupesOfEtudiant</h4>
<pre>java.util.Set&lt;<a href="../API/Groupe.html" title="interface in API">Groupe</a>&gt;&nbsp;getGroupesOfEtudiant(<a href="../API/Etudiant.html" title="interface in API">Etudiant</a>&nbsp;etu)</pre>
<div class="block">permet de retrouver les groupes d'un étudiant.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>Etu</code> - un étudiant</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Etudiant l'étudiant connu de la factory ayant cet identifiant</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.NullPointerException</code> - si le String est null.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li><a href="../index-all.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../API/AbstractChangementFactory.html" title="interface in API"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../API/Changement.html" title="interface in API"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?API/AbstractGroupeFactory.html" target="_top">Frames</a></li>
<li><a href="AbstractGroupeFactory.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>