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."); } } }