LightVoting
 All Classes Namespaces Files Functions Variables Pages
org.lightvoting.simulation.agent.CVotingAgent.CVotingAgentGenerator Class Reference

Class CVotingAgentGenerator. More...

Inherits IBaseAgentGenerator< CVotingAgent >.

+ Collaboration diagram for org.lightvoting.simulation.agent.CVotingAgent.CVotingAgentGenerator:

Public Member Functions

 CVotingAgentGenerator (final CSend p_send, final InputStream p_stream, final CEnvironment p_environment, final int p_altNum, final String p_grouping, final String p_fileName) throws Exception
 constructor of the generator More...
 
final CVotingAgent generatesingle (final Object...p_data)
 
final void unregister (final CVotingAgent p_agent)
 

Private Attributes

final AtomicLong m_agentcounter = new AtomicLong()
 Current free agent id, needs to be thread-safe, therefore using AtomicLong. More...
 
final int m_altNum
 number of alternatives More...
 
final CEnvironment m_environment
 environment reference More...
 
final String m_fileName
 
final String m_grouping
 
final CSend m_send
 Store reference to send action to registered agents upon creation. More...
 

Detailed Description

Definition at line 466 of file CVotingAgent.java.

Constructor & Destructor Documentation

org.lightvoting.simulation.agent.CVotingAgent.CVotingAgentGenerator.CVotingAgentGenerator ( final CSend  p_send,
final InputStream  p_stream,
final CEnvironment  p_environment,
final int  p_altNum,
final String  p_grouping,
final String  p_fileName 
) throws Exception
Parameters
p_streamASL code as any stream e.g. FileInputStream
p_altNumnumber of alternatives
p_groupinggrouping algorithm
p_fileNameh5 file
Exceptions
ExceptionThrown if something goes wrong while generating agents.

Definition at line 499 of file CVotingAgent.java.

References org.lightvoting.simulation.agent.CVotingAgent.CVotingAgentGenerator.m_altNum, org.lightvoting.simulation.agent.CVotingAgent.CVotingAgentGenerator.m_environment, org.lightvoting.simulation.agent.CVotingAgent.CVotingAgentGenerator.m_fileName, org.lightvoting.simulation.agent.CVotingAgent.CVotingAgentGenerator.m_grouping, and org.lightvoting.simulation.agent.CVotingAgent.CVotingAgentGenerator.m_send.

503  {
504 
505  super(
506  // input ASL stream
507  p_stream,
508 
509  // a set with all possible actions for the agent
510  Stream.concat(
511  // we use all build-in actions of LightJason
512  CCommon.actionsFromPackage(),
513  Stream.concat(
514  // use the actions which are defined inside the agent class
515  CCommon.actionsFromAgentClass( CVotingAgent.class ),
516  // add VotingAgent related external actions
517  Stream.of(
518  p_send
519  )
520  )
521  // build the set with a collector
522  ).collect( Collectors.toSet() ),
523 
524  // aggregation function for the optimization function, here
525  // we use an empty function
526  IAggregation.EMPTY,
527 
528  // variable builder
529  new CVariableBuilder( p_environment )
530  );
531 
532  m_send = p_send;
533  m_environment = p_environment;
534  m_altNum = p_altNum;
535  m_grouping = p_grouping;
536  m_fileName = p_fileName;
537  }
final CSend m_send
Store reference to send action to registered agents upon creation.

Member Function Documentation

final CVotingAgent org.lightvoting.simulation.agent.CVotingAgent.CVotingAgentGenerator.generatesingle ( final Object...  p_data)

Definition at line 550 of file CVotingAgent.java.

References org.lightvoting.simulation.agent.CVotingAgent.CVotingAgent(), org.lightvoting.simulation.agent.CVotingAgent.CVotingAgentGenerator.m_agentcounter, org.lightvoting.simulation.agent.CVotingAgent.CVotingAgentGenerator.m_altNum, org.lightvoting.simulation.agent.CVotingAgent.CVotingAgentGenerator.m_environment, org.lightvoting.simulation.agent.CVotingAgent.CVotingAgentGenerator.m_fileName, and org.lightvoting.simulation.agent.CVotingAgent.CVotingAgentGenerator.m_grouping.

551  {
552  // register a new agent object at the send action and the register
553  // method retruns the object reference
554 
555  final CVotingAgent l_votingAgent = new CVotingAgent(
556 
557  // create a string with the agent name "agent <number>"
558  // get the value of the counter first and increment, build the agent
559  // name with message format (see Java documentation)
560  MessageFormat.format( "agent {0}", m_agentcounter.getAndIncrement() ),
561 
562  // add the agent configuration
563  m_configuration,
564  // add the chair agent
565  ( (CChairAgent.CChairAgentGenerator) p_data[0] ).generatesingle(),
567  m_altNum,
568  m_grouping,
569  m_fileName
570  );
571 
572  l_votingAgent.sleep( Integer.MAX_VALUE );
573  m_environment.initialset( l_votingAgent );
574  return m_send.register( l_votingAgent );
575 
576  }
final AtomicLong m_agentcounter
Current free agent id, needs to be thread-safe, therefore using AtomicLong.
CVotingAgent(final String p_name, final IAgentConfiguration< CVotingAgent > p_configuration, final IBaseAgent< CChairAgent > p_chairagent, final CEnvironment p_environment, final int p_altNum, final String p_grouping, final String p_fileName)
constructor of the agent

+ Here is the call graph for this function:

final void org.lightvoting.simulation.agent.CVotingAgent.CVotingAgentGenerator.unregister ( final CVotingAgent  p_agent)

Definition at line 541 of file CVotingAgent.java.

542  {
543  m_send.unregister( p_agent );
544  }

Member Data Documentation

final AtomicLong org.lightvoting.simulation.agent.CVotingAgent.CVotingAgentGenerator.m_agentcounter = new AtomicLong()
private
final int org.lightvoting.simulation.agent.CVotingAgent.CVotingAgentGenerator.m_altNum
private
final CEnvironment org.lightvoting.simulation.agent.CVotingAgent.CVotingAgentGenerator.m_environment
private
final String org.lightvoting.simulation.agent.CVotingAgent.CVotingAgentGenerator.m_fileName
private
final String org.lightvoting.simulation.agent.CVotingAgent.CVotingAgentGenerator.m_grouping
private
final CSend org.lightvoting.simulation.agent.CVotingAgent.CVotingAgentGenerator.m_send
private