@Override
 public <T extends Entity<?, ?>> Iterator<T> getTransitiveClosureOver(
     CanonicalPath startingPoint,
     Relationships.Direction direction,
     Class<T> clazz,
     String... relationshipNames) {
   return backend.getTransitiveClosureOver(startingPoint, direction, clazz, relationshipNames);
 }
 @Override
 public InputStream getGraphSON(String tenantId) {
   return backend.getGraphSON(tenantId);
 }
 @Override
 public Class<?> extractType(E entityRepresentation) {
   return backend.extractType(entityRepresentation);
 }
 @Override
 public String extractId(E entityRepresentation) {
   return backend.extractId(entityRepresentation);
 }
 @Override
 public E descendToData(E dataEntityRepresentation, RelativePath dataPath) {
   return backend.descendToData(dataEntityRepresentation, dataPath);
 }
 @Override
 public void delete(E entity) {
   backend.delete(entity);
 }
 @Override
 public void commit(Transaction transaction) throws CommitFailureException {
   backend.commit(transaction);
 }
 @Override
 public void update(E entity, AbstractElement.Update update) {
   backend.update(entity, update);
 }
 @Override
 public boolean hasRelationship(
     E entity, Relationships.Direction direction, String relationshipName) {
   return backend.hasRelationship(entity, direction, relationshipName);
 }
 @Override
 public Iterator<E> getTransitiveClosureOver(
     E startingPoint, Relationships.Direction direction, String... relationshipNames) {
   return backend.getTransitiveClosureOver(startingPoint, direction, relationshipNames);
 }
 @Override
 public E getRelationshipTarget(E relationship) {
   return backend.getRelationshipTarget(relationship);
 }
 @Override
 public E getRelationshipSource(E relationship) {
   return backend.getRelationshipSource(relationship);
 }
 @Override
 public Set<E> getRelationships(E entity, Relationships.Direction direction, String... names) {
   return backend.getRelationships(entity, direction, names);
 }
 @Override
 public E getRelationship(E source, E target, String relationshipName)
     throws ElementNotFoundException {
   return backend.getRelationship(source, target, relationshipName);
 }
 @Override
 public Transaction startTransaction(boolean mutating) {
   return backend.startTransaction(mutating);
 }
 @Override
 public boolean hasRelationship(E source, E target, String relationshipName) {
   return backend.hasRelationship(source, target, relationshipName);
 }
 @Override
 public Page<E> traverse(E startingPoint, Query query, Pager pager) {
   return backend.traverse(startingPoint, query, pager);
 }
 @Override
 public E persist(CanonicalPath path, Blueprint blueprint) {
   return backend.persist(path, blueprint);
 }
 @Override
 public void close() throws Exception {
   backend.close();
 }
 @Override
 public E persist(StructuredData structuredData) {
   return backend.persist(structuredData);
 }
 @Override
 public <T> T convert(E entityRepresentation, Class<T> entityType) {
   return backend.convert(entityRepresentation, entityType);
 }
 @Override
 public Page<E> query(Query query, Pager pager) {
   return backend.query(query, pager);
 }
 @Override
 public void deleteStructuredData(E dataRepresentation) {
   backend.deleteStructuredData(dataRepresentation);
 }
 @Override
 public <T> Page<T> query(
     Query query, Pager pager, Function<E, T> conversion, Function<T, Boolean> filter) {
   return backend.query(query, pager, conversion, filter);
 }
 @Override
 public CanonicalPath extractCanonicalPath(E entityRepresentation) {
   return backend.extractCanonicalPath(entityRepresentation);
 }
 @Override
 public E relate(E sourceEntity, E targetEntity, String name, Map<String, Object> properties) {
   return backend.relate(sourceEntity, targetEntity, name, properties);
 }
 @Override
 public String extractRelationshipName(E relationship) {
   return backend.extractRelationshipName(relationship);
 }
 @Override
 public void rollback(Transaction transaction) {
   backend.rollback(transaction);
 }
 @Override
 public E find(CanonicalPath element) throws ElementNotFoundException {
   return backend.find(element);
 }
 @Override
 public E traverseToSingle(E startingPoint, Query query) {
   return backend.traverseToSingle(startingPoint, query);
 }