当前位置: 首页>>代码示例>>Java>>正文


Java Traversal类代码示例

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


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

示例1: getAll

import org.neo4j.kernel.Traversal; //导入依赖的package包/类
public List<Category> getAll() {
	List<Category> categories = new ArrayList<Category>();
	for(Category cat : catRepo.findAllByTraversal(getCategoryRoot(), Traversal.description()
			.breadthFirst()
			.evaluator(Evaluators.fromDepth(1))
			.expand(Traversal
				.expanderForTypes(DynamicRelationshipType
				.withName(RelTypes.PARENT_CATEGORY), 
						  Direction.INCOMING).addNodeFilter(new Predicate<Node>() {
								@Override
								public boolean accept(Node item) {
									return !StringUtils.isEmpty(item.getProperty("name"));
								}
						}
						)))) {
		if(cat != null && cat.getName() != null) { //TODO: Figure out why a null element appears in this traversal
			categories.add(cat);
		}
	}
	return categories;
}
 
开发者ID:AlexBarnes86,项目名称:bookish,代码行数:22,代码来源:CategoryService.java

示例2: fillNodesFromBeginning

import org.neo4j.kernel.Traversal; //导入依赖的package包/类
private void fillNodesFromBeginning(Node currentNode, ViralShortUrl url) {
    // nodes from beginning, counted via a simple depth-first traversal
    // in the opposite direction
    Traverser t = Traversal.description().depthFirst()
        .evaluator(Evaluators.excludeStartPosition())
        .relationships(LinkRelationship.SPAWNS, Direction.INCOMING)
        .traverse(currentNode);
    int nodesFromBeginning = IteratorUtil.count(t);
    url.setNodesFromBeginning(nodesFromBeginning);
}
 
开发者ID:Glamdring,项目名称:welshare,代码行数:11,代码来源:ViralLinkDaoNeo4j.java

示例3: getTraverser

import org.neo4j.kernel.Traversal; //导入依赖的package包/类
public Traverser getTraverser(String task, Direction direction){
    TraversalDescription td = Traversal.description()
            .breadthFirst()
            .relationships( TaskRelations.DEPENDS_ON, direction )
            .evaluator(Evaluators.excludeStartPosition());
    return td.traverse(getNode(task));
}
 
开发者ID:fizalihsan,项目名称:Fig,代码行数:8,代码来源:Neo4jTaskAdapter.java

示例4: findAllPaths

import org.neo4j.kernel.Traversal; //导入依赖的package包/类
public Iterable<Path> findAllPaths( Node start, final Node end )
{
    Predicate<Path> filter = new Predicate<Path>()
    {
        public boolean accept( Path pos )
        {
            return pos.endNode().equals( end );
        }
    };

    return Traversal.description().expand( expander ).depthFirst().filter( filter ).prune(
            Traversal.pruneAfterDepth( maxDepth ) ).uniqueness( uniqueness() ).traverse( start );
}
 
开发者ID:neo4j-contrib,项目名称:neo4j-mobile-android,代码行数:14,代码来源:AllPaths.java

示例5: ExperimentalAStar

import org.neo4j.kernel.Traversal; //导入依赖的package包/类
public ExperimentalAStar( RelationshipExpander expander, CostEvaluator<Double> costEvaluator,
        EstimateEvaluator<Double> estimateEvaluator )
{
    this.traversalDescription = Traversal.description().uniqueness(
            Uniqueness.NONE ).expand( expander );
    this.costEvaluator = costEvaluator;
    this.estimateEvaluator = estimateEvaluator;
}
 
开发者ID:neo4j-contrib,项目名称:neo4j-mobile-android,代码行数:9,代码来源:ExperimentalAStar.java

示例6: expand

import org.neo4j.kernel.Traversal; //导入依赖的package包/类
public TraversalDescription expand(RelationshipExpander expander)
{
    if ( expander.equals( this.expander ) )
    {
        return this;
    }
    return new TraversalDescriptionImpl( Traversal.expander( expander ), uniqueness,
            uniquenessParameter, evaluator, branchSelector );
}
 
开发者ID:neo4j-contrib,项目名称:neo4j-mobile-android,代码行数:10,代码来源:TraversalDescriptionImpl.java

示例7: shortestPath

import org.neo4j.kernel.Traversal; //导入依赖的package包/类
@Override
public void shortestPath(Node n1, Integer i)
{
    PathFinder<Path> finder
        = GraphAlgoFactory.shortestPath(Traversal.expanderForTypes(Neo4jGraphDatabase.RelTypes.SIMILAR), 5);
    Node n2 = getVertex(i);
    Path path = finder.findSinglePath(n1, n2);

}
 
开发者ID:socialsensor,项目名称:graphdb-benchmarks,代码行数:10,代码来源:Neo4jGraphDatabase.java

示例8: getConnectedComponentsCount

import org.neo4j.kernel.Traversal; //导入依赖的package包/类
@GET
@Path("/cc/{name}")
public String getConnectedComponentsCount(@PathParam("name") String name, @Context GraphDatabaseService db) throws IOException {
    int CCid = 0;
    for ( Node n : GlobalGraphOperations.at( db ).getAllNodes() ) {
        if(!n.hasProperty("CCId")) {
            Transaction tx = db.beginTx();
            try {
                Traverser traverser = Traversal.description()
                        .breadthFirst()
                        .relationships(DynamicRelationshipType.withName(name), Direction.BOTH)
                        .evaluator(Evaluators.excludeStartPosition())
                        .uniqueness(Uniqueness.NODE_GLOBAL)
                        .traverse(n);
                int currentCCid = CCid;
                CCid++;
                n.setProperty("CCId", currentCCid);
                for ( org.neo4j.graphdb.Path p : traverser )
                {
                    p.endNode().setProperty("CCId", currentCCid);
                }
                tx.success();
            }
            catch ( Exception e )
            {
                tx.failure();
            }
            finally
            {
                tx.finish();
            }
        }
    }
    return String.valueOf(CCid);
}
 
开发者ID:maxdemarzi,项目名称:neo_cc,代码行数:36,代码来源:MyService.java

示例9: toString

import org.neo4j.kernel.Traversal; //导入依赖的package包/类
@Override
public String toString()
{
    return Traversal.defaultPathToString( this );
}
 
开发者ID:neo4j-contrib,项目名称:neo4j-mobile-android,代码行数:6,代码来源:PathImpl.java

示例10: TraversalDescriptionImpl

import org.neo4j.kernel.Traversal; //导入依赖的package包/类
public TraversalDescriptionImpl()
{
    this( StandardExpander.DEFAULT, Uniqueness.NODE_GLOBAL, null,
            Evaluators.all(), Traversal.preorderDepthFirst() );
}
 
开发者ID:neo4j-contrib,项目名称:neo4j-mobile-android,代码行数:6,代码来源:TraversalDescriptionImpl.java

示例11: depthFirst

import org.neo4j.kernel.Traversal; //导入依赖的package包/类
public TraversalDescription depthFirst()
{
    return order( Traversal.preorderDepthFirst() );
}
 
开发者ID:neo4j-contrib,项目名称:neo4j-mobile-android,代码行数:5,代码来源:TraversalDescriptionImpl.java

示例12: breadthFirst

import org.neo4j.kernel.Traversal; //导入依赖的package包/类
public TraversalDescription breadthFirst()
{
    return order( Traversal.preorderBreadthFirst() );
}
 
开发者ID:neo4j-contrib,项目名称:neo4j-mobile-android,代码行数:5,代码来源:TraversalDescriptionImpl.java

示例13: traverse

import org.neo4j.kernel.Traversal; //导入依赖的package包/类
@Override
public INodeIterator traverse(ParcelableTraversalDescription desc, long startNodeId, ParcelableError err)
        throws RemoteException {
    try {
        resumeTrxIfExists();

        try {
            Node startNode = mDb.getNodeById(startNodeId);
            if (startNode == null) {
                throw new IllegalArgumentException("Illegal start node for traversal");
            }

            TraversalDescription traversalDesc = Traversal.description();

            // map order
            switch (desc.getOrder()) {
                case BREADTH_FIRST:
                    traversalDesc = traversalDesc.breadthFirst();
                    break;
                case DEPTH_FIRST:
                    traversalDesc = traversalDesc.depthFirst();
                    break;
            }

            // map uniqueness
            switch (desc.getUniqueness()) {
                case NONE:
                    traversalDesc = traversalDesc.uniqueness(Uniqueness.NONE);
                    break;
                case NODE_GLOBAL:
                    traversalDesc = traversalDesc.uniqueness(Uniqueness.NODE_GLOBAL);
                    break;
                case NODE_RECENT:
                    traversalDesc = traversalDesc.uniqueness(Uniqueness.NODE_RECENT);
                    break;
                case NODE_PATH:
                    traversalDesc = traversalDesc.uniqueness(Uniqueness.NODE_PATH);
                    break;
                case RELATIONSHIP_GLOBAL:
                    traversalDesc = traversalDesc.uniqueness(Uniqueness.RELATIONSHIP_GLOBAL);
                    break;
                case RELATIONSHIP_PATH:
                    traversalDesc = traversalDesc.uniqueness(Uniqueness.RELATIONSHIP_PATH);
                    break;
                case RELATIONSHIP_RECENT:
                    traversalDesc = traversalDesc.uniqueness(Uniqueness.RELATIONSHIP_RECENT);
                    break;
            }

            // map relationships
            for (String name : desc.getRelationships().keySet()) {
                RelationshipType type = new SimpleRelationshipType(name);
                Direction direction = Direction.valueOf(desc.getRelationships().get(name).name());
                traversalDesc = traversalDesc.relationships(type, direction);
            }

            // TODO: support paths
            Iterator<Node> nodeIterator = traversalDesc.traverse(startNode).nodes().iterator();

            return new NodeIteratorWrapper(nodeIterator);
        } finally {
            suspendCurrentTrx("traverse");
        }
    } catch (Exception e) {
        err.setError(Errors.TRANSACTION, e.getMessage());
        return null;
    }

}
 
开发者ID:neo4j-contrib,项目名称:neo4j-mobile-android,代码行数:70,代码来源:DbWrapper.java

示例14: getCostFunctionsForNode

import org.neo4j.kernel.Traversal; //导入依赖的package包/类
public static List<CostFunction> getCostFunctionsForNode(Long id, EmbeddedGraphDatabase database) {

        List<CostFunction> costFunctions = new ArrayList<CostFunction>();
        boolean transactionAllreadyRunning = false;
        try {
            transactionAllreadyRunning = (database.getTxManager().getStatus() == Status.STATUS_ACTIVE);
        } catch (SystemException ex) {
            log.error(ex.getMessage(), ex);
        }
        Transaction tx = (transactionAllreadyRunning) ? null : database.beginTx();

        try {

            Node parentNode = database.getNodeById(id);

            if (parentNode == null) {
                return costFunctions;
            }

            //search from this node with ID=id the target nodes for which it has a HAS_COST_FUNCTION relationship
            TraversalDescription description = Traversal.traversal()
                    .evaluator(Evaluators.excludeStartPosition())
                    .relationships(ServiceUnitRelationship.hasCostFunction, Direction.OUTGOING)
                    .uniqueness(Uniqueness.NODE_PATH);
            Traverser traverser = description.traverse(parentNode);
            for (Path path : traverser) {

                Node node = path.endNode();
                CostFunction costFunction = new CostFunction();
                costFunction.setId(node.getId());

                if (node.hasProperty(KEY)) {
                    costFunction.setName(node.getProperty(KEY).toString());
                } else {
                    log.warn("Retrieved CostFunction " + node + " has no " + KEY);
                }

                if (node.hasProperty(UUID)) {
                    costFunction.setUuid(java.util.UUID.fromString(node.getProperty(UUID).toString()));
                } else {
                    log.warn("Retrieved CloudProvider " + costFunction + " has no " + UUID);
                }

                //carefull. this can lead to infinite recursion (is still a graph. maybe improve later)
                costFunction.getAppliedIfServiceInstanceUses().addAll(getAppliedInConjunctionWithEntities(node.getId(), database));
                //need to also retrieve Resurce and Quality

                costFunction.getCostElements().addAll(CostElementDAO.getCostElementPropertiesForNode(node.getId(), database));

                if (costFunction != null) {
                    //hack. if the costFunction has allready been added (equals is done on the DB Node),
                    //this means ServiceUnit has elasticity capability on it, and the old is also removed
                    if (costFunctions.contains(costFunction)) {
                        costFunctions.remove(costFunction);
                    } else {
                        costFunctions.add(costFunction);
                    }
                }
            }
            if (!transactionAllreadyRunning) {
                tx.success();
            }
        } catch (Exception e) {
            log.error(e.getMessage(), e);
            e.printStackTrace();
        } finally {
            if (!transactionAllreadyRunning) {
                tx.finish();
            }
        }

        return costFunctions;
    }
 
开发者ID:tuwiendsg,项目名称:MELA,代码行数:74,代码来源:CostFunctionDAO.java

示例15: getElasticityDependency

import org.neo4j.kernel.Traversal; //导入依赖的package包/类
/**
 * Counts how many elasticity characteristic nodes point to it with a
 * "elasticityCapabilityFor" relationship
 *
 * @param id
 * @param database
 * @return sum of incoming MANDATORY_ASSOCIATION and OPTIONAL_ASSOCIATION
 * elasticity capabilities if returns -1, means error encountered. otherwise
 * the result is always >= 0
 */
public static int getElasticityDependency(long id, EmbeddedGraphDatabase database) {

    CloudOfferedService elTarget = null;
    int incomingPaths = 0;
    boolean transactionAllreadyRunning = false;
    try {
        transactionAllreadyRunning = (database.getTxManager().getStatus() == Status.STATUS_ACTIVE);
    } catch (SystemException ex) {
        log.error(ex.getMessage(), ex);
    }
    Transaction tx = (transactionAllreadyRunning) ? null : database.beginTx();

    try {
        Node parentNode = database.getNodeById(id);

        if (parentNode == null) {
            log.error("Node with id " + id + " was not found");
            return 0;
        }

        TraversalDescription description = Traversal.traversal()
                .evaluator(Evaluators.excludeStartPosition())
                .relationships(ServiceUnitRelationship.hasElasticityCapability, Direction.OUTGOING)
                .uniqueness(Uniqueness.NODE_PATH);
        Traverser traverser = description.traverse(parentNode);

        //for each incoming path, if is MANDATORY_ASSOCIATION decrease the in
        for (Path path : traverser) {
            incomingPaths++;
        }
        if (!transactionAllreadyRunning) {
            if (!transactionAllreadyRunning) {
                tx.success();
            }
        }
    } catch (Exception e) {
        log.error(e.getMessage(), e);

        e.printStackTrace();
    } finally {
        if (!transactionAllreadyRunning) {
            tx.finish();
        }
    }
    return incomingPaths;
}
 
开发者ID:tuwiendsg,项目名称:MELA,代码行数:57,代码来源:ServiceUnitDAO.java


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