com.github.dennisit.vplus.data.enums.common.EnableEnum Maven / Gradle / Ivy
/*--------------------------------------------------------------------------
* Copyright (c) 2010-2020, Elon.su All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the elon developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: Elon.su, you can also mail [email protected]
*--------------------------------------------------------------------------
*/
package com.github.dennisit.vplus.data.enums.common;
import com.github.dennisit.vplus.data.enums.support.EnumType;
import com.github.dennisit.vplus.data.enums.support.EnumWrap;
import com.google.common.collect.Lists;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.List;
/**
* Created by Elon.su on 17/7/15.
*/
@Getter
@AllArgsConstructor
public enum EnableEnum implements EnumType {
ENABLED(1, "有效"), DISABLE(3, "无效");
private int value;
private String label;
/**
* 如果想使用内置通用扩展组件,建议如下实现, 因为枚举的values()是通过编译器实现的,
* 所以枚举元素集合只能通过枚举本身来透传数值, 这里强烈建议使用单例类,否则每次有新创建对象开销
*/
public static class Opt extends EnumWrap {
@Override
public List valueList() {
return Lists.newArrayList(values());
}
public static Opt INSTANCE(){
return SingleHold.opt;
}
private static class SingleHold{
public static Opt opt = new Opt();
}
}
}