001    package railo.intergral.fusiondebug.server.type;
002    
003    import java.util.List;
004    
005    import railo.intergral.fusiondebug.server.type.coll.FDUDF;
006    import railo.intergral.fusiondebug.server.util.FDCaster;
007    import railo.runtime.type.UDF;
008    
009    import com.intergral.fusiondebug.server.IFDStackFrame;
010    
011    public abstract class FDNodeValueSupport extends FDValueSupport {
012            
013            private IFDStackFrame frame;
014    
015            public FDNodeValueSupport(IFDStackFrame frame){
016                    this.frame=frame;
017            }
018            
019            public List getChildren() {
020                    return getChildren(frame,getName(),getRawValue());
021            }
022            
023    
024            /*public IFDValue getValue() {
025                    Object value = getRawValue();
026                    if(isSimpleValue(value))
027                            return getFDNodeVariableSupport();
028                    return FDCaster.toFDVariable(getName(), value).getValue();
029            }*/
030    
031            @Override
032            public String toString() {
033                    Object raw = getRawValue();
034                    if(raw instanceof UDF)return FDUDF.toString((UDF)raw);
035                    return FDCaster.serialize(raw);
036            }
037            
038            @Override
039            public boolean hasChildren() {
040                    return hasChildren(getRawValue());
041            }
042    
043            protected abstract Object getRawValue();
044            //protected abstract FDNodeValueSupport getFDNodeVariableSupport();
045    }