/** * Default constructor, called from {@link Open#open}. * * @param meta meta data * @throws IOException I/O Exception */ public DiskData(final MetaData meta) throws IOException { super(meta); try (final DataInput in = new DataInput(meta.dbfile(DATAINF))) { meta.read(in); while (true) { final String k = string(in.readToken()); if (k.isEmpty()) break; if (k.equals(DBTAGS)) elemNames = new Names(in, meta); else if (k.equals(DBATTS)) attrNames = new Names(in, meta); else if (k.equals(DBPATH)) paths = new PathSummary(this, in); else if (k.equals(DBNS)) nspaces = new Namespaces(in); else if (k.equals(DBDOCS)) resources.read(in); } } // open data and indexes init(); if (meta.updindex) { idmap = new IdPreMap(meta.dbfile(DATAIDP)); if (meta.textindex) textIndex = new UpdatableDiskValues(this, true); if (meta.attrindex) attrIndex = new UpdatableDiskValues(this, false); } else { if (meta.textindex) textIndex = new DiskValues(this, true); if (meta.attrindex) attrIndex = new DiskValues(this, false); } if (meta.ftxtindex) ftxtIndex = new FTIndex(this); }