001 package railo.runtime.functions.orm; 002 003 import railo.runtime.PageContext; 004 import railo.runtime.exp.PageException; 005 import railo.runtime.op.Caster; 006 import railo.runtime.op.Decision; 007 import railo.runtime.orm.ORMSession; 008 import railo.runtime.orm.ORMUtil; 009 import railo.runtime.type.Struct; 010 import railo.runtime.type.StructImpl; 011 012 public class EntityLoad { 013 014 public static Object call(PageContext pc, String name) throws PageException { 015 016 ORMSession session=ORMUtil.getSession(pc); 017 //ORMEngine engine= ORMUtil.getEngine(pc); 018 return session.loadAsArray(pc,name,new StructImpl()); 019 } 020 021 public static Object call(PageContext pc, String name,Object idOrFilter) throws PageException { 022 return call(pc, name, idOrFilter, Boolean.FALSE); 023 } 024 public static Object call(PageContext pc, String name,Object idOrFilter, Object uniqueOrOptions) throws PageException { 025 ORMSession session=ORMUtil.getSession(pc); 026 027 // id 028 if(Decision.isSimpleValue(idOrFilter)){ 029 // id,unique 030 if(Decision.isCastableToBoolean(uniqueOrOptions)){ 031 // id,unique=true 032 if(Caster.toBooleanValue(uniqueOrOptions)) 033 return session.load(pc,name, Caster.toString(idOrFilter)); 034 // id,unique=false 035 return session.loadAsArray(pc,name, Caster.toString(idOrFilter)); 036 } 037 else if(Decision.isString(uniqueOrOptions)){ 038 return session.loadAsArray(pc,name,Caster.toString(idOrFilter),Caster.toString(uniqueOrOptions)); 039 } 040 041 // id,options 042 return session.loadAsArray(pc,name,Caster.toString(idOrFilter)); 043 } 044 045 // filter,[unique|sortorder] 046 if(Decision.isSimpleValue(uniqueOrOptions)){ 047 // filter,unique 048 if(Decision.isBoolean(uniqueOrOptions)){ 049 if(Caster.toBooleanValue(uniqueOrOptions)) 050 return session.load(pc,name,Caster.toStruct(idOrFilter)); 051 return session.loadAsArray(pc,name,Caster.toStruct(idOrFilter)); 052 } 053 // filter,sortorder 054 return session.loadAsArray(pc,name,Caster.toStruct(idOrFilter),(Struct)null,Caster.toString(uniqueOrOptions)); 055 } 056 // filter,options 057 return session.loadAsArray(pc,name,Caster.toStruct(idOrFilter),Caster.toStruct(uniqueOrOptions)); 058 } 059 060 061 062 public static Object call(PageContext pc, String name,Object filter, Object order, Object options) throws PageException { 063 ORMSession session=ORMUtil.getSession(pc); 064 //ORMEngine engine= ORMUtil.getEngine(pc); 065 return session.loadAsArray(pc,name,Caster.toStruct(filter),Caster.toStruct(options),Caster.toString(order)); 066 } 067 }