Model

1451 ワード


  Seam 
  1.Model 2.Entity 3.Component  2 1 3 1
  Seam Mode Entity
   Model @Name Class
   Component Model, Class 

  package org.jboss.seam;

import org.jboss.seam.contexts.Contexts;

 
public class Model
{
   private Class<?> beanClass;

   public Model(Class<?> beanClass)
   {
      this.beanClass = beanClass;
   }
   
   public final Class<?> getBeanClass()
   {
      return beanClass;
   }

   public static Model forClass(Class clazz)
   {
      if ( !Contexts.isApplicationContextActive() ) // ApplicationContext 
      {
         throw new IllegalStateException("No application context active");
      }
      
      String name = getModelName(clazz);
      Model model = (Model) Contexts.getApplicationContext().get(name);
      if ( model==null )
      {
         model = clazz.isAnnotationPresent(javax.persistence.Entity.class) ?  // Entity , Model
                  new Entity(clazz) : new Model(clazz);
         Contexts.getApplicationContext().set(name, model);
      }
      return model;
   }

   static String getModelName(Class clazz)  // + .model
   {
      return clazz.getName() + ".model";
   }

}