Package org.powertac.common
Class IdGenerator
java.lang.Object
org.powertac.common.IdGenerator
public class IdGenerator extends Object
Generates numeric ID values for domain types. ID values are of the
form xA+B, where x is the multiplier, A is an integer prefix, and B is the
value of a counter incremented with each call. The use of a prefix allows
the server to give each broker a space of ID values and prevent collisions.
- Author:
- John Collins
-
Constructor Summary
Constructors Constructor Description IdGenerator() -
Method Summary
Modifier and Type Method Description static longcreateId()Generates a numeric ID as xA+B.static intextractPrefix(long id)Returns the id prefix for the given id.static intgetMultiplier()Returns the multiplier for an id, needed to validate id valuesstatic intgetPrefix()Returns the id prefix - needed for testing.static StringgetString(long id)Converts ID value to String as A.B.static voidrecycle()Recycles the generator.static voidsetPrefix(int value)Each entity living in a separate process must have a different prefix value.
-
Constructor Details
-
IdGenerator
public IdGenerator()
-
-
Method Details
-
createId
public static long createId()Generates a numeric ID as xA+B. -
setPrefix
public static void setPrefix(int value)Each entity living in a separate process must have a different prefix value. These values are presumably set by the competition control service. -
getPrefix
public static int getPrefix()Returns the id prefix - needed for testing. -
getString
Converts ID value to String as A.B. -
getMultiplier
public static int getMultiplier()Returns the multiplier for an id, needed to validate id values -
extractPrefix
public static int extractPrefix(long id)Returns the id prefix for the given id. -
recycle
public static void recycle()Recycles the generator. This should only be used in a setting where multiple sessions are run in a single process.
-