001    package railo.runtime;//.orm.hibernate.tuplizer.proxy;
002    
003    
004    import java.io.Serializable;
005    
006    import org.hibernate.proxy.HibernateProxy;
007    import org.hibernate.proxy.LazyInitializer;
008    
009    import railo.runtime.component.Property;
010    import railo.runtime.orm.hibernate.tuplizer.proxy.CFCLazyInitializer;
011    import railo.runtime.type.cfc.ComponentAccess;
012    import railo.runtime.type.cfc.ComponentAccessProxy;
013    
014    /**
015     * Proxy for "dynamic-map" entity representations.
016     * SLOW
017     */
018    public class CFCProxy extends ComponentAccessProxy implements HibernateProxy, Serializable {
019    
020            private static final long serialVersionUID = 4115236247834562085L;
021            
022            private CFCLazyInitializer li;
023    
024            public ComponentAccess getComponentAccess() {
025                    return li.getCFC();
026            }
027            
028            public CFCProxy(CFCLazyInitializer li) {
029                    this.li = li;
030            }
031    
032            
033            public Object writeReplace() {
034                    return this;
035            }
036    
037            public LazyInitializer getHibernateLazyInitializer() {
038                    return li;
039            }
040    
041            @Override
042            public long sizeOf() {
043                    return li.getCFC().sizeOf();
044            }
045            
046            @Override
047            public java.util.Iterator<String> getIterator() {
048            return keysAsStringIterator();
049        }
050    
051    
052            @Override
053            public Property[] getProperties(boolean onlyPeristent, boolean includeBaseProperties, boolean overrideProperties, boolean inheritedMappedSuperClassOnly) {
054                    return li.getCFC().getProperties(onlyPeristent, includeBaseProperties, overrideProperties, inheritedMappedSuperClassOnly);
055            }
056    }