Skip to content

File SKAID.java

File List > internal > message > SKAID.java

Go to the documentation of this file

package skydata.internal.message;

import java.io.Serializable;
import java.util.Objects;

import jade.core.AID;

public class SKAID implements Serializable, Comparable<SKAID>, Cloneable {

    protected String name;

    protected String address;

    protected int nbMigration;

    public SKAID(String name, String address) {
        this.name = name;
        this.address = address;
    }

    public SKAID() {
    }

    final public AID toAID() {
        AID a = new AID(name, AID.ISGUID);
        a.addAddresses(address);
        return a;
    }

    final public String getName() {
        return name;
    }

    final public void setName(String n) {
        name = n;
    }

    final public String getAddress() {
        return address;
    }

    final public int getNbMigration() {
        return nbMigration;
    }

    public void nextMigration() {
        ++nbMigration;
    }

    public void updateMigration(int m) {
        nbMigration = m;
    }

    public void updateAddress(String a) {
        address = a;
    }

    public void update(String a) {
        nbMigration += 1;
        address = a;
    }

    public void update(String a, int n) {
        nbMigration = n;
        address = a;
    }

    @Override
    public boolean equals(Object o) {
        if (o == this) {
            return true;
        }
        if (o == null || getClass() != o.getClass())
            return false;
        SKAID a = (SKAID) o;
        return this.name.equals(a.name);
    }

    @Override
    public int compareTo(SKAID o) {
        return name.compareTo(o.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name);
    }

    public Object clone() {
        try {
            return super.clone();
        } catch (CloneNotSupportedException e) {
            return null;
        }
    }

    @Override
    public String toString() {
        return "(" + name + " #" + nbMigration + " : " + address + ")";
    }
}