graphdb/src/main/java/com/tinkerpop/blueprints/impls/orient/OrientVertex.java
public Iterable<Edge> getEdges(final OrientVertex iDestination, final Direction iDirection, final String... iLabels) {

    setCurrentGraphInThreadLocal();

    final ODocument doc = getRecord();

    OrientBaseGraph.getEdgeClassNames(getGraph(), iLabels);
    OrientBaseGraph.encodeClassNames(iLabels);

    final OMultiCollectionIterator<Edge> iterable = new OMultiCollectionIterator<Edge>().setEmbedded(true);

    for (OTriple<String, Direction, String> connectionField : getConnectionFields(iDirection, iLabels)) {
      String fieldName = connectionField.getKey();
      OPair<Direction, String> connection = connectionField.getValue();

      final Object fieldValue = doc.rawField(fieldName);
      if (fieldValue != null) {
        final OIdentifiable destinationVId = iDestination != null ? (OIdentifiable) iDestination.getId() : null;

        if (fieldValue instanceof OIdentifiable) {
          addSingleEdge(doc, iterable, fieldName, connection, fieldValue, destinationVId, iLabels);

        } else if (fieldValue instanceof Collection<?>) {
          Collection<?> coll = (Collection<?>) fieldValue;

          if (coll.size() == 1) {
            // SINGLE ITEM: AVOID CALLING ITERATOR
            if (coll instanceof ORecordLazyMultiValue)
              addSingleEdge(doc, iterable, fieldName, connection, ((ORecordLazyMultiValue) coll).rawIterator().next(),
                  destinationVId, iLabels);
            else if (coll instanceof List<?>)
              addSingleEdge(doc, iterable, fieldName, connection, ((List<?>) coll).get(0), destinationVId, iLabels);
            else
              addSingleEdge(doc, iterable, fieldName, connection, coll.iterator().next(), destinationVId, iLabels);
          } else {
            // CREATE LAZY Iterable AGAINST COLLECTION FIELD
            if (coll instanceof ORecordLazyMultiValue) {
              iterable.add(
                  new OrientEdgeIterator(this, iDestination, coll, ((ORecordLazyMultiValue) coll).rawIterator(), connection,
                      iLabels, coll.size()));
            } else
              iterable.add(new OrientEdgeIterator(this, iDestination, coll, coll.iterator(), connection, iLabels, -1));
          }
        } else if (fieldValue instanceof ORidBag) {
          iterable.add(
              new OrientEdgeIterator(this, iDestination, fieldValue, ((ORidBag) fieldValue).rawIterator(), connection, iLabels,
                  ((ORidBag) fieldValue).size()));
        }
      }
    }

    return iterable;
  }
public Iterable<Edge> getEdges(final OrientVertex iDestination, final Direction iDirection, final String... iLabels) {

    setCurrentGraphInThreadLocal();

    final ODocument doc = getRecord();

    OrientBaseGraph.getEdgeClassNames(getGraph(), iLabels);
    OrientBaseGraph.encodeClassNames(iLabels);

    final OMultiCollectionIterator<Edge> iterable = new OMultiCollectionIterator<Edge>().setEmbedded(true);

    for (OTriple<String, Direction, String> connectionField : getConnectionFields(iDirection, iLabels)) {
      String fieldName = connectionField.getKey();
      OPair<Direction, String> connection = connectionField.getValue();

      final Object fieldValue = doc.rawField(fieldName);
      if (fieldValue != null) {
        final OIdentifiable destinationVId = iDestination != null ? (OIdentifiable) iDestination.getId() : null;

        if (fieldValue instanceof OIdentifiable) {
          addSingleEdge(doc, iterable, fieldName, connection, fieldValue, destinationVId, iLabels);

        } else if (fieldValue instanceof Collection<?>) {
          Collection<?> coll = (Collection<?>) fieldValue;

          if (coll.size() == 1) {
            // SINGLE ITEM: AVOID CALLING ITERATOR
            if (coll instanceof ORecordLazyMultiValue)
              addSingleEdge(doc, iterable, fieldName, connection, ((ORecordLazyMultiValue) coll).rawIterator().next(),
                  destinationVId, iLabels);
            else if (coll instanceof List<?>)
              addSingleEdge(doc, iterable, fieldName, connection, ((List<?>) coll).get(0), destinationVId, iLabels);
            else
              addSingleEdge(doc, iterable, fieldName, connection, coll.iterator().next(), destinationVId, iLabels);
          } else {
            // CREATE LAZY Iterable AGAINST COLLECTION FIELD
            if (coll instanceof ORecordLazyMultiValue) {
              iterable.add(
                  new OrientEdgeIterator(this, iDestination, coll, ((ORecordLazyMultiValue) coll).rawIterator(), connection,
                      iLabels, coll.size()));
            } else
              iterable.add(new OrientEdgeIterator(this, iDestination, coll, coll.iterator(), connection, iLabels, -1));
          }
        } else if (fieldValue instanceof ORidBag) {
          iterable.add(
              new OrientEdgeIterator(this, iDestination, fieldValue, ((ORidBag) fieldValue).rawIterator(), connection, iLabels,
                  ((ORidBag) fieldValue).size()));
        }
      }
    }

    return iterable;
  }
public Iterable < Edge > getEdges ( final OrientVertex iDestination , final Direction iDirection , final String ... iLabels ) { setCurrentGraphInThreadLocal ( ) ; final ODocument doc = getRecord ( ) ; OrientBaseGraph . getEdgeClassNames ( getGraph ( ) , iLabels ) ; OrientBaseGraph . encodeClassNames ( iLabels ) ; final OMultiCollectionIterator < Edge > iterable = new OMultiCollectionIterator < Edge > ( ) . setEmbedded ( true ) ; for ( OTriple < String , Direction , String > connectionField : getConnectionFields ( iDirection , iLabels ) ) { String fieldName = connectionField . getKey ( ) ; OPair < Direction , String > connection = connectionField . getValue ( ) ; final Object fieldValue = doc . rawField ( fieldName ) ; if ( fieldValue != null ) { final OIdentifiable destinationVId = iDestination != null ? ( OIdentifiable ) iDestination . getId ( ) : null ; if ( fieldValue instanceof OIdentifiable ) { addSingleEdge ( doc , iterable , fieldName , connection , fieldValue , destinationVId , iLabels ) ; } else if ( fieldValue instanceof Collection < ? > ) { Collection < ? > coll = ( Collection < ? > ) fieldValue ; if ( coll . size ( ) == 1 ) { // SINGLE ITEM: AVOID CALLING ITERATOR if ( coll instanceof ORecordLazyMultiValue ) addSingleEdge ( doc , iterable , fieldName , connection , ( ( ORecordLazyMultiValue ) coll ) . rawIterator ( ) . next ( ) , destinationVId , iLabels ) ; else if ( coll instanceof List < ? > ) addSingleEdge ( doc , iterable , fieldName , connection , ( ( List < ? > ) coll ) . get ( 0 ) , destinationVId , iLabels ) ; else addSingleEdge ( doc , iterable , fieldName , connection , coll . iterator ( ) . next ( ) , destinationVId , iLabels ) ; } else { // CREATE LAZY Iterable AGAINST COLLECTION FIELD if ( coll instanceof ORecordLazyMultiValue ) { iterable . add ( new OrientEdgeIterator ( this , iDestination , coll , ( ( ORecordLazyMultiValue ) coll ) . rawIterator ( ) , connection , iLabels , coll . size ( ) ) ) ; } else iterable . add ( new OrientEdgeIterator ( this , iDestination , coll , coll . iterator ( ) , connection , iLabels , - 1 ) ) ; } } else if ( fieldValue instanceof ORidBag ) { iterable . add ( new OrientEdgeIterator ( this , iDestination , fieldValue , ( ( ORidBag ) fieldValue ) . rawIterator ( ) , connection , iLabels , ( ( ORidBag ) fieldValue ) . size ( ) ) ) ; } } } return iterable ; }
(Blueprints Extension) Returns all the edges from the current Vertex to another one.

@param iDestination The target vertex
@param iDirection   The direction between OUT, IN or BOTH
@param iLabels      Optional labels as Strings to consider

@return
( Blueprints Extension ) Returns all the edges from the current Vertex to another one .