source: javadoc/genius/core/parties/NegotiationParty.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: 17.7 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>NegotiationParty (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="NegotiationParty (Genius Core Documentation)";
16 }
17 }
18 catch(err) {
19 }
20//-->
21var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6};
22var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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/NegotiationParty.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/parties/NegotiationInfo.html" title="class in genius.core.parties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
53<li><a href="../../../genius/core/parties/NegotiationPartyInternal.html" title="class in genius.core.parties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
54</ul>
55<ul class="navList">
56<li><a href="../../../index.html?genius/core/parties/NegotiationParty.html" target="_top">Frames</a></li>
57<li><a href="NegotiationParty.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>Field&nbsp;|&nbsp;</li>
79<li>Constr&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>Field&nbsp;|&nbsp;</li>
85<li>Constr&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.parties</div>
96<h2 title="Interface NegotiationParty" class="title">Interface NegotiationParty</h2>
97</div>
98<div class="contentContainer">
99<div class="description">
100<ul class="blockList">
101<li class="blockList">
102<dl>
103<dt>All Superinterfaces:</dt>
104<dd>java.io.Serializable</dd>
105</dl>
106<dl>
107<dt>All Known Subinterfaces:</dt>
108<dd><a href="../../../genius/core/parties/Mediator.html" title="interface in genius.core.parties">Mediator</a></dd>
109</dl>
110<dl>
111<dt>All Known Implementing Classes:</dt>
112<dd><a href="../../../genius/core/parties/AbstractNegotiationParty.html" title="class in genius.core.parties">AbstractNegotiationParty</a>, <a href="../../../genius/core/Agent.html" title="class in genius.core">Agent</a>, <a href="../../../genius/core/AgentAdapter.html" title="class in genius.core">AgentAdapter</a>, <a href="../../../genius/core/boaframework/BOAagent.html" title="class in genius.core.boaframework">BOAagent</a>, <a href="../../../genius/core/boaframework/BoaParty.html" title="class in genius.core.boaframework">BoaParty</a></dd>
113</dl>
114<hr>
115<br>
116<pre>public interface <span class="typeNameLabel">NegotiationParty</span>
117extends java.io.Serializable</pre>
118<div class="block">Base interface for Negotiation parties. All parties must minimally implement
119 this interface. Parties can extend <a href="../../../genius/core/parties/AbstractNegotiationParty.html" title="class in genius.core.parties"><code>AbstractNegotiationParty</code></a> to get
120 more support from the parent class. Parties can do multilateral negotiations.
121 Notice that 'multilateral' includes 'bilateral'.
122
123 <h1>Protocol</h1>
124 <p>
125 Your implementation must adhere to the protocol that it specifies in
126 <a href="../../../genius/core/parties/NegotiationParty.html#getProtocol--"><code>getProtocol()</code></a>. If it doesn't, it may be kicked from the negotiation
127 at runtime.
128
129 <p>
130 Implementors of this class must have a public no-argument constructor. In
131 fact we recommend not to implement any constructor at all and do
132 initialization in the init() call.
133 <p>
134 Immediately after construction of the class, the functiondsf
135 <code>#init(AbstractUtilitySpace, Deadline, TimeLineInfo, long, AgentID,PersistentDataContainer)</code>
136 will be called.
137
138 <h1>Sand-boxing</h1>
139 <p>
140 The functions in this interface are implemented by competitors in a
141 competition of agents. All calls to this interface may be sand-boxed in an
142 attempt to ensure the competition will follow the protocols (instead of
143 crashing). Sand-boxing attempts to protect the rest of the system for
144 out-of-memory, time-out, throws, and various types of <code>SecurityManager</code>
145 related issues (eg calling <code>System.exit(int)</code>) that may occur inside
146 the implemented party.
147 </p>
148 <p>
149 Some functions are limited to a fixed time limit, eg 1 second. Other
150 functions may be limited to a deadline as set in the actual settings for the
151 negotiation. In that case, the deadline is a global deadline for which the
152 entire negotiation session must be completed. If the deadline is round based,
153 the session is usually also time-limited to 180 seconds, to ensure that even
154 in a round-based negotiation, the negotiotion will end in a reasonable time.
155 </p></div>
156</li>
157</ul>
158</div>
159<div class="summary">
160<ul class="blockList">
161<li class="blockList">
162<!-- ========== METHOD SUMMARY =========== -->
163<ul class="blockList">
164<li class="blockList"><a name="method.summary">
165<!-- -->
166</a>
167<h3>Method Summary</h3>
168<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
169<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>
170<tr>
171<th class="colFirst" scope="col">Modifier and Type</th>
172<th class="colLast" scope="col">Method and Description</th>
173</tr>
174<tr id="i0" class="altColor">
175<td class="colFirst"><code><a href="../../../genius/core/actions/Action.html" title="interface in genius.core.actions">Action</a></code></td>
176<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/parties/NegotiationParty.html#chooseAction-java.util.List-">chooseAction</a></span>(java.util.List&lt;java.lang.Class&lt;? extends <a href="../../../genius/core/actions/Action.html" title="interface in genius.core.actions">Action</a>&gt;&gt;&nbsp;possibleActions)</code>
177<div class="block">When this function is called, it is expected that the Party chooses one
178 of the actions from the possible action list and returns an instance of
179 the chosen action.</div>
180</td>
181</tr>
182<tr id="i1" class="rowColor">
183<td class="colFirst"><code>java.lang.String</code></td>
184<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/parties/NegotiationParty.html#getDescription--">getDescription</a></span>()</code>&nbsp;</td>
185</tr>
186<tr id="i2" class="altColor">
187<td class="colFirst"><code>java.lang.Class&lt;? extends <a href="../../../genius/core/protocol/MultilateralProtocol.html" title="interface in genius.core.protocol">MultilateralProtocol</a>&gt;</code></td>
188<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/parties/NegotiationParty.html#getProtocol--">getProtocol</a></span>()</code>
189<div class="block">Get the protocol that this party supports.</div>
190</td>
191</tr>
192<tr id="i3" class="rowColor">
193<td class="colFirst"><code>void</code></td>
194<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/parties/NegotiationParty.html#init-genius.core.parties.NegotiationInfo-">init</a></span>(<a href="../../../genius/core/parties/NegotiationInfo.html" title="class in genius.core.parties">NegotiationInfo</a>&nbsp;info)</code>
195<div class="block">Initializes the party, informing it of many negotiation details.</div>
196</td>
197</tr>
198<tr id="i4" class="altColor">
199<td class="colFirst"><code>java.util.Map&lt;java.lang.String,java.lang.String&gt;</code></td>
200<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/parties/NegotiationParty.html#negotiationEnded-genius.core.Bid-">negotiationEnded</a></span>(<a href="../../../genius/core/Bid.html" title="class in genius.core">Bid</a>&nbsp;acceptedBid)</code>
201<div class="block">This is called to inform the agent that the negotiation has been ended.</div>
202</td>
203</tr>
204<tr id="i5" class="rowColor">
205<td class="colFirst"><code>void</code></td>
206<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/parties/NegotiationParty.html#receiveMessage-genius.core.AgentID-genius.core.actions.Action-">receiveMessage</a></span>(<a href="../../../genius/core/AgentID.html" title="class in genius.core">AgentID</a>&nbsp;sender,
207 <a href="../../../genius/core/actions/Action.html" title="interface in genius.core.actions">Action</a>&nbsp;action)</code>
208<div class="block">This method is called to inform the party that another
209 <a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties"><code>NegotiationParty</code></a> chose an <a href="../../../genius/core/actions/Action.html" title="interface in genius.core.actions"><code>Action</code></a>.</div>
210</td>
211</tr>
212</table>
213</li>
214</ul>
215</li>
216</ul>
217</div>
218<div class="details">
219<ul class="blockList">
220<li class="blockList">
221<!-- ============ METHOD DETAIL ========== -->
222<ul class="blockList">
223<li class="blockList"><a name="method.detail">
224<!-- -->
225</a>
226<h3>Method Detail</h3>
227<a name="init-genius.core.parties.NegotiationInfo-">
228<!-- -->
229</a>
230<ul class="blockList">
231<li class="blockList">
232<h4>init</h4>
233<pre>void&nbsp;init(<a href="../../../genius/core/parties/NegotiationInfo.html" title="class in genius.core.parties">NegotiationInfo</a>&nbsp;info)</pre>
234<div class="block">Initializes the party, informing it of many negotiation details. This
235 MUST be called exactly once, immediately after construction of any class
236 implementing this.</div>
237<dl>
238<dt><span class="paramLabel">Parameters:</span></dt>
239<dd><code>info</code> - information about the negotiation that this party is part of.</dd>
240</dl>
241</li>
242</ul>
243<a name="chooseAction-java.util.List-">
244<!-- -->
245</a>
246<ul class="blockList">
247<li class="blockList">
248<h4>chooseAction</h4>
249<pre><a href="../../../genius/core/actions/Action.html" title="interface in genius.core.actions">Action</a>&nbsp;chooseAction(java.util.List&lt;java.lang.Class&lt;? extends <a href="../../../genius/core/actions/Action.html" title="interface in genius.core.actions">Action</a>&gt;&gt;&nbsp;possibleActions)</pre>
250<div class="block">When this function is called, it is expected that the Party chooses one
251 of the actions from the possible action list and returns an instance of
252 the chosen action.</div>
253<dl>
254<dt><span class="paramLabel">Parameters:</span></dt>
255<dd><code>possibleActions</code> - List of all actions possible.</dd>
256<dt><span class="returnLabel">Returns:</span></dt>
257<dd>The chosen <a href="../../../genius/core/actions/Action.html" title="interface in genius.core.actions"><code>Action</code></a>.</dd>
258</dl>
259</li>
260</ul>
261<a name="receiveMessage-genius.core.AgentID-genius.core.actions.Action-">
262<!-- -->
263</a>
264<ul class="blockList">
265<li class="blockList">
266<h4>receiveMessage</h4>
267<pre>void&nbsp;receiveMessage(<a href="../../../genius/core/AgentID.html" title="class in genius.core">AgentID</a>&nbsp;sender,
268 <a href="../../../genius/core/actions/Action.html" title="interface in genius.core.actions">Action</a>&nbsp;action)</pre>
269<div class="block">This method is called to inform the party that another
270 <a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties"><code>NegotiationParty</code></a> chose an <a href="../../../genius/core/actions/Action.html" title="interface in genius.core.actions"><code>Action</code></a>.</div>
271<dl>
272<dt><span class="paramLabel">Parameters:</span></dt>
273<dd><code>sender</code> - The initiator of the action.This is either the AgentID, or
274 null if the sender is not an agent (e.g., the protocol).</dd>
275<dd><code>action</code> - The action performed</dd>
276</dl>
277</li>
278</ul>
279<a name="getDescription--">
280<!-- -->
281</a>
282<ul class="blockList">
283<li class="blockList">
284<h4>getDescription</h4>
285<pre>java.lang.String&nbsp;getDescription()</pre>
286<dl>
287<dt><span class="returnLabel">Returns:</span></dt>
288<dd>a human-readable description for this party.</dd>
289</dl>
290</li>
291</ul>
292<a name="getProtocol--">
293<!-- -->
294</a>
295<ul class="blockList">
296<li class="blockList">
297<h4>getProtocol</h4>
298<pre>java.lang.Class&lt;? extends <a href="../../../genius/core/protocol/MultilateralProtocol.html" title="interface in genius.core.protocol">MultilateralProtocol</a>&gt;&nbsp;getProtocol()</pre>
299<div class="block">Get the protocol that this party supports.</div>
300<dl>
301<dt><span class="returnLabel">Returns:</span></dt>
302<dd>the actual supported <a href="../../../genius/core/protocol/MultilateralProtocol.html" title="interface in genius.core.protocol"><code>MultilateralProtocol</code></a>, usually
303 <a href="../../../genius/core/protocol/StackedAlternatingOffersProtocol.html" title="class in genius.core.protocol"><code>StackedAlternatingOffersProtocol</code></a>.</dd>
304</dl>
305</li>
306</ul>
307<a name="negotiationEnded-genius.core.Bid-">
308<!-- -->
309</a>
310<ul class="blockListLast">
311<li class="blockList">
312<h4>negotiationEnded</h4>
313<pre>java.util.Map&lt;java.lang.String,java.lang.String&gt;&nbsp;negotiationEnded(<a href="../../../genius/core/Bid.html" title="class in genius.core">Bid</a>&nbsp;acceptedBid)</pre>
314<div class="block">This is called to inform the agent that the negotiation has been ended.
315 This allows the agent to record some final conclusions about the run.</div>
316<dl>
317<dt><span class="paramLabel">Parameters:</span></dt>
318<dd><code>acceptedBid</code> - the final accepted bid, or null if no agreement was reached.</dd>
319<dt><span class="returnLabel">Returns:</span></dt>
320<dd><code>Map</code> containing data to log for this agent. null is equal
321 to returning an empty HashMap. Typically, this info will be
322 logged by <a href="../../../genius/core/xml/XmlWriteStream.html#write-java.lang.String-java.util.Map-"><code>XmlWriteStream.write(String, java.util.Map)</code></a> to
323 an XML file.</dd>
324</dl>
325</li>
326</ul>
327</li>
328</ul>
329</li>
330</ul>
331</div>
332</div>
333<!-- ========= END OF CLASS DATA ========= -->
334<!-- ======= START OF BOTTOM NAVBAR ====== -->
335<div class="bottomNav"><a name="navbar.bottom">
336<!-- -->
337</a>
338<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
339<a name="navbar.bottom.firstrow">
340<!-- -->
341</a>
342<ul class="navList" title="Navigation">
343<li><a href="../../../overview-summary.html">Overview</a></li>
344<li><a href="package-summary.html">Package</a></li>
345<li class="navBarCell1Rev">Class</li>
346<li><a href="class-use/NegotiationParty.html">Use</a></li>
347<li><a href="package-tree.html">Tree</a></li>
348<li><a href="../../../deprecated-list.html">Deprecated</a></li>
349<li><a href="../../../index-all.html">Index</a></li>
350<li><a href="../../../help-doc.html">Help</a></li>
351</ul>
352</div>
353<div class="subNav">
354<ul class="navList">
355<li><a href="../../../genius/core/parties/NegotiationInfo.html" title="class in genius.core.parties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
356<li><a href="../../../genius/core/parties/NegotiationPartyInternal.html" title="class in genius.core.parties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
357</ul>
358<ul class="navList">
359<li><a href="../../../index.html?genius/core/parties/NegotiationParty.html" target="_top">Frames</a></li>
360<li><a href="NegotiationParty.html" target="_top">No&nbsp;Frames</a></li>
361</ul>
362<ul class="navList" id="allclasses_navbar_bottom">
363<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
364</ul>
365<div>
366<script type="text/javascript"><!--
367 allClassesLink = document.getElementById("allclasses_navbar_bottom");
368 if(window==top) {
369 allClassesLink.style.display = "block";
370 }
371 else {
372 allClassesLink.style.display = "none";
373 }
374 //-->
375</script>
376</div>
377<div>
378<ul class="subNavList">
379<li>Summary:&nbsp;</li>
380<li>Nested&nbsp;|&nbsp;</li>
381<li>Field&nbsp;|&nbsp;</li>
382<li>Constr&nbsp;|&nbsp;</li>
383<li><a href="#method.summary">Method</a></li>
384</ul>
385<ul class="subNavList">
386<li>Detail:&nbsp;</li>
387<li>Field&nbsp;|&nbsp;</li>
388<li>Constr&nbsp;|&nbsp;</li>
389<li><a href="#method.detail">Method</a></li>
390</ul>
391</div>
392<a name="skip.navbar.bottom">
393<!-- -->
394</a></div>
395<!-- ======== END OF BOTTOM NAVBAR ======= -->
396</body>
397</html>
Note: See TracBrowser for help on using the repository browser.