本文整理汇总了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;未经允许,请勿转载。 |
请发表评论