001    package railo.runtime.type.trace;
002    
003    import railo.runtime.PageContext;
004    import railo.runtime.debug.Debugger;
005    import railo.runtime.dump.DumpData;
006    import railo.runtime.dump.DumpProperties;
007    import railo.runtime.dump.DumpUtil;
008    import railo.runtime.exp.PageException;
009    import railo.runtime.op.Caster;
010    import railo.runtime.op.Operator;
011    import railo.runtime.type.Collection.Key;
012    import railo.runtime.type.Objects;
013    import railo.runtime.type.Struct;
014    import railo.runtime.type.dt.DateTime;
015    import railo.runtime.util.VariableUtilImpl;
016    
017    public class TOObjects extends TraceObjectSupport implements Objects {
018            
019            private static final long serialVersionUID = -2011026266467450312L;
020    
021            protected TOObjects(Debugger debugger,Object obj,int type,String category,String text) {
022                    super(debugger,obj,type,category,text);
023            }
024    
025            @Override
026            public DumpData toDumpData(PageContext pageContext, int maxlevel, DumpProperties properties) {
027                    log();
028                    return DumpUtil.toDumpData(o, pageContext, maxlevel, properties);
029            }
030    
031            @Override
032            public String castToString() throws PageException {
033                    log();
034                    return Caster.toString(o);
035            }
036            
037            @Override
038            public String castToString(String defaultValue) {
039                    log();
040                    return Caster.toString(o,defaultValue);
041            }
042            
043            @Override
044            public boolean castToBooleanValue() throws PageException {
045                    log();
046                    return Caster.toBooleanValue(o);
047            }
048            
049            @Override
050            public Boolean castToBoolean(Boolean defaultValue) {
051                    log();
052                    return Caster.toBoolean(o,defaultValue);
053            }
054            
055            @Override
056            public double castToDoubleValue() throws PageException {
057                    log();
058                    return Caster.toDoubleValue(o);
059            }
060            
061            @Override
062            public double castToDoubleValue(double defaultValue) {
063                    log();
064                    return Caster.toDoubleValue(o,defaultValue);
065            }
066            
067            @Override
068            public DateTime castToDateTime() throws PageException {
069                    log();
070                    return new TODateTime(debugger,Caster.toDate(o, false,null),type,category,text);
071            }
072            
073            @Override
074            public DateTime castToDateTime(DateTime defaultValue) {
075                    log();
076                    return new TODateTime(debugger,Caster.toDate(o, false,null,defaultValue),type,category,text);
077            }
078            
079            @Override
080            public int compareTo(boolean b) throws PageException {
081                    log();
082                    return Operator.compare(o, b);
083            }
084            
085            @Override
086            public int compareTo(DateTime dt) throws PageException {
087                    log();
088                    return Operator.compare(o, (Object)dt);
089            }
090    
091            @Override
092            public int compareTo(double d) throws PageException {
093                    log();
094                    return Operator.compare(o, d);
095            }
096            
097            @Override
098            public int compareTo(String str) throws PageException {
099                    log();
100                    return Operator.compare(o, str);
101            }
102    
103            @Override
104            public Object get(PageContext pc, Key key) throws PageException {
105                    log(key.getString());
106                    VariableUtilImpl var = (VariableUtilImpl) pc.getVariableUtil();
107                    return var.get(pc, o, key);
108                    //return TraceObjectSupport.toTraceObject(debugger,var.get(pc, o, key),type,category,text);
109            }
110            
111            @Override
112            public Object get(PageContext pc, Key key, Object defaultValue) {
113                    log(key.getString());
114                    VariableUtilImpl var = (VariableUtilImpl) pc.getVariableUtil();
115                    return var.get(pc, o, key, defaultValue);
116                    //return TraceObjectSupport.toTraceObject(debugger,var.get(pc, o, key, defaultValue),type,category,text);
117            }
118            
119            @Override
120            public Object set(PageContext pc, Key key, Object value) throws PageException {
121                    log(key,value);
122                    VariableUtilImpl var = (VariableUtilImpl) pc.getVariableUtil();
123                    return var.set(pc, o, key, value);
124                    //return TraceObjectSupport.toTraceObject(debugger,var.set(pc, o, key, value),type,category,text);
125            }
126            
127            @Override
128            public Object setEL(PageContext pc, Key key, Object value) {
129                    log(key,value);
130                    VariableUtilImpl var = (VariableUtilImpl) pc.getVariableUtil();
131                    return var.setEL(pc, o, key, value);
132                    //return TraceObjectSupport.toTraceObject(debugger,var.setEL(pc, o, key, value),type,category,text);
133            }
134    
135            @Override
136            public Object call(PageContext pc, Key key, Object[] args) throws PageException {
137                    log(key.getString());
138                    VariableUtilImpl var = (VariableUtilImpl) pc.getVariableUtil();
139                    return var.callFunctionWithoutNamedValues(pc, o, key, args);
140            }
141            
142            @Override
143            public Object callWithNamedValues(PageContext pc, Key key, Struct args) throws PageException {
144                    log(key.getString());
145                    VariableUtilImpl var = (VariableUtilImpl) pc.getVariableUtil();
146                    return var.callFunctionWithNamedValues(pc, o, key, args);
147            }
148            
149            public boolean isInitalized() {
150                    log();
151                    return true;
152            }
153    }