Package net.sf.joafip.store.entity.objectio

Examples of net.sf.joafip.store.entity.objectio.ObjectLinkTreeNode


      filePersistence.usedForGarbageManagement(setToUpdate);
      filePersistence.usedForClassNameManagement(setToUpdate);
      forObjectDatarecordIdentifierSet.removeAll(setToUpdate);

      for (DataRecordIdentifier referencingDataRecordIdentifier : forObjectDatarecordIdentifierSet) {
        final ObjectLinkTreeNode objectLinkTreeNode = objectIOManager
            .getObjectLinkTreeNode(referencingDataRecordIdentifier);
        final DataRecordIdentifier[] referencedList = objectLinkTreeNode
            .getReferencedList();
        referenceLinkGraphFromStorage.addReferenced(
            referencingDataRecordIdentifier, referencedList);
      }
View Full Code Here


      final DataRecordIdentifier dataRecordIdentifier)
      throws ObjectIOException, ObjectIODataRecordNotFoundException,
      ObjectIOClassNotFoundException, ObjectIODataCorruptedException {
    try {
      final DataRecordIdentifier[] referenceList = readDataRecord(dataRecordIdentifier);
      return new ObjectLinkTreeNode(dataRecordIdentifier, null,
          referenceList);
    } catch (HeapException exception) {
      throw new ObjectIOException(exception);
    } catch (IOException exception) {
      throw new ObjectIOException(exception);
View Full Code Here

  private void assertObjectLink(final Class<?> expectedObjectClass,
      final DataRecordIdentifier dataRecordIdentifierForObject,
      final DataRecordIdentifier[] expectedReferenceList)
      throws ObjectIOException, ObjectIODataRecordNotFoundException,
      ObjectIOClassNotFoundException, ObjectIODataCorruptedException {
    final ObjectLinkTreeNode objectLinkTreeNode = objectIOManager
        .getObjectLinkTreeNode(dataRecordIdentifierForObject);
    assertEquals("data record id must match",
        dataRecordIdentifierForObject,
        objectLinkTreeNode.getDataRecordIdentifier());
    assertEquals("not expected class", expectedObjectClass,
        objectLinkTreeNode.getObjectClass());
    final DataRecordIdentifier[] referencedList = objectLinkTreeNode
        .getReferencedList();
    final List<DataRecordIdentifier> list = new LinkedList<DataRecordIdentifier>();
    for (final DataRecordIdentifier id : expectedReferenceList) {
      list.add(id);
    }
View Full Code Here

      objectInput = getObjectInput(classInfo, false);
      final DataRecordIdentifier[] referencedList = objectInput
          .getReferencedList(binary, headerReader.headerDataSize);
      Class<?> objectClass;
      objectClass = classInfo.getObjectClass();
      return new ObjectLinkTreeNode(dataRecordIdentifier, objectClass,
          referencedList);
    } catch (final ObjectIOException exception) {
      throw new ObjectIOException("for " + classInfo.toString() + " at "
          + dataRecordIdentifier, exception);
    }
View Full Code Here

   */
  private void garbageOne(final DataRecordIdentifier dataRecordIdentifier)
      throws GarbageException, ReferenceLinkGarbageException {
    try {
      linkRecordManager.removeLinkIfExist(dataRecordIdentifier);
      final ObjectLinkTreeNode referencedObjectLinkTreeNode = objectIOManager
          .getObjectLinkTreeNode(dataRecordIdentifier);
      heapDataManager.deleteDataRecord(dataRecordIdentifier);
      final DataRecordIdentifier[] referencedList = referencedObjectLinkTreeNode
          .getReferencedList();
      unlinkToReferenced(dataRecordIdentifier, referencedList);
      if (LOGGER.debugEnabled) {
        LOGGER.debug("object data record " + dataRecordIdentifier
            + " garbaged, " + referencedList.length
View Full Code Here

      DataRecordIdentifier dataRecordIdentifier = Store.IDENTIFIER_FOR_ROOT;
      que.add(dataRecordIdentifier);
      toPreserveSet.add(dataRecordIdentifier);
      storeSaver.resetModificationCount();
      while ((dataRecordIdentifier = que.pollFirst()) != null) {
        final ObjectLinkTreeNode objectLinkTreeNode = objectIOManager
            .getObjectLinkTreeNode(dataRecordIdentifier);
        final DataRecordIdentifier[] referencedList = objectLinkTreeNode
            .getReferencedList();
        for (DataRecordIdentifier referenced : referencedList) {
          if (toPreserveSet.add(referenced)) {
            que.add(referenced);
            storeSaver.performModificationDone();
          }
        }
      }

      final IHeapDataManager dataManager = storeSaver.getDataManager();
      if (LOGGER.isInfoEnabled()) {
        final int numberOfDataRecord = dataManager
            .getNumberOfDataRecord();
        LOGGER.info("total number of data record " + numberOfDataRecord
            + ", " + toPreserveSet.size() + " to preserve");
      }
      final Iterator<DataRecordIdentifier> iterator = dataManager
          .dataRecordIterator();
      garbageStartNotify();
      while (iterator.hasNext()) {
        final DataRecordIdentifier existing = iterator.next();
        garbageManager.removeFromCandidateAndOrFromToGarbage(existing);
        if (!toPreserveSet.contains(existing)) {
          if (linkRecordManager == null) {
            dataManager.deleteDataRecord(existing);
          } else {
            linkRecordManager
                .removeLinkIfExist(existing/* referenced */);
            final ObjectLinkTreeNode objectLinkTreeNode = objectIOManager
                .getObjectLinkTreeNode(existing);
            dataManager.deleteDataRecord(existing);
            final DataRecordIdentifier[] referencedList = objectLinkTreeNode
                .getReferencedList();
            for (DataRecordIdentifier referenced : referencedList) {
              removeLink(existing/* referencing */, referenced);
            }
          }
View Full Code Here

TOP

Related Classes of net.sf.joafip.store.entity.objectio.ObjectLinkTreeNode

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.