blob: a89879a59690bee68c09963b0ad15e0329ddd700 [file] [log] [blame]
Sho SHIMIZU9257b0c2014-08-13 15:00:10 -07001package net.onrc.onos.core.newintent;
2
3import net.onrc.onos.api.newintent.IntentId;
Sho SHIMIZU7cd8a422014-08-27 16:05:21 -07004import net.onrc.onos.core.util.AbstractBlockAllocatorBasedIdGenerator;
Sho SHIMIZU9257b0c2014-08-13 15:00:10 -07005import net.onrc.onos.core.util.IdBlockAllocator;
Sho SHIMIZU9257b0c2014-08-13 15:00:10 -07006
7/**
Sho SHIMIZU7cd8a422014-08-27 16:05:21 -07008 * An implementation of {@link net.onrc.onos.core.util.IdGenerator} of intent ID,
9 * which uses {@link IdBlockAllocator}.
Sho SHIMIZU9257b0c2014-08-13 15:00:10 -070010 */
Sho SHIMIZU7cd8a422014-08-27 16:05:21 -070011public class IdBlockAllocatorBasedIntentIdGenerator extends AbstractBlockAllocatorBasedIdGenerator<IntentId> {
Sho SHIMIZU9257b0c2014-08-13 15:00:10 -070012
Sho SHIMIZU42b92812014-08-17 19:56:44 -070013 /**
Sho SHIMIZUa8fae012014-08-18 10:57:30 -070014 * Constructs an intent ID generator, which uses the specified ID block allocator
15 * to generate a global unique intent ID.
Sho SHIMIZU42b92812014-08-17 19:56:44 -070016 *
Sho SHIMIZUa8fae012014-08-18 10:57:30 -070017 * @param allocator the ID block allocator to use for generating intent IDs
Sho SHIMIZU42b92812014-08-17 19:56:44 -070018 */
Sho SHIMIZU9257b0c2014-08-13 15:00:10 -070019 public IdBlockAllocatorBasedIntentIdGenerator(IdBlockAllocator allocator) {
Sho SHIMIZU7cd8a422014-08-27 16:05:21 -070020 super(allocator);
Sho SHIMIZU9257b0c2014-08-13 15:00:10 -070021 }
22
23 @Override
Sho SHIMIZU7cd8a422014-08-27 16:05:21 -070024 protected IntentId convertFrom(long value) {
25 return new IntentId(value);
Sho SHIMIZU9257b0c2014-08-13 15:00:10 -070026 }
27}