congrats Icon
New! Announcing Tabnine Chat Beta
Learn More
Tabnine Logo
ObjectVersionGraph
Code IndexAdd Tabnine to your IDE (free)

How to use
ObjectVersionGraph
in
org.javersion.object

Best Java code snippets using org.javersion.object.ObjectVersionGraph (Showing top 15 results out of 315)

origin: ssaarela/javersion

public ObjectVersionManager<O, M> init() {
  this.versionGraph = ObjectVersionGraph.init();
  return this;
}
origin: ssaarela/javersion

  @Override
  public ObjectVersionGraph<M> build() {
    return new ObjectVersionGraph<M>(this);
  }
}
origin: ssaarela/javersion

@Override
public ListenableFuture<ObjectVersionGraph<M>> reload(Id docId, ObjectVersionGraph<M> oldValue) throws Exception {
  if (!oldValue.isEmpty()) {
    ObjectVersionGraph<M> newValue = oldValue;
    Revision since = oldValue.getTip().getRevision();
    try {
      List<ObjectVersion<M>> updates = versionStore.fetchUpdates(docId, since);
      log.debug("refresh({}): {})", docId, updates.size());
      if (!updates.isEmpty()) {
        newValue = oldValue.commit(updates);
      }
      return immediateFuture(compactIfRequired(newValue));
    } catch (VersionNotFoundException e) {
      // since revision is deleted - reload graph
    }
  }
  return immediateFuture(load(docId));
}
origin: ssaarela/javersion

public static <M> Predicate<ObjectVersionGraph<M>> sizeExcludingHeadsExceeds(int compactThreshold) {
  Check.that(compactThreshold > 0, "compactThreshold should be > 0");
  return g -> g.size() - g.getHeads().size() >=  compactThreshold;
}
origin: ssaarela/javersion

private void optimizeParentsAndProperties(ObjectVersionGraph<M> oldGraph, ObjectVersionGraph<M> newGraph) {
  newGraph.getVersionNodes().forEach(newVersionNode -> {
    VersionNode<PropertyPath, Object, M> oldVersionNode = oldGraph.getVersionNode(newVersionNode.revision);
    optimizeParents(newVersionNode.revision, oldVersionNode.getParentRevisions(), newVersionNode.getParentRevisions());
    optimizeProperties(newVersionNode.revision, oldVersionNode.getChangeset(), newVersionNode.getChangeset());
  });
}
origin: ssaarela/javersion

private ObjectVersionGraph<M> compactIfRequired(ObjectVersionGraph<M> graph) {
  if (graphOptions.optimizeWhen.test(graph)) {
    return graph.optimize(graphOptions.optimizeKeep.apply(graph)).getGraph();
  } else {
    return graph;
  }
}
origin: ssaarela/javersion

@Override
public ObjectVersionGraph<M> getGraph(Id docId, Iterable<Revision> revisions) {
  ObjectVersionGraph<M> graph = cacheLoader.apply(docId);
  if (!graph.containsAll(revisions)) {
    return getFullGraph(docId);
  }
  return graph;
}
origin: ssaarela/javersion

private void insertOptimizedParentsAndProperties(ObjectVersionGraph<M> optimizedGraph) {
  optimizedGraph.getVersionNodes().forEach(node -> {
    insertParents(node);
    insertProperties(node);
  });
}
origin: ssaarela/javersion

private OptimizedGraph<PropertyPath, Object, M, ObjectVersionGraph<M>> optimizedGraph(ObjectVersionGraph<M> graph, Predicate<VersionNode<PropertyPath, Object, M>> keep) {
  OptimizedGraph<PropertyPath, Object, M, ObjectVersionGraph<M>> optimizedGraph = graph.optimize(keep);
  if (optimizedGraph.getSquashedRevisions().isEmpty()) {
    return null;
  }
  if (optimizedGraph.getKeptRevisions().isEmpty()) {
    throw new IllegalArgumentException("keep-predicate didn't match any version");
  }
  return optimizedGraph;
}
origin: ssaarela/javersion

  public ObjectVersionGraph<M> getVersionGraph(Id docId) {
    List<ObjectVersion<M>> versions = versionsByDocId.get(docId);
    return versions != null ? ObjectVersionGraph.init(versions) : null;
  }
}
origin: ssaarela/javersion

public static <M> ObjectVersionGraph<M> init() {
  return new ObjectVersionGraph<M>();
}
origin: ssaarela/javersion

public ObjectVersionManager<O, M> init(Iterable<ObjectVersion<M>> versions) {
  return init(ObjectVersionGraph.init(versions));
}
origin: ssaarela/javersion

protected ObjectVersionGraph<M> toVersionGraph(Id docId, FetchResults<Id, M> fetchResults) {
  if (fetchResults.containsKey(docId)) {
    ObjectVersionGraph<M> graph;
    try {
      graph = ObjectVersionGraph.init(fetchResults.getVersions(docId));
      if (options.optimizeWhen.test(graph)) {
        optimizeAsync(docId, graph, false);
      }
    } catch (VersionNotFoundException e) {
      graph = doLoad(docId);
      optimizeAsync(docId, graph, true);
    }
    return graph;
  } else {
    return ObjectVersionGraph.init();
  }
}
origin: ssaarela/javersion

protected ObjectVersionGraph<M> doLoad(Id docId) {
  FetchResults<Id, M> results = doFetch(docId, false);
  return results.containsKey(docId) ? results.getVersionGraph(docId) : ObjectVersionGraph.init();
}
origin: ssaarela/javersion

@Override
public void optimize(Id docId, Function<ObjectVersionGraph<M>, Predicate<VersionNode<PropertyPath, Object, M>>> keep) {
  options.transactions.writeRequired(() -> {
    ObjectVersionGraph<M> graph;
    try {
      FetchResults<Id, M> fetchResults = doFetch(docId, true);
      graph = ObjectVersionGraph.init(fetchResults.getVersions(docId));
      doOptimize(docId, graph, keep, false);
    } catch (VersionNotFoundException e) {
      graph = doLoad(docId);
      doOptimize(docId, graph, keep, true);
    }
    return null;
  });
}
org.javersion.objectObjectVersionGraph

Most used methods

  • init
  • <init>
  • commit
  • containsAll
  • getHeads
  • getTip
  • getVersionNode
  • getVersionNodes
  • isEmpty
  • optimize
  • size
  • size

Popular in Java

  • Parsing JSON documents to java classes using gson
  • orElseThrow (Optional)
    Return the contained value, if present, otherwise throw an exception to be created by the provided s
  • runOnUiThread (Activity)
  • getSharedPreferences (Context)
  • Kernel (java.awt.image)
  • BufferedReader (java.io)
    Wraps an existing Reader and buffers the input. Expensive interaction with the underlying reader is
  • URLEncoder (java.net)
    This class is used to encode a string using the format required by application/x-www-form-urlencoded
  • ByteBuffer (java.nio)
    A buffer for bytes. A byte buffer can be created in either one of the following ways: * #allocate
  • Dictionary (java.util)
    Note: Do not use this class since it is obsolete. Please use the Map interface for new implementatio
  • Table (org.hibernate.mapping)
    A relational table
  • Best plugins for Eclipse
Tabnine Logo
  • Products

    Search for Java codeSearch for JavaScript code
  • IDE Plugins

    IntelliJ IDEAWebStormVisual StudioAndroid StudioEclipseVisual Studio CodePyCharmSublime TextPhpStormVimGoLandRubyMineEmacsJupyter NotebookJupyter LabRiderDataGripAppCode
  • Company

    About UsContact UsCareers
  • Resources

    FAQBlogTabnine AcademyTerms of usePrivacy policyJava Code IndexJavascript Code Index
Get Tabnine for your IDE now