• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java Procedure类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.neo4j.procedure.Procedure的典型用法代码示例。如果您正苦于以下问题:Java Procedure类的具体用法?Java Procedure怎么用?Java Procedure使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



Procedure类属于org.neo4j.procedure包,在下文中一共展示了Procedure类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: generate

import org.neo4j.procedure.Procedure; //导入依赖的package包/类
@Procedure(name = "com.maxdemarzi.schema.generate", mode = Mode.SCHEMA)
@Description("CALL com.maxdemarzi.schema.generate() - generate schema")

public Stream<StringResult> generate() throws IOException {
    org.neo4j.graphdb.schema.Schema schema = db.schema();
    if (!schema.getIndexes(Labels.Provider).iterator().hasNext()) {
        schema.constraintFor(Labels.Provider)
                .assertPropertyIsUnique("name")
                .create();
    }
    if (!schema.getIndexes(Labels.Order).iterator().hasNext()) {
        schema.constraintFor(Labels.Order)
                .assertPropertyIsUnique("id")
                .create();
    }
    return Stream.of(new StringResult("Schema Generated"));
}
 
开发者ID:maxdemarzi,项目名称:order_workflow,代码行数:18,代码来源:Schema.java


示例2: diffFromCurrent

import org.neo4j.procedure.Procedure; //导入依赖的package包/类
@Procedure(value = "graph.versioner.diff.from.current", mode = DEFAULT)
@Description("graph.versioner.diff.from.current(state) - Get a list of differences that must be applied to the given state in order to become the current entity state")
public Stream<DiffOutput> diffFromCurrent(
		@Name("state") Node state) {

	Optional<Node> currentState = Optional.ofNullable(state.getSingleRelationship(RelationshipType.withName(Utility.HAS_STATE_TYPE), Direction.INCOMING))
			.map(Relationship::getStartNode).map(entity -> entity.getSingleRelationship(RelationshipType.withName(Utility.CURRENT_TYPE), Direction.OUTGOING))
			.map(Relationship::getEndNode);

	Stream<DiffOutput> result = Stream.empty();

	if(currentState.isPresent() && !currentState.equals(Optional.of(state))){
		result = diffBetweenStates(Optional.of(state), currentState);
	}

	return result;
}
 
开发者ID:h-omer,项目名称:neo4j-versioner-core,代码行数:18,代码来源:Diff.java


示例3: cloneNodes

import org.neo4j.procedure.Procedure; //导入依赖的package包/类
/**
 * this procedure takes a list of node-id's and clones them with their labels and properties
 */
@Procedure
@PerformsWrites
public Stream<Result> cloneNodes(@Name("nodeIds") List<Long> nodeIds, @Name("withRelationships") boolean withRelationships) {
    return nodeIds.stream().map((nodeId) -> {
        Result result = new Result(nodeId);
        try {
            Node node = db.getNodeById(nodeId);
            Node copy = copyProperties(node, copyLabels(node, db.createNode()));
            if (withRelationships) {
                copyRelationships(node, copy,false);
            }
            return result.withOther(copy.getId());
        } catch (Exception e) {
            return result.withError(e);
        }
    });
}
 
开发者ID:neo4j-contrib,项目名称:graph-refactoring,代码行数:21,代码来源:GraphRefactoring.java


示例4: mergeNodes

import org.neo4j.procedure.Procedure; //导入依赖的package包/类
/**
 * Merges the nodes with the same label, property and value onto the first found node.
 * The other nodes and relationships are deleted.
 */
@Procedure
@PerformsWrites
public Stream<Result> mergeNodes(@Name("label") String label, @Name("property") String property, @Name("value") Object value) {
    ResourceIterator<Node> nodes = db.findNodes(Label.label(label), property, value);
    if (!nodes.hasNext()) return Stream.empty();
    Node first = nodes.next();
    if (!nodes.hasNext()) {
        return Stream.of(new Result(first.getId()));
    }
    return nodes.stream().map( (other) -> {
        Result result = new Result(first.getId());
        try {
            mergeNodes(other, first, true);
            return result.withOther(other.getId());
        } catch (Exception e) {
            return result.withError(e);
        }
    });
}
 
开发者ID:neo4j-contrib,项目名称:graph-refactoring,代码行数:24,代码来源:GraphRefactoring.java


示例5: redirectRelationship

import org.neo4j.procedure.Procedure; //导入依赖的package包/类
/**
 * Redirects a relationships to a new target node.
 */
@Procedure
@PerformsWrites
public Stream<Result> redirectRelationship(@Name("relationshipId") long relId, @Name("newNodeId") long newNodeId, @Name("isEndNode") boolean isEndNode) {
    Relationship rel = db.getRelationshipById(relId);
    Node newNode = db.getNodeById(newNodeId);
    Result result = new Result(rel.getId());
    try {
        Relationship newRel = isEndNode ?
                rel.getStartNode().createRelationshipTo(newNode, rel.getType()) :
                rel.getEndNode().createRelationshipTo(newNode, rel.getType());
        copyProperties(rel,newRel);
        rel.delete();
        return Stream.of(result.withOther(newRel.getId()));
    } catch (Exception e) {
        return Stream.of(result.withError(e));
    }
}
 
开发者ID:neo4j-contrib,项目名称:graph-refactoring,代码行数:21,代码来源:GraphRefactoring.java


示例6: createQueryField

import org.neo4j.procedure.Procedure; //导入依赖的package包/类
@Procedure
public void createQueryField(
        @Name( "name" ) String name,
        @Name( "cypherQuery" ) String cypherQuery )
{
    synchronized ( fields )
    {
        String old = fields.putIfAbsent( name, cypherQuery );
        if( old != null )
        {
            throw new IllegalStateException( "`" + name + "` is already in use." );
        }

        rebuildSchema();
    }
}
 
开发者ID:jakewins,项目名称:neo4j-procedure-template,代码行数:17,代码来源:GraphQLProcedures.java


示例7: visitExecutable

import org.neo4j.procedure.Procedure; //导入依赖的package包/类
@Override
public Stream<CompilationMessage> visitExecutable( ExecutableElement method, Void ignored )
{
    Procedure procedure = method.getAnnotation( Procedure.class );
    if ( procedure == null )
    {
        return Stream.of( new PerformsWriteMisuseError( method, "@%s usage error: missing @%s annotation on method",
                PerformsWrites.class.getSimpleName(), Procedure.class.getSimpleName() ) );
    }

    if ( procedure.mode() != Mode.DEFAULT )
    {
        return Stream.of( new PerformsWriteMisuseError( method,
                "@%s usage error: cannot use mode other than Mode.DEFAULT",
                PerformsWrites.class.getSimpleName() ) );
    }
    return Stream.empty();
}
 
开发者ID:fbiville,项目名称:neo4j-sproc-compiler,代码行数:19,代码来源:PerformsWriteMethodVisitor.java


示例8: predict

import org.neo4j.procedure.Procedure; //导入依赖的package包/类
@Procedure
public Stream<PredictionResult> predict(@Name("model") String model, @Name("inputs") Map<String,Object> inputs) {
    MLModel mlModel = MLModel.from(model);
    Object value = mlModel.predict(inputs);
    double confidence = 0.0d;
    return Stream.of(new PredictionResult(value, confidence));
}
 
开发者ID:neo4j-contrib,项目名称:neo4j-ml-procedures,代码行数:8,代码来源:ML.java


示例9: rollbackNth

import org.neo4j.procedure.Procedure; //导入依赖的package包/类
@Procedure(value = "graph.versioner.rollback.nth", mode = WRITE)
@Description("graph.versioner.rollback.nth(entity, nth-state, date) - Rollback the given Entity to the nth previous State")
public Stream<NodeOutput> rollbackNth(
        @Name("entity") Node entity,
        @Name("state") long nthState,
        @Name(value = "date", defaultValue = "0") long date) {

    long instantDate = (date == 0) ? Calendar.getInstance().getTimeInMillis() : date;

    return new GetBuilder().build()
            .flatMap(get -> get.getNthState(entity, nthState).findFirst())
            .map(state -> rollbackTo(entity, state.node, instantDate))
            .orElse(Stream.empty());
}
 
开发者ID:h-omer,项目名称:neo4j-versioner-core,代码行数:15,代码来源:Rollback.java


示例10: patchFrom

import org.neo4j.procedure.Procedure; //导入依赖的package包/类
@Procedure(value = "graph.versioner.patch.from", mode = Mode.WRITE)
@Description("graph.versioner.patch.from(entity, state, date) - Add a new State to the given Entity, starting from the given one. It will update all the properties, not labels.")
public Stream<NodeOutput> patchFrom(
        @Name("entity") Node entity,
        @Name("state") Node state,
        @Name(value = "date", defaultValue = "0") long date) {

    long instantDate = (date == 0) ? Calendar.getInstance().getTimeInMillis() : date;

    Utility.checkRelationship(entity, state);

    // Getting the CURRENT rel if it exist
    Spliterator<Relationship> currentRelIterator = entity.getRelationships(RelationshipType.withName(Utility.CURRENT_TYPE), Direction.OUTGOING).spliterator();
    Node newState = StreamSupport.stream(currentRelIterator, false).map(currentRel -> {
        Node currentState = currentRel.getEndNode();
        Long currentDate = (Long) currentRel.getProperty("date");
        // Creating the new node
        Map<String, Object> patchedProps = currentState.getAllProperties();
        patchedProps.putAll(state.getAllProperties());
        Node result = Utility.setProperties(db.createNode(Utility.labels(state.getLabels())), patchedProps);

        // Updating CURRENT state
        result = Utility.currentStateUpdate(entity, instantDate, currentRel, currentState, currentDate, result);

        return result;
    }).findFirst().orElseGet(() -> {
        throw new VersionerCoreException("Can't find any current State node for the given entity.");
    });

    log.info(Utility.LOGGER_TAG + "Patched Entity with id {}, adding a State with id {}", entity.getId(), newState.getId());
    return Stream.of(new NodeOutput(newState));
}
 
开发者ID:h-omer,项目名称:neo4j-versioner-core,代码行数:33,代码来源:Update.java


示例11: diff

import org.neo4j.procedure.Procedure; //导入依赖的package包/类
@Procedure(value = "graph.versioner.diff", mode = DEFAULT)
@Description("graph.versioner.diff(stateFrom, stateTo) - Get a list of differences that must be applied to stateFrom in order to convert it into stateTo")
public Stream<DiffOutput> diff(
        @Name("stateFrom") Node stateFrom,
        @Name("stateTo") Node stateTo) {
    return diffBetweenStates(Optional.of(stateFrom), Optional.of(stateTo));
}
 
开发者ID:h-omer,项目名称:neo4j-versioner-core,代码行数:8,代码来源:Diff.java


示例12: diffFromPrevious

import org.neo4j.procedure.Procedure; //导入依赖的package包/类
@Procedure(value = "graph.versioner.diff.from.previous", mode = DEFAULT)
  @Description("graph.versioner.diff.from.previous(state) - Get a list of differences that must be applied to the previous statusof the given one in order to become the given state")
  public Stream<DiffOutput> diffFromPrevious(
          @Name("state") Node state) {

Optional<Node> stateFrom = Optional.ofNullable(state.getSingleRelationship(RelationshipType.withName(Utility.PREVIOUS_TYPE), Direction.OUTGOING)).map(Relationship::getEndNode);

Stream<DiffOutput> result = Stream.empty();

if(stateFrom.isPresent()){
	result = diffBetweenStates(stateFrom, Optional.of(state));
}

return result;
  }
 
开发者ID:h-omer,项目名称:neo4j-versioner-core,代码行数:16,代码来源:Diff.java


示例13: init

import org.neo4j.procedure.Procedure; //导入依赖的package包/类
@Procedure(value = "graph.versioner.init", mode = Mode.WRITE)
@Description("graph.versioner.init(entityLabel, {key:value,...}, {key:value,...}, additionalLabel, date) - Create an Entity node with an optional initial State.")
public Stream<NodeOutput> init(
        @Name("entityLabel") String entityLabel,
        @Name(value = "entityProps", defaultValue = "{}") Map<String, Object> entityProps,
        @Name(value = "stateProps", defaultValue = "{}") Map<String, Object> stateProps,
        @Name(value = "additionalLabel", defaultValue = "") String additionalLabel,
        @Name(value = "date", defaultValue = "0") long date) {

    List<String> labelNames = new ArrayList<>(singletonList(entityLabel));

    Node entity = Utility.setProperties(db.createNode(Utility.labels(labelNames)), entityProps);

    labelNames = new ArrayList<>(singletonList(Utility.STATE_LABEL));
    if (!additionalLabel.isEmpty()) {
        labelNames.add(additionalLabel);
    }
    Node state = Utility.setProperties(db.createNode(Utility.labels(labelNames)), stateProps);

    long instantDate = (date == 0) ? Calendar.getInstance().getTimeInMillis() : date;

    // Connecting the new current state to the Entity
        Utility.addCurrentState(state, entity, instantDate);

    log.info(Utility.LOGGER_TAG + "Created a new Entity with label {} and id {}", entityLabel, entity.getId());

    return Stream.of(new NodeOutput(entity));
}
 
开发者ID:h-omer,项目名称:neo4j-versioner-core,代码行数:29,代码来源:Init.java


示例14: getCurrentPath

import org.neo4j.procedure.Procedure; //导入依赖的package包/类
@Procedure(value = "graph.versioner.get.current.path", mode = DEFAULT)
  @Description("graph.versioner.get.current.path(entity) - Get the current Path (Entity, State and rels) for the given Entity.")
  public Stream<PathOutput> getCurrentPath(
          @Name("entity") Node entity) {

PathValueBuilder builder = new PathValueBuilder().addNode(entity);

Optional.ofNullable(entity.getSingleRelationship(RelationshipType.withName(Utility.CURRENT_TYPE), Direction.OUTGOING)).map(builder::addOutgoingRelationship);

      return Stream.of(builder.result()).map(PathOutput::new);
  }
 
开发者ID:h-omer,项目名称:neo4j-versioner-core,代码行数:12,代码来源:Get.java


示例15: getCurrentState

import org.neo4j.procedure.Procedure; //导入依赖的package包/类
@Procedure(value = "graph.versioner.get.current.state", mode = DEFAULT)
@Description("graph.versioner.get.current.state(entity) - Get the current State node for the given Entity.")
public Stream<NodeOutput> getCurrentState(
        @Name("entity") Node entity) {

    return Stream.of(Optional.ofNullable(entity.getSingleRelationship(RelationshipType.withName(Utility.CURRENT_TYPE), Direction.OUTGOING))
.map(Relationship::getEndNode).map(NodeOutput::new).orElse(null));
}
 
开发者ID:h-omer,项目名称:neo4j-versioner-core,代码行数:9,代码来源:Get.java


示例16: getAllState

import org.neo4j.procedure.Procedure; //导入依赖的package包/类
@Procedure(value = "graph.versioner.get.all", mode = DEFAULT)
  @Description("graph.versioner.get.all(entity) - Get all the State nodes for the given Entity.")
  public Stream<PathOutput> getAllState(
          @Name("entity") Node entity) {

PathValueBuilder builder = new PathValueBuilder();
builder.addNode(entity);
builder.addOutgoingRelationship(entity.getSingleRelationship(RelationshipType.withName(Utility.CURRENT_TYPE), Direction.OUTGOING));
StreamSupport.stream(entity.getRelationships(RelationshipType.withName(Utility.HAS_STATE_TYPE), Direction.OUTGOING).spliterator(), false)
		//.sorted((a, b) -> -1 * Long.compare((long)a.getProperty(START_DATE_PROP), (long)b.getProperty(START_DATE_PROP)))
		.forEach(rel ->
			Optional.ofNullable(rel.getEndNode().getSingleRelationship(RelationshipType.withName(Utility.PREVIOUS_TYPE), Direction.OUTGOING))
					.map(builder::addOutgoingRelationship)
);

return Stream.of(new PathOutput(builder.result()));
  }
 
开发者ID:h-omer,项目名称:neo4j-versioner-core,代码行数:18,代码来源:Get.java


示例17: getAllStateByLabel

import org.neo4j.procedure.Procedure; //导入依赖的package包/类
@Procedure(value = "graph.versioner.get.by.label", mode = DEFAULT)
  @Description("graph.versioner.get.by.label(entity, label) - Get State nodes with the given label, by the given Entity node")
  public Stream<NodeOutput> getAllStateByLabel(
          @Name("entity") Node entity,
          @Name("label") String label) {

return StreamSupport.stream(entity.getRelationships(RelationshipType.withName(Utility.HAS_STATE_TYPE), Direction.OUTGOING).spliterator(), false)
		.map(Relationship::getEndNode)
		.filter(node -> node.hasLabel(Label.label(label)))
		.map(NodeOutput::new);
  }
 
开发者ID:h-omer,项目名称:neo4j-versioner-core,代码行数:12,代码来源:Get.java


示例18: getStateByDate

import org.neo4j.procedure.Procedure; //导入依赖的package包/类
@Procedure(value = "graph.versioner.get.by.date", mode = DEFAULT)
  @Description("graph.versioner.get.by.date(entity, date) - Get State node by the given Entity node, created at the given date")
  public Stream<NodeOutput> getStateByDate(
          @Name("entity") Node entity,
          @Name("date") long date) {

return StreamSupport.stream(entity.getRelationships(RelationshipType.withName(Utility.HAS_STATE_TYPE), Direction.OUTGOING).spliterator(), false)
		.filter(relationship -> relationship.getProperty(Utility.START_DATE_PROP).equals(date))
		.map(Relationship::getEndNode)
		.map(NodeOutput::new);
  }
 
开发者ID:h-omer,项目名称:neo4j-versioner-core,代码行数:12,代码来源:Get.java


示例19: getNthState

import org.neo4j.procedure.Procedure; //导入依赖的package包/类
@Procedure(value = "graph.versioner.get.nth.state", mode = DEFAULT)
@Description("graph.versioner.get.nth.state(entity, nth) - Get the nth State node for the given Entity.")
public Stream<NodeOutput> getNthState(
		@Name("entity") Node entity,
		@Name("nth") long nth) {

	Optional<Node> currentState = getCurrentState(entity).findFirst().map(c -> c.node);
	return Stream
			.iterate(currentState, s -> s.flatMap(this::jumpToPreviousState))
			.limit(nth + 1)
			.map(NodeOutput::new)
			.reduce((a, b) -> b) //get only the last value (apply jumpToPreviousState n times
			.map(Stream::of)
			.orElse(Stream.empty());
}
 
开发者ID:h-omer,项目名称:neo4j-versioner-core,代码行数:16,代码来源:Get.java


示例20: generate

import org.neo4j.procedure.Procedure; //导入依赖的package包/类
@Procedure(name = "com.maxdemarzi.schema.generate", mode = Mode.SCHEMA)
@Description("CALL com.maxdemarzi.schema.generate() - generate schema")

public Stream<StringResult> generate() throws IOException {
    org.neo4j.graphdb.schema.Schema schema = db.schema();
    if (!schema.getIndexes(Labels.Attribute).iterator().hasNext()) {
        schema.constraintFor(Labels.Attribute)
                .assertPropertyIsUnique("name")
                .create();
    }
    if (!schema.getIndexes(Labels.Path).iterator().hasNext()) {
        schema.constraintFor(Labels.Path)
                .assertPropertyIsUnique("id")
                .create();
    }
    if (!schema.getIndexes(Labels.Rule).iterator().hasNext()) {
        schema.constraintFor(Labels.Rule)
                .assertPropertyIsUnique("id")
                .create();
    }
    if (!schema.getIndexes(Labels.User).iterator().hasNext()) {
        schema.constraintFor(Labels.User)
                .assertPropertyIsUnique("username")
                .create();
    }
    return Stream.of(new StringResult("Schema Generated"));
}
 
开发者ID:maxdemarzi,项目名称:rule_matcher,代码行数:28,代码来源:Schema.java



注:本文中的org.neo4j.procedure.Procedure类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java IORTemplateList类代码示例发布时间:2022-05-22
下一篇:
Java Attributes类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap