Open Source Repository

Home /hibernate/hibernate-3.2.4.ga | Repository Home


org/hibernate/EntityMode.java
// $Id: EntityMode.java 8697 2005-11-29 14:29:24Z steveebersole $
package org.hibernate;

import java.util.Map;
import java.util.HashMap;
import java.io.Serializable;

/**
 * Defines the representation modes available for entities.
 *
 @author Steve Ebersole
 */
public class EntityMode implements Serializable {

  private static final Map INSTANCES = new HashMap();

  public static final EntityMode POJO = new EntityMode"pojo" );
  public static final EntityMode DOM4J = new EntityMode"dom4j" );
  public static final EntityMode MAP = new EntityMode"dynamic-map" );

  static {
    INSTANCES.putPOJO.name, POJO );
    INSTANCES.putDOM4J.name, DOM4J );
    INSTANCES.putMAP.name, MAP );
  }

  private final String name;

  public EntityMode(String name) {
    this.name = name;
  }

  public String toString() {
    return name;
  }

  private Object readResolve() {
    return INSTANCES.getname );
  }

  public static EntityMode parse(String name) {
    EntityMode rtn = EntityMode INSTANCES.getname );
    if rtn == null ) {
      // default is POJO
      rtn = POJO;
    }
    return rtn;
  }
}