enum.java

来自「一个java工作流引擎」· Java 代码 · 共 49 行

JAVA
49
字号
package org.jbpm.util.lang;

import java.io.*;
import java.util.*;

public class Enum implements Serializable {
  
  private static Map enums = new HashMap();
  protected Object id = null;
  
  public Object getId() {
    return id; 
  }

  protected Enum( Object id ) {
    if ( id == null ) throw new NullPointerException( "id of a '" + getClass().getName() + "' is null" );
    this.id = id;

    // add this enum to the enums
    Class enumClass = this.getClass();
		Map classEnums = (Map) enums.get( enumClass );
		if ( classEnums == null ) {
		  classEnums = new HashMap();
		  enums.put( enumClass, classEnums );
		}
    if ( classEnums.containsKey( id ) ) throw new IllegalArgumentException( "duplicate id '" + id + "' was used to create an enum of class '" + getClass().getName() + "'" );
    classEnums.put( id, this );
  }
  
  public static Enum findById( Class enumClass, Object id ) {
    Enum enum = null;
    
    Map classEnums = (Map) enums.get( enumClass );
    if ( classEnums != null ) {
      enum = (Enum) classEnums.get( id );
    }
    
    return enum;
  }

  public Object readResolve() throws ObjectStreamException {
    return findById( this.getClass(), id );
  }
  
  public String toString() {
    return id.toString();
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?