source: javadoc/genius/core/protocol/DefaultMultilateralProtocol.html@ 1

Last change on this file since 1 was 1, checked in by Wouter Pasman, 7 years ago

Initial import : Genius 9.0.0

File size: 43.8 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2<!-- NewPage -->
3<html lang="en">
4<head>
5<!-- Generated by javadoc (1.8.0_112) on Thu Jun 21 12:05:57 CEST 2018 -->
6<title>DefaultMultilateralProtocol (Genius Core Documentation)</title>
7<meta name="date" content="2018-06-21">
8<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
9<script type="text/javascript" src="../../../script.js"></script>
10</head>
11<body>
12<script type="text/javascript"><!--
13 try {
14 if (location.href.indexOf('is-external=true') == -1) {
15 parent.document.title="DefaultMultilateralProtocol (Genius Core Documentation)";
16 }
17 }
18 catch(err) {
19 }
20//-->
21var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":9,"i14":9};
22var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
23var altColor = "altColor";
24var rowColor = "rowColor";
25var tableTab = "tableTab";
26var activeTableTab = "activeTableTab";
27</script>
28<noscript>
29<div>JavaScript is disabled on your browser.</div>
30</noscript>
31<!-- ========= START OF TOP NAVBAR ======= -->
32<div class="topNav"><a name="navbar.top">
33<!-- -->
34</a>
35<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
36<a name="navbar.top.firstrow">
37<!-- -->
38</a>
39<ul class="navList" title="Navigation">
40<li><a href="../../../overview-summary.html">Overview</a></li>
41<li><a href="package-summary.html">Package</a></li>
42<li class="navBarCell1Rev">Class</li>
43<li><a href="class-use/DefaultMultilateralProtocol.html">Use</a></li>
44<li><a href="package-tree.html">Tree</a></li>
45<li><a href="../../../deprecated-list.html">Deprecated</a></li>
46<li><a href="../../../index-all.html">Index</a></li>
47<li><a href="../../../help-doc.html">Help</a></li>
48</ul>
49</div>
50<div class="subNav">
51<ul class="navList">
52<li><a href="../../../genius/core/protocol/BilateralAtomicNegotiationSession.html" title="class in genius.core.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
53<li><a href="../../../genius/core/protocol/MediatorFeedbackBasedProtocol.html" title="class in genius.core.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
54</ul>
55<ul class="navList">
56<li><a href="../../../index.html?genius/core/protocol/DefaultMultilateralProtocol.html" target="_top">Frames</a></li>
57<li><a href="DefaultMultilateralProtocol.html" target="_top">No&nbsp;Frames</a></li>
58</ul>
59<ul class="navList" id="allclasses_navbar_top">
60<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
61</ul>
62<div>
63<script type="text/javascript"><!--
64 allClassesLink = document.getElementById("allclasses_navbar_top");
65 if(window==top) {
66 allClassesLink.style.display = "block";
67 }
68 else {
69 allClassesLink.style.display = "none";
70 }
71 //-->
72</script>
73</div>
74<div>
75<ul class="subNavList">
76<li>Summary:&nbsp;</li>
77<li>Nested&nbsp;|&nbsp;</li>
78<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
79<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
80<li><a href="#method.summary">Method</a></li>
81</ul>
82<ul class="subNavList">
83<li>Detail:&nbsp;</li>
84<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
85<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
86<li><a href="#method.detail">Method</a></li>
87</ul>
88</div>
89<a name="skip.navbar.top">
90<!-- -->
91</a></div>
92<!-- ========= END OF TOP NAVBAR ========= -->
93<!-- ======== START OF CLASS DATA ======== -->
94<div class="header">
95<div class="subTitle">genius.core.protocol</div>
96<h2 title="Class DefaultMultilateralProtocol" class="title">Class DefaultMultilateralProtocol</h2>
97</div>
98<div class="contentContainer">
99<ul class="inheritance">
100<li>java.lang.Object</li>
101<li>
102<ul class="inheritance">
103<li>genius.core.protocol.DefaultMultilateralProtocol</li>
104</ul>
105</li>
106</ul>
107<div class="description">
108<ul class="blockList">
109<li class="blockList">
110<dl>
111<dt>All Implemented Interfaces:</dt>
112<dd><a href="../../../genius/core/protocol/MultilateralProtocol.html" title="interface in genius.core.protocol">MultilateralProtocol</a></dd>
113</dl>
114<dl>
115<dt>Direct Known Subclasses:</dt>
116<dd><a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html" title="class in genius.core.protocol">AlternatingMultipleOffersProtocol</a>, <a href="../../../genius/core/protocol/MediatorProtocol.html" title="class in genius.core.protocol">MediatorProtocol</a>, <a href="../../../genius/core/protocol/StackedAlternatingOffersProtocol.html" title="class in genius.core.protocol">StackedAlternatingOffersProtocol</a></dd>
117</dl>
118<hr>
119<br>
120<pre>public class <span class="typeNameLabel">DefaultMultilateralProtocol</span>
121extends java.lang.Object
122implements <a href="../../../genius/core/protocol/MultilateralProtocol.html" title="interface in genius.core.protocol">MultilateralProtocol</a></pre>
123<div class="block">An adapter for the protocol class. This implements default functionality for
124 the methods in the Protocol interface and return default values for them.</div>
125<dl>
126<dt><span class="simpleTagLabel">Author:</span></dt>
127<dd>David Festen</dd>
128</dl>
129</li>
130</ul>
131</div>
132<div class="summary">
133<ul class="blockList">
134<li class="blockList">
135<!-- =========== FIELD SUMMARY =========== -->
136<ul class="blockList">
137<li class="blockList"><a name="field.summary">
138<!-- -->
139</a>
140<h3>Field Summary</h3>
141<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
142<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
143<tr>
144<th class="colFirst" scope="col">Modifier and Type</th>
145<th class="colLast" scope="col">Field and Description</th>
146</tr>
147<tr class="altColor">
148<td class="colFirst"><code>protected boolean</code></td>
149<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#isAborted">isAborted</a></span></code>&nbsp;</td>
150</tr>
151</table>
152</li>
153</ul>
154<!-- ======== CONSTRUCTOR SUMMARY ======== -->
155<ul class="blockList">
156<li class="blockList"><a name="constructor.summary">
157<!-- -->
158</a>
159<h3>Constructor Summary</h3>
160<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
161<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
162<tr>
163<th class="colOne" scope="col">Constructor and Description</th>
164</tr>
165<tr class="altColor">
166<td class="colOne"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#DefaultMultilateralProtocol--">DefaultMultilateralProtocol</a></span>()</code>&nbsp;</td>
167</tr>
168</table>
169</li>
170</ul>
171<!-- ========== METHOD SUMMARY =========== -->
172<ul class="blockList">
173<li class="blockList"><a name="method.summary">
174<!-- -->
175</a>
176<h3>Method Summary</h3>
177<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
178<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></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="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
179<tr>
180<th class="colFirst" scope="col">Modifier and Type</th>
181<th class="colLast" scope="col">Method and Description</th>
182</tr>
183<tr id="i0" class="altColor">
184<td class="colFirst"><code>void</code></td>
185<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#afterSession-genius.core.session.Session-java.util.List-">afterSession</a></span>(<a href="../../../genius/core/session/Session.html" title="class in genius.core.session">Session</a>&nbsp;session,
186 java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties)</code>
187<div class="block">This will get called just after ending the session.</div>
188</td>
189</tr>
190<tr id="i1" class="rowColor">
191<td class="colFirst"><code>void</code></td>
192<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#applyAction-genius.core.actions.Action-genius.core.session.Session-">applyAction</a></span>(<a href="../../../genius/core/actions/Action.html" title="interface in genius.core.actions">Action</a>&nbsp;action,
193 <a href="../../../genius/core/session/Session.html" title="class in genius.core.session">Session</a>&nbsp;session)</code>
194<div class="block">Apply the action according to the protocol.</div>
195</td>
196</tr>
197<tr id="i2" class="altColor">
198<td class="colFirst"><code>java.util.Map&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>,java.util.List&lt;<a href="../../../genius/core/actions/Action.html" title="interface in genius.core.actions">Action</a>&gt;&gt;</code></td>
199<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#beforeSession-genius.core.session.Session-java.util.List-">beforeSession</a></span>(<a href="../../../genius/core/session/Session.html" title="class in genius.core.session">Session</a>&nbsp;session,
200 java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties)</code>
201<div class="block">Returns a list of Actions to be sent to
202 <a href="../../../genius/core/parties/NegotiationParty.html#receiveMessage-genius.core.AgentID-genius.core.actions.Action-"><code>NegotiationParty.receiveMessage(AgentID, Action)</code></a> .</div>
203</td>
204</tr>
205<tr id="i3" class="rowColor">
206<td class="colFirst"><code>protected void</code></td>
207<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#checkOffer-genius.core.actions.Offer-">checkOffer</a></span>(<a href="../../../genius/core/actions/Offer.html" title="class in genius.core.actions">Offer</a>&nbsp;offer)</code>
208<div class="block">Check incoming offer</div>
209</td>
210</tr>
211<tr id="i4" class="altColor">
212<td class="colFirst"><code>void</code></td>
213<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#endNegotiation--">endNegotiation</a></span>()</code>
214<div class="block">Overwrites the rest of the protocol and sets the protocol state to finish</div>
215</td>
216</tr>
217<tr id="i5" class="rowColor">
218<td class="colFirst"><code>void</code></td>
219<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#endNegotiation-java.lang.String-">endNegotiation</a></span>(java.lang.String&nbsp;reason)</code>
220<div class="block">Overwrites the rest of the protocol and sets the protocol state to finish</div>
221</td>
222</tr>
223<tr id="i6" class="altColor">
224<td class="colFirst"><code>java.util.Collection&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;</code></td>
225<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#exclude-java.util.Collection-java.lang.Class-">exclude</a></span>(java.util.Collection&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;negotiationParties,
226 java.lang.Class&nbsp;negotiationPartyClass)</code>
227<div class="block">Filters the list by including only the type of negotiation parties.</div>
228</td>
229</tr>
230<tr id="i7" class="rowColor">
231<td class="colFirst"><code>java.util.Map&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>,java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&gt;</code></td>
232<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#getActionListeners-java.util.List-">getActionListeners</a></span>(java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties)</code>
233<div class="block">Get a map of parties that are listening to each other's response</div>
234</td>
235</tr>
236<tr id="i8" class="altColor">
237<td class="colFirst"><code><a href="../../../genius/core/Bid.html" title="class in genius.core">Bid</a></code></td>
238<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#getCurrentAgreement-genius.core.session.Session-java.util.List-">getCurrentAgreement</a></span>(<a href="../../../genius/core/session/Session.html" title="class in genius.core.session">Session</a>&nbsp;session,
239 java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties)</code>
240<div class="block">This method should return the current agreement.</div>
241</td>
242</tr>
243<tr id="i9" class="rowColor">
244<td class="colFirst"><code>int</code></td>
245<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#getNumberOfAgreeingParties-genius.core.session.Session-java.util.List-">getNumberOfAgreeingParties</a></span>(<a href="../../../genius/core/session/Session.html" title="class in genius.core.session">Session</a>&nbsp;session,
246 java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties)</code>
247<div class="block">Gets the number of parties that currently agree to the offer.</div>
248</td>
249</tr>
250<tr id="i10" class="altColor">
251<td class="colFirst"><code><a href="../../../genius/core/session/Round.html" title="class in genius.core.session">Round</a></code></td>
252<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#getRoundStructure-java.util.List-genius.core.session.Session-">getRoundStructure</a></span>(java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties,
253 <a href="../../../genius/core/session/Session.html" title="class in genius.core.session">Session</a>&nbsp;session)</code>
254<div class="block">Get the structure of the current round.</div>
255</td>
256</tr>
257<tr id="i11" class="rowColor">
258<td class="colFirst"><code>java.util.Collection&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;</code></td>
259<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#includeOnly-java.util.Collection-java.lang.Class-">includeOnly</a></span>(java.util.Collection&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;negotiationParties,
260 java.lang.Class&nbsp;negotiationPartyClass)</code>
261<div class="block">Filters the list by including only the type of negotiation parties.</div>
262</td>
263</tr>
264<tr id="i12" class="altColor">
265<td class="colFirst"><code>boolean</code></td>
266<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#isFinished-genius.core.session.Session-java.util.List-">isFinished</a></span>(<a href="../../../genius/core/session/Session.html" title="class in genius.core.session">Session</a>&nbsp;session,
267 java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties)</code>
268<div class="block">Check if the protocol is done or still busy.</div>
269</td>
270</tr>
271<tr id="i13" class="rowColor">
272<td class="colFirst"><code>protected static java.util.Map&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>,java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&gt;</code></td>
273<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#listenToAll-java.util.List-">listenToAll</a></span>(java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties)</code>&nbsp;</td>
274</tr>
275<tr id="i14" class="altColor">
276<td class="colFirst"><code>protected static java.util.Map&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>,java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&gt;</code></td>
277<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#listenToNone-java.util.List-">listenToNone</a></span>(java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties)</code>&nbsp;</td>
278</tr>
279</table>
280<ul class="blockList">
281<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
282<!-- -->
283</a>
284<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
285<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
286</ul>
287</li>
288</ul>
289</li>
290</ul>
291</div>
292<div class="details">
293<ul class="blockList">
294<li class="blockList">
295<!-- ============ FIELD DETAIL =========== -->
296<ul class="blockList">
297<li class="blockList"><a name="field.detail">
298<!-- -->
299</a>
300<h3>Field Detail</h3>
301<a name="isAborted">
302<!-- -->
303</a>
304<ul class="blockListLast">
305<li class="blockList">
306<h4>isAborted</h4>
307<pre>protected&nbsp;boolean isAborted</pre>
308</li>
309</ul>
310</li>
311</ul>
312<!-- ========= CONSTRUCTOR DETAIL ======== -->
313<ul class="blockList">
314<li class="blockList"><a name="constructor.detail">
315<!-- -->
316</a>
317<h3>Constructor Detail</h3>
318<a name="DefaultMultilateralProtocol--">
319<!-- -->
320</a>
321<ul class="blockListLast">
322<li class="blockList">
323<h4>DefaultMultilateralProtocol</h4>
324<pre>public&nbsp;DefaultMultilateralProtocol()</pre>
325</li>
326</ul>
327</li>
328</ul>
329<!-- ============ METHOD DETAIL ========== -->
330<ul class="blockList">
331<li class="blockList"><a name="method.detail">
332<!-- -->
333</a>
334<h3>Method Detail</h3>
335<a name="getRoundStructure-java.util.List-genius.core.session.Session-">
336<!-- -->
337</a>
338<ul class="blockList">
339<li class="blockList">
340<h4>getRoundStructure</h4>
341<pre>public&nbsp;<a href="../../../genius/core/session/Round.html" title="class in genius.core.session">Round</a>&nbsp;getRoundStructure(java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties,
342 <a href="../../../genius/core/session/Session.html" title="class in genius.core.session">Session</a>&nbsp;session)</pre>
343<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../genius/core/protocol/MultilateralProtocol.html#getRoundStructure-java.util.List-genius.core.session.Session-">MultilateralProtocol</a></code></span></div>
344<div class="block">Get the structure of the current round. Each round, this method receives
345 a list of all the <a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties"><code>NegotiationParty</code></a> and the
346 complete <a href="../../../genius/core/session/Session.html" title="class in genius.core.session"><code>Session</code></a> which can be used to diversify the round
347 structure at some point during the session.</div>
348<dl>
349<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
350<dd><code><a href="../../../genius/core/protocol/MultilateralProtocol.html#getRoundStructure-java.util.List-genius.core.session.Session-">getRoundStructure</a></code>&nbsp;in interface&nbsp;<code><a href="../../../genius/core/protocol/MultilateralProtocol.html" title="interface in genius.core.protocol">MultilateralProtocol</a></code></dd>
351<dt><span class="paramLabel">Parameters:</span></dt>
352<dd><code>parties</code> - The parties currently participating</dd>
353<dd><code>session</code> - The complete session history</dd>
354<dt><span class="returnLabel">Returns:</span></dt>
355<dd>A list of possible actions</dd>
356</dl>
357</li>
358</ul>
359<a name="beforeSession-genius.core.session.Session-java.util.List-">
360<!-- -->
361</a>
362<ul class="blockList">
363<li class="blockList">
364<h4>beforeSession</h4>
365<pre>public&nbsp;java.util.Map&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>,java.util.List&lt;<a href="../../../genius/core/actions/Action.html" title="interface in genius.core.actions">Action</a>&gt;&gt;&nbsp;beforeSession(<a href="../../../genius/core/session/Session.html" title="class in genius.core.session">Session</a>&nbsp;session,
366 java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties)
367 throws <a href="../../../genius/core/exceptions/NegotiationPartyTimeoutException.html" title="class in genius.core.exceptions">NegotiationPartyTimeoutException</a>,
368 java.util.concurrent.ExecutionException,
369 java.lang.InterruptedException</pre>
370<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../genius/core/protocol/MultilateralProtocol.html#beforeSession-genius.core.session.Session-java.util.List-">MultilateralProtocol</a></code></span></div>
371<div class="block">Returns a list of Actions to be sent to
372 <a href="../../../genius/core/parties/NegotiationParty.html#receiveMessage-genius.core.AgentID-genius.core.actions.Action-"><code>NegotiationParty.receiveMessage(AgentID, Action)</code></a> . This will get
373 called just before the session starts. If some initialization with needs
374 to be done by the protocol, it can be done here.</div>
375<dl>
376<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
377<dd><code><a href="../../../genius/core/protocol/MultilateralProtocol.html#beforeSession-genius.core.session.Session-java.util.List-">beforeSession</a></code>&nbsp;in interface&nbsp;<code><a href="../../../genius/core/protocol/MultilateralProtocol.html" title="interface in genius.core.protocol">MultilateralProtocol</a></code></dd>
378<dt><span class="paramLabel">Parameters:</span></dt>
379<dd><code>session</code> - The upcoming <a href="../../../genius/core/session/Session.html" title="class in genius.core.session"><code>Session</code></a></dd>
380<dd><code>parties</code> - The <a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties"><code>NegotiationParty</code></a>s that will participate in the
381 session</dd>
382<dt><span class="throwsLabel">Throws:</span></dt>
383<dd><code><a href="../../../genius/core/exceptions/NegotiationPartyTimeoutException.html" title="class in genius.core.exceptions">NegotiationPartyTimeoutException</a></code></dd>
384<dd><code>java.util.concurrent.ExecutionException</code></dd>
385<dd><code>java.lang.InterruptedException</code></dd>
386</dl>
387</li>
388</ul>
389<a name="afterSession-genius.core.session.Session-java.util.List-">
390<!-- -->
391</a>
392<ul class="blockList">
393<li class="blockList">
394<h4>afterSession</h4>
395<pre>public&nbsp;void&nbsp;afterSession(<a href="../../../genius/core/session/Session.html" title="class in genius.core.session">Session</a>&nbsp;session,
396 java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties)</pre>
397<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../genius/core/protocol/MultilateralProtocol.html#afterSession-genius.core.session.Session-java.util.List-">MultilateralProtocol</a></code></span></div>
398<div class="block">This will get called just after ending the session. If the protocol needs
399 to do some post session steps, it can be done here. Protocols should not
400 handle <a href="../../../genius/core/parties/NegotiationParty.html#negotiationEnded-genius.core.Bid-"><code>NegotiationParty.negotiationEnded(Bid)</code></a> as these are always
401 called by the <a href="../../../genius/core/session/SessionManager.html" title="class in genius.core.session"><code>SessionManager</code></a>.</div>
402<dl>
403<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
404<dd><code><a href="../../../genius/core/protocol/MultilateralProtocol.html#afterSession-genius.core.session.Session-java.util.List-">afterSession</a></code>&nbsp;in interface&nbsp;<code><a href="../../../genius/core/protocol/MultilateralProtocol.html" title="interface in genius.core.protocol">MultilateralProtocol</a></code></dd>
405<dt><span class="paramLabel">Parameters:</span></dt>
406<dd><code>session</code> - The session instance that was used for the session</dd>
407<dd><code>parties</code> - The parties that participated in the session</dd>
408</dl>
409</li>
410</ul>
411<a name="applyAction-genius.core.actions.Action-genius.core.session.Session-">
412<!-- -->
413</a>
414<ul class="blockList">
415<li class="blockList">
416<h4>applyAction</h4>
417<pre>public&nbsp;void&nbsp;applyAction(<a href="../../../genius/core/actions/Action.html" title="interface in genius.core.actions">Action</a>&nbsp;action,
418 <a href="../../../genius/core/session/Session.html" title="class in genius.core.session">Session</a>&nbsp;session)
419 throws <a href="../../../genius/core/session/ActionException.html" title="class in genius.core.session">ActionException</a></pre>
420<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../genius/core/protocol/MultilateralProtocol.html#applyAction-genius.core.actions.Action-genius.core.session.Session-">MultilateralProtocol</a></code></span></div>
421<div class="block">Apply the action according to the protocol. All actions done by all
422 agents come through this method. The protocol should check here if the
423 agent's action is actually allowed and contains the proper data.</div>
424<dl>
425<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
426<dd><code><a href="../../../genius/core/protocol/MultilateralProtocol.html#applyAction-genius.core.actions.Action-genius.core.session.Session-">applyAction</a></code>&nbsp;in interface&nbsp;<code><a href="../../../genius/core/protocol/MultilateralProtocol.html" title="interface in genius.core.protocol">MultilateralProtocol</a></code></dd>
427<dt><span class="paramLabel">Parameters:</span></dt>
428<dd><code>action</code> - action to apply. The Agent ID in the action already has been
429 checked when this is called.</dd>
430<dd><code>session</code> - the current state of this session</dd>
431<dt><span class="throwsLabel">Throws:</span></dt>
432<dd><code><a href="../../../genius/core/session/ActionException.html" title="class in genius.core.session">ActionException</a></code> - if the proposed action is illegal according to the protocol.</dd>
433</dl>
434</li>
435</ul>
436<a name="checkOffer-genius.core.actions.Offer-">
437<!-- -->
438</a>
439<ul class="blockList">
440<li class="blockList">
441<h4>checkOffer</h4>
442<pre>protected&nbsp;void&nbsp;checkOffer(<a href="../../../genius/core/actions/Offer.html" title="class in genius.core.actions">Offer</a>&nbsp;offer)
443 throws <a href="../../../genius/core/session/ActionException.html" title="class in genius.core.session">ActionException</a></pre>
444<div class="block">Check incoming offer</div>
445<dl>
446<dt><span class="paramLabel">Parameters:</span></dt>
447<dd><code>action</code> - the offer</dd>
448<dt><span class="throwsLabel">Throws:</span></dt>
449<dd><code><a href="../../../genius/core/session/ActionException.html" title="class in genius.core.session">ActionException</a></code></dd>
450</dl>
451</li>
452</ul>
453<a name="isFinished-genius.core.session.Session-java.util.List-">
454<!-- -->
455</a>
456<ul class="blockList">
457<li class="blockList">
458<h4>isFinished</h4>
459<pre>public&nbsp;boolean&nbsp;isFinished(<a href="../../../genius/core/session/Session.html" title="class in genius.core.session">Session</a>&nbsp;session,
460 java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties)</pre>
461<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../genius/core/protocol/MultilateralProtocol.html#isFinished-genius.core.session.Session-java.util.List-">MultilateralProtocol</a></code></span></div>
462<div class="block">Check if the protocol is done or still busy. If this method returns true,
463 the <a href="../../../genius/core/session/SessionManager.html" title="class in genius.core.session"><code>SessionManager</code></a> will not start a new
464 <a href="../../../genius/core/session/Round.html" title="class in genius.core.session"><code>Round</code></a> after the current one. It will however finish all the turns
465 described in the
466 <a href="../../../genius/core/protocol/MultilateralProtocol.html#getRoundStructure-java.util.List-genius.core.session.Session-"><code>MultilateralProtocol.getRoundStructure(java.util.List, genius.core.session.Session)</code></a>
467 method.</div>
468<dl>
469<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
470<dd><code><a href="../../../genius/core/protocol/MultilateralProtocol.html#isFinished-genius.core.session.Session-java.util.List-">isFinished</a></code>&nbsp;in interface&nbsp;<code><a href="../../../genius/core/protocol/MultilateralProtocol.html" title="interface in genius.core.protocol">MultilateralProtocol</a></code></dd>
471<dt><span class="paramLabel">Parameters:</span></dt>
472<dd><code>session</code> - the current state of this session</dd>
473<dd><code>parties</code> - all the parties involved in the negotiation</dd>
474<dt><span class="returnLabel">Returns:</span></dt>
475<dd>true if the protocol is finished</dd>
476</dl>
477</li>
478</ul>
479<a name="getActionListeners-java.util.List-">
480<!-- -->
481</a>
482<ul class="blockList">
483<li class="blockList">
484<h4>getActionListeners</h4>
485<pre>public&nbsp;java.util.Map&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>,java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&gt;&nbsp;getActionListeners(java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties)</pre>
486<div class="block">Get a map of parties that are listening to each other's response</div>
487<dl>
488<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
489<dd><code><a href="../../../genius/core/protocol/MultilateralProtocol.html#getActionListeners-java.util.List-">getActionListeners</a></code>&nbsp;in interface&nbsp;<code><a href="../../../genius/core/protocol/MultilateralProtocol.html" title="interface in genius.core.protocol">MultilateralProtocol</a></code></dd>
490<dt><span class="paramLabel">Parameters:</span></dt>
491<dd><code>parties</code> - The parties involved in the current negotiation</dd>
492<dt><span class="returnLabel">Returns:</span></dt>
493<dd>A map where the key is a
494 <a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties"><code>NegotiationParty</code></a> that is responding to
495 a <a href="../../../genius/core/parties/NegotiationParty.html#chooseAction-java.util.List-"><code>NegotiationParty.chooseAction(java.util.List)</code></a> event,
496 and the value is a list of <a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties"><code>NegotiationParty</code></a> that are
497 listening to that key party's response.</dd>
498</dl>
499</li>
500</ul>
501<a name="getCurrentAgreement-genius.core.session.Session-java.util.List-">
502<!-- -->
503</a>
504<ul class="blockList">
505<li class="blockList">
506<h4>getCurrentAgreement</h4>
507<pre>public&nbsp;<a href="../../../genius/core/Bid.html" title="class in genius.core">Bid</a>&nbsp;getCurrentAgreement(<a href="../../../genius/core/session/Session.html" title="class in genius.core.session">Session</a>&nbsp;session,
508 java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties)</pre>
509<div class="block">This method should return the current agreement.
510 <p/>
511 Some protocols only have an agreement at the negotiation session, make
512 sure that this method returns null until the end of the session in that
513 case, because this method might be queried at intermediary steps.</div>
514<dl>
515<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
516<dd><code><a href="../../../genius/core/protocol/MultilateralProtocol.html#getCurrentAgreement-genius.core.session.Session-java.util.List-">getCurrentAgreement</a></code>&nbsp;in interface&nbsp;<code><a href="../../../genius/core/protocol/MultilateralProtocol.html" title="interface in genius.core.protocol">MultilateralProtocol</a></code></dd>
517<dt><span class="paramLabel">Parameters:</span></dt>
518<dd><code>session</code> - The complete session history up to this point</dd>
519<dd><code>parties</code> - The parties involved in the current negotiation</dd>
520<dt><span class="returnLabel">Returns:</span></dt>
521<dd>The agreed upon bid or null if no agreement</dd>
522</dl>
523</li>
524</ul>
525<a name="getNumberOfAgreeingParties-genius.core.session.Session-java.util.List-">
526<!-- -->
527</a>
528<ul class="blockList">
529<li class="blockList">
530<h4>getNumberOfAgreeingParties</h4>
531<pre>public&nbsp;int&nbsp;getNumberOfAgreeingParties(<a href="../../../genius/core/session/Session.html" title="class in genius.core.session">Session</a>&nbsp;session,
532 java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties)</pre>
533<div class="block">Gets the number of parties that currently agree to the offer.
534 <p/>
535 Default implementation returns 0 if no agreement or number of parties if
536 agreement exists.</div>
537<dl>
538<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
539<dd><code><a href="../../../genius/core/protocol/MultilateralProtocol.html#getNumberOfAgreeingParties-genius.core.session.Session-java.util.List-">getNumberOfAgreeingParties</a></code>&nbsp;in interface&nbsp;<code><a href="../../../genius/core/protocol/MultilateralProtocol.html" title="interface in genius.core.protocol">MultilateralProtocol</a></code></dd>
540<dt><span class="paramLabel">Parameters:</span></dt>
541<dd><code>session</code> - the current state of this session</dd>
542<dd><code>parties</code> - The parties currently participating</dd>
543<dt><span class="returnLabel">Returns:</span></dt>
544<dd>the number of parties agreeing to the current agreement</dd>
545</dl>
546</li>
547</ul>
548<a name="includeOnly-java.util.Collection-java.lang.Class-">
549<!-- -->
550</a>
551<ul class="blockList">
552<li class="blockList">
553<h4>includeOnly</h4>
554<pre>public&nbsp;java.util.Collection&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;includeOnly(java.util.Collection&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;negotiationParties,
555 java.lang.Class&nbsp;negotiationPartyClass)</pre>
556<div class="block">Filters the list by including only the type of negotiation parties.
557 Optionally, this behavior can be reversed (i.e. excluding only the given
558 type of negotiation parties).</div>
559<dl>
560<dt><span class="paramLabel">Parameters:</span></dt>
561<dd><code>negotiationParties</code> - The original list of parties</dd>
562<dd><code>negotiationPartyClass</code> - The type of parties to include</dd>
563<dt><span class="returnLabel">Returns:</span></dt>
564<dd>The filtered list of parties</dd>
565</dl>
566</li>
567</ul>
568<a name="exclude-java.util.Collection-java.lang.Class-">
569<!-- -->
570</a>
571<ul class="blockList">
572<li class="blockList">
573<h4>exclude</h4>
574<pre>public&nbsp;java.util.Collection&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;exclude(java.util.Collection&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;negotiationParties,
575 java.lang.Class&nbsp;negotiationPartyClass)</pre>
576<div class="block">Filters the list by including only the type of negotiation parties.
577 Optionally, this behavior can be reversed (i.e. excluding only the given
578 type of negotiation parties).</div>
579<dl>
580<dt><span class="paramLabel">Parameters:</span></dt>
581<dd><code>negotiationParties</code> - The original list of parties</dd>
582<dd><code>negotiationPartyClass</code> - The type of parties to include</dd>
583<dt><span class="returnLabel">Returns:</span></dt>
584<dd>The filtered list of parties</dd>
585</dl>
586</li>
587</ul>
588<a name="endNegotiation--">
589<!-- -->
590</a>
591<ul class="blockList">
592<li class="blockList">
593<h4>endNegotiation</h4>
594<pre>public&nbsp;void&nbsp;endNegotiation()</pre>
595<div class="block">Overwrites the rest of the protocol and sets the protocol state to finish</div>
596<dl>
597<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
598<dd><code><a href="../../../genius/core/protocol/MultilateralProtocol.html#endNegotiation--">endNegotiation</a></code>&nbsp;in interface&nbsp;<code><a href="../../../genius/core/protocol/MultilateralProtocol.html" title="interface in genius.core.protocol">MultilateralProtocol</a></code></dd>
599</dl>
600</li>
601</ul>
602<a name="endNegotiation-java.lang.String-">
603<!-- -->
604</a>
605<ul class="blockList">
606<li class="blockList">
607<h4>endNegotiation</h4>
608<pre>public&nbsp;void&nbsp;endNegotiation(java.lang.String&nbsp;reason)</pre>
609<div class="block">Overwrites the rest of the protocol and sets the protocol state to finish</div>
610<dl>
611<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
612<dd><code><a href="../../../genius/core/protocol/MultilateralProtocol.html#endNegotiation-java.lang.String-">endNegotiation</a></code>&nbsp;in interface&nbsp;<code><a href="../../../genius/core/protocol/MultilateralProtocol.html" title="interface in genius.core.protocol">MultilateralProtocol</a></code></dd>
613<dt><span class="paramLabel">Parameters:</span></dt>
614<dd><code>reason</code> - Optionally give a reason why the protocol is finished.</dd>
615</dl>
616</li>
617</ul>
618<a name="listenToAll-java.util.List-">
619<!-- -->
620</a>
621<ul class="blockList">
622<li class="blockList">
623<h4>listenToAll</h4>
624<pre>protected static&nbsp;java.util.Map&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>,java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&gt;&nbsp;listenToAll(java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties)</pre>
625<dl>
626<dt><span class="paramLabel">Parameters:</span></dt>
627<dd><code>parties</code> - all the parties in the negotiation</dd>
628<dt><span class="returnLabel">Returns:</span></dt>
629<dd>map with as keys all <a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties"><code>NegotiationParty</code></a> and as values for
630 each key all other <a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties"><code>NegotiationParty</code></a>s.</dd>
631</dl>
632</li>
633</ul>
634<a name="listenToNone-java.util.List-">
635<!-- -->
636</a>
637<ul class="blockListLast">
638<li class="blockList">
639<h4>listenToNone</h4>
640<pre>protected static&nbsp;java.util.Map&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>,java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&gt;&nbsp;listenToNone(java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties)</pre>
641<dl>
642<dt><span class="paramLabel">Parameters:</span></dt>
643<dd><code>parties</code> - all the parties in the negotiation</dd>
644<dt><span class="returnLabel">Returns:</span></dt>
645<dd>map with as keys all <a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties"><code>NegotiationParty</code></a> and as values an
646 empty list.</dd>
647</dl>
648</li>
649</ul>
650</li>
651</ul>
652</li>
653</ul>
654</div>
655</div>
656<!-- ========= END OF CLASS DATA ========= -->
657<!-- ======= START OF BOTTOM NAVBAR ====== -->
658<div class="bottomNav"><a name="navbar.bottom">
659<!-- -->
660</a>
661<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
662<a name="navbar.bottom.firstrow">
663<!-- -->
664</a>
665<ul class="navList" title="Navigation">
666<li><a href="../../../overview-summary.html">Overview</a></li>
667<li><a href="package-summary.html">Package</a></li>
668<li class="navBarCell1Rev">Class</li>
669<li><a href="class-use/DefaultMultilateralProtocol.html">Use</a></li>
670<li><a href="package-tree.html">Tree</a></li>
671<li><a href="../../../deprecated-list.html">Deprecated</a></li>
672<li><a href="../../../index-all.html">Index</a></li>
673<li><a href="../../../help-doc.html">Help</a></li>
674</ul>
675</div>
676<div class="subNav">
677<ul class="navList">
678<li><a href="../../../genius/core/protocol/BilateralAtomicNegotiationSession.html" title="class in genius.core.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
679<li><a href="../../../genius/core/protocol/MediatorFeedbackBasedProtocol.html" title="class in genius.core.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
680</ul>
681<ul class="navList">
682<li><a href="../../../index.html?genius/core/protocol/DefaultMultilateralProtocol.html" target="_top">Frames</a></li>
683<li><a href="DefaultMultilateralProtocol.html" target="_top">No&nbsp;Frames</a></li>
684</ul>
685<ul class="navList" id="allclasses_navbar_bottom">
686<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
687</ul>
688<div>
689<script type="text/javascript"><!--
690 allClassesLink = document.getElementById("allclasses_navbar_bottom");
691 if(window==top) {
692 allClassesLink.style.display = "block";
693 }
694 else {
695 allClassesLink.style.display = "none";
696 }
697 //-->
698</script>
699</div>
700<div>
701<ul class="subNavList">
702<li>Summary:&nbsp;</li>
703<li>Nested&nbsp;|&nbsp;</li>
704<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
705<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
706<li><a href="#method.summary">Method</a></li>
707</ul>
708<ul class="subNavList">
709<li>Detail:&nbsp;</li>
710<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
711<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
712<li><a href="#method.detail">Method</a></li>
713</ul>
714</div>
715<a name="skip.navbar.bottom">
716<!-- -->
717</a></div>
718<!-- ======== END OF BOTTOM NAVBAR ======= -->
719</body>
720</html>
Note: See TracBrowser for help on using the repository browser.