37 | | |
38 | | [[Image(https://tracinsy.ewi.tudelft.nl/trac/Genius2/export/333/design/classdiagram.svg)]] |
| 37 | This section gives an overview of the core functionalties. |
| 38 | |
| 39 | The image below gives an overview class diagram with the genius2 core modules and their functionalities. The figure also shows |
| 40 | the 3 servers and the functions inside those. |
| 41 | [[Image(https://tracinsy.ewi.tudelft.nl/trac/Genius2/export/333/design/classdiagram.svg, 80%)]] |
| 42 | |
| 43 | All classes are documented in detail in the javadoc with the code. Here we just give a brief overview. |
| 44 | |
| 45 | == issuevalue |
| 46 | This module contains the basic objects that make up a bid: issues, values, domains, and bids. The issues are just String objects. There are 2 types of values: numeric and discrete. DiscreteValueSet contains the list of DiscreteValue which is a basically a possible (string) values for the issue. NumberValueSet contains a Range which is a set of numbers defined by the minimum, maximum and stepsize (upwards from the minimum). A Domain contains a map, with each key the issue (string) and the value a ValueSet. Finally, a Bid is a Map where the key is the issue and the value either a DiscreteValue or NumberValue that is valid for that issue. |
| 47 | |
| 48 | Your party can create any bid that it likes but the protocol will check if your bid fits in the current negotiation and may kick you out of the negotiation if you don't behave properly. |
| 49 | |
| 50 | All number values are computed as BigDecimal to avoid rounding errors. |
| 51 | |
| 52 | == profile |