home *** CD-ROM | disk | FTP | other *** search
/ ftp.disi.unige.it / 2015-02-11.ftp.disi.unige.it.tar / ftp.disi.unige.it / pub / .person / GuerriniG / dispense / corso-oodb / progetti-01 / progetto2 / extents.java < prev    next >
Text File  |  2001-03-01  |  1KB  |  64 lines

  1. package progetto2;
  2.  
  3.  
  4. import com.odi.*;
  5. import com.odi.util.*;
  6.  
  7.  
  8. public abstract class Extents
  9. {
  10.     String m_name;
  11.     Database m_db=null;
  12.     Object m_obj;
  13.     Object m_root;
  14.  
  15.     public String getRootName() {return m_name;};
  16.     
  17.  
  18.     public Extents(String rootname)
  19.     {
  20.         m_name = rootname;
  21.     }
  22.  
  23.     public abstract Object createExtents(Database db);
  24.  
  25.     public Object getExtents(Database db)
  26.     {    
  27.         try{
  28.             if (db!=null){
  29.                 m_db    = db;
  30.                 m_root    = m_db.getRoot(m_name);
  31.             }
  32.         }
  33.         catch(DatabaseRootNotFoundException RootNotFound){
  34.             m_root = null;
  35.         }
  36.  
  37.         if (m_root==null){
  38.             m_root = createExtents(db);
  39.             setExtents(m_root);
  40.         }
  41.  
  42.         return m_root;
  43.     }
  44.  
  45.     public void update(Object obj, Database db)
  46.     {
  47.         m_obj    = obj;
  48.         m_db    = db;
  49.     }
  50.  
  51.     protected void setExtents(Object root)
  52.     {
  53.         m_root = root;
  54.         m_db.createRoot(m_name, root);
  55.     }
  56.  
  57.     protected boolean checkType(Object obj, String type)
  58.     {
  59.         Class c = obj.getClass();
  60.         String name = c.getName();
  61.         return (name.compareTo(type) == 0);
  62.     }
  63. }
  64.