Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  *
  *  *  Copyright 2014 Orient Technologies LTD (info(at)orientechnologies.com)
  *  *
  *  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  *  you may not use this file except in compliance with the License.
  *  *  You may obtain a copy of the License at
  *  *
  *  *       http://www.apache.org/licenses/LICENSE-2.0
 *  *
 *  *  Unless required by applicable law or agreed to in writing, software
 *  *  distributed under the License is distributed on an "AS IS" BASIS,
 *  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  *  See the License for the specific language governing permissions and
 *  *  limitations under the License.
 *  *
 *  * For more information: http://www.orientechnologies.com
 *
 */
package com.orientechnologies.orient.graph.sql.functions;
Hi-level function that return the label for both edges and vertices. The label could be bound to the class name.

Author(s):
Luca Garulli (l.garulli--at--orientechnologies.com)
  public static final String NAME = "label";
  public OSQLFunctionLabel() {
    super(, 0, 0);
  }
  public Object execute(Object iThisfinal OIdentifiable iCurrentRecordfinal Object iCurrentResultfinal Object[] iParameters,
      OCommandContext iContext) {
    final OModifiableBoolean shutdownFlag = new OModifiableBoolean();
    final OrientBaseGraph graph = OGraphCommandExecutorSQLFactory.getGraph(falseshutdownFlag);
    try {
      if (iCurrentResult != null) {
        return OSQLEngine.foreachRecord(new OCallable<ObjectOIdentifiable>() {
          @Override
          public Object call(final OIdentifiable iArgument) {
            return getLabel(graphiArgument);
          }
        }, iCurrentResultiContext);
      } else
        return getLabel(graphiCurrentRecord);
    } finally {
      if (shutdownFlag.getValue())
        graph.shutdown(false);
    }
  }
  private Object getLabel(final OrientBaseGraph graphfinal OIdentifiable iCurrentRecord) {
    final ODocument rec = iCurrentRecord.getRecord();
    if (ODocumentInternal.getImmutableSchemaClass(rec).isSubClassOf(.)) {
      // VERTEX
      final OrientVertex vertex = graph.getVertex(iCurrentRecord);
      return vertex.getLabel();
    } else if (ODocumentInternal.getImmutableSchemaClass(rec).isSubClassOf(.)) {
      // EDGE
      final OrientEdge edge = graph.getEdge(iCurrentRecord);
      return edge.getLabel();
    } else
      throw new OCommandExecutionException("Invalid record: is neither a vertex nor an edge. Found class: "
          + ODocumentInternal.getImmutableSchemaClass(rec));
  }
  public String getSyntax() {
    return "Syntax error: label()";
  }
New to GrepCode? Check out our FAQ X