package net.onrc.onos.core.registry;

import org.codehaus.jackson.annotate.JsonProperty;


public class ControllerRegistryEntry implements Comparable<ControllerRegistryEntry> {

    private String controllerId;
    private int sequenceNumber;

    public ControllerRegistryEntry(String controllerId, int sequenceNumber) {
        this.controllerId = controllerId;
        this.sequenceNumber = sequenceNumber;
    }

    @JsonProperty("controllerId")
    public String getControllerId() {
        return controllerId;
    }

    @Override
    public int compareTo(ControllerRegistryEntry o) {
        return sequenceNumber - o.sequenceNumber;
        //return 0;
    }

}
