001    package railo.runtime.orm;
002    
003    import railo.runtime.PageContext;
004    import railo.runtime.db.DataSource;
005    import railo.runtime.exp.PageException;
006    
007    public interface ORMEngine {
008            
009            // (CFML Compatibility Mode) is not so strict in input interpretation
010            public static final int MODE_LAZY = 0;
011            // more strict in input interpretation
012            public static final int MODE_STRICT = 1;
013            
014    
015            
016    
017    
018    
019            
020            /**
021             * @return returns the label of the Engine, like "Hibernate" or "Transfer"
022             */
023            public String getLabel();
024    
025    
026            
027            public int getMode();
028            
029            
030            public ORMSession createSession(PageContext pc) throws PageException;
031            public Object getSessionFactory(PageContext pc) throws PageException;
032    
033            public void init(PageContext pc) throws PageException;
034    
035            public ORMConfiguration getConfiguration(PageContext pc);
036    
037    
038            public DataSource getDataSource();
039    
040    
041    
042            public String[] getEntityNames();
043            
044            public boolean reload(PageContext pc, boolean force) throws PageException;
045    
046    
047    }