public IEntity createEntity(DATA_FORM form, DATA_TYPE type, ExtendedDataInput @in)
 {
     if (form == DATA_FORM.DF_TABLE)
     {
         return(new BasicTable(@in));
     }
     else if (form == DATA_FORM.DF_CHART)
     {
         //return new BasicChart(@in);
         return(null);
     }
     else if (form == DATA_FORM.DF_DICTIONARY)
     {
         //return new BasicDictionary(type, @in);
         return(null);
     }
     else if (form == DATA_FORM.DF_SET)
     {
         //return new BasicSet(type, @in);
         return(null);
     }
     else if (form == DATA_FORM.DF_CHUNK)
     {
         //return new BasicChunkMeta(@in);
         return(null);
     }
     else if (type == DATA_TYPE.DT_ANY && form == DATA_FORM.DF_VECTOR)
     {
         //return new BasicAnyVector(@in);
         return(null);
     }
     else if (type == DATA_TYPE.DT_VOID && form == DATA_FORM.DF_SCALAR)
     {
         @in.readBoolean();
         return(new Void());
     }
     else
     {
         int index = (int)type;
         if (factories[index] == null)
         {
             throw new IOException("Data type " + type.ToString() + " is not supported yet.");
         }
         else if (form == DATA_FORM.DF_VECTOR)
         {
             return(factories[index].createVector(@in));
         }
         else if (form == DATA_FORM.DF_SCALAR)
         {
             return(factories[index].createScalar(@in));
         }
         else if (form == DATA_FORM.DF_MATRIX)
         {
             return(factories[index].createMatrix(@in));
         }
         else if (form == DATA_FORM.DF_PAIR)
         {
             return(factories[index].createPair(@in));
         }
         else
         {
             throw new IOException("Data form " + form.ToString() + " is not supported yet.");
         }
     }
 }