Example #1
0
  /**
   * 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);
  }