public void FromData(DataInput input)
        {
            m_cacheableBoolean = input.ReadBoolean();
            m_cacheableInt32   = input.ReadInt32();
            int arraylen = input.ReadArrayLen();

            m_cacheableInt32Array = new int[arraylen];
            for (int item = 0; item < arraylen; item++)
            {
                m_cacheableInt32Array[item] = input.ReadInt32();
            }
            m_cacheableFileName    = input.ReadUTF();
            m_CacheableStringASCII = input.ReadUTF();
            arraylen = input.ReadArrayLen();
            m_cacheableStringArray = new string[arraylen];
            for (int item = 0; item < arraylen; item++)
            {
                m_cacheableStringArray[item] = input.ReadUTF();
            }
            m_cacheableHashMap = new Dictionary <Object, Object>();
            input.ReadDictionary((System.Collections.IDictionary)m_cacheableHashMap);
            arraylen          = input.ReadArrayLen();
            m_cacheableVector = new object[arraylen];
            for (int item = 0; item < arraylen; item++)
            {
                m_cacheableVector[item] = input.ReadObject();
            }
        }
        public IGFSerializable FromData(DataInput input)
        {
            if (!m_initialized)
            {
                /*
                 * m_cacheableBoolean = (CacheableBoolean)CacheableBoolean.CreateDeserializable();
                 * m_cacheableInt32 = (CacheableInt32)CacheableInt32.CreateDeserializable();
                 * m_cacheableInt32Array = (CacheableInt32Array)CacheableInt32Array.CreateDeserializable();
                 * // m_cacheableFileName = (CacheableFileName)CacheableFileName.CreateDeserializable();
                 * //m_CacheableStringASCII = (CacheableString)CacheableString.CreateDeserializable();
                 * m_cacheableStringArray = (CacheableStringArray)CacheableStringArray.CreateDeserializable();
                 * m_cacheableHashSet = (CacheableHashSet)CacheableHashSet.CreateDeserializable();
                 * m_cacheableHashMap = (CacheableHashMap)CacheableHashMap.CreateDeserializable();
                 * m_cacheableDate = (CacheableDate)CacheableDate.CreateDeserializable();
                 * m_cacheableVector = (CacheableVector)CacheableVector.CreateDeserializable();
                 * m_cacheableObject = (CacheableObject)CacheableObject.CreateDeserializable();
                 * */
            }

            m_cacheableBoolean = input.ReadBoolean();
            m_cacheableInt32   = input.ReadInt32();
            int arraylen = input.ReadArrayLen();

            m_cacheableInt32Array = new int[arraylen];
            for (int item = 0; item < arraylen; item++)
            {
                m_cacheableInt32Array[item] = input.ReadInt32();
            }
            //m_cacheableFileName.FromData(input);
            //m_CacheableStringASCII.FromData(input);
            m_cacheableFileName    = input.ReadUTF();
            m_CacheableStringASCII = input.ReadUTF();
            arraylen = input.ReadArrayLen();
            m_cacheableStringArray = new string[arraylen];
            for (int item = 0; item < arraylen; item++)
            {
                m_cacheableStringArray[item] = input.ReadUTF();
            }
            //m_cacheableHashSet.FromData(input);
            m_cacheableHashMap = new Dictionary <Object, Object>();
            input.ReadDictionary((System.Collections.IDictionary)m_cacheableHashMap);
            //m_cacheableHashMap = input.ReadDictionary();
            //m_cacheableDate = input.ReadDate();
            arraylen          = input.ReadArrayLen();
            m_cacheableVector = new object[arraylen];
            for (int item = 0; item < arraylen; item++)
            {
                m_cacheableVector[item] = input.ReadObject();
            }
            //m_cacheableObject = input.ReadObject();
            return(this);
        }