Java Enum 实现

public final class Priority
{
/**
* System priority, reserved for high priority management and system configuration.
* <p>
*/
public static final Priority SYSTEM = new Priority(0x00);


/**
* Urgent priority, for urgent frames.
* <p>
*/
public static final Priority URGENT = new Priority(0x02);


/**
* Normal priority, the default for short frames.
* <p>
*/
public static final Priority NORMAL = new Priority(0x01);


/**
* Low priority, used for long frames.
* <p>
*/
public static final Priority LOW = new Priority(0x03);


/**
* Constant with the 2 Bit representation of this priority used in the message
* priority field.
* <p>
*/
public final byte value;


private Priority(int v)
{
value = (byte) v;
}


/**
* Returns the priority of the supplied priority value code.
* <p>

* @param value priority value code, 0 &lt;= value &lt;= 3
* @return the corresponding priority object
*/
public static Priority get(int value)
{
if (value == 1)
return NORMAL;
if (value == 0)
return SYSTEM;
if (value == 3)
return LOW;
if (value == 2)
return URGENT;
throw new KNXIllegalArgumentException("invalid priority value");
}


/**
* Returns the priority of the supplied priority value representation.
* <p>
* The following textual representations for <code>value</code> are allowed:
* <ul>
* <li>"system"</li>
* <li>"normal"</li>
* <li>"urgent"</li>
* <li>"low"</li>
* </ul>
* These are in accordance with the ones returned by {@link #toString()}.

* @param value priority value in textual representation, value is treated case
*        insensitive
* @return the corresponding priority object
*/
public static Priority get(String value)
{
if ("system".equalsIgnoreCase(value))
return SYSTEM;
if ("normal".equalsIgnoreCase(value))
return NORMAL;
if ("urgent".equalsIgnoreCase(value))
return URGENT;
if ("low".equalsIgnoreCase(value))
return LOW;
throw new KNXIllegalArgumentException("invalid priority value");
}


/**
* Returns the priority in textual representation.
* <p>
* <ul>
* <li>{@link #SYSTEM} returns "system"</li>
* <li>{@link #NORMAL} returns "normal"</li>
* <li>{@link #LOW} returns "low"</li>
* <li>{@link #URGENT} returns "urgent"</li>
* </ul>

* @return priority as string
*/
public String toString()
{
return value == 0 ? "system" : value == 1 ? "normal" : value == 2 ? "urgent"
: "low";
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值