view src/main/java/alice/datasegment/CommandType.java @ 419:aefbe41fcf12 dispose

change tab to space
author sugi
date Tue, 15 Jul 2014 16:00:22 +0900
parents 8f71c3e6f11d
children 6e304a7a60e7
line wrap: on
line source

package alice.datasegment;

import java.util.HashMap;

public enum CommandType {
    PUT,
    UPDATE, // remove a DataSegment value and put
    PEEK,
    TAKE,
    REMOVE,
    REPLY,
    CLOSE,
    FINISH, 
    PING,
    RESPONSE;

    public int id;
    public static HashMap<Integer, CommandType> hash = new HashMap<Integer, CommandType>();
    private static int lastId = 0;

    private CommandType(int id) {
        this.id = id;
        setLastId(id);
    }

    private CommandType() {
        this.id = incrementLastId();
    }

    private void setLastId(int id) {
        lastId =id;
    }

    private int incrementLastId() {
        return ++lastId;
    }

    public static CommandType getCommandTypeFromId(int id) {
        return hash.get(id);
    }

    static {
        for (CommandType type : CommandType.values()) {
            hash.put(type.id, type);
        }
    }

}