Package com.orientechnologies.orient.core.db.record

Examples of com.orientechnologies.orient.core.db.record.ODatabaseRecord


   */
  public Object execute(final Map<Object, Object> iArgs) {
    if (fieldName == null)
      throw new OCommandExecutionException("Cannot execute the command because it has not yet been parsed");

    final ODatabaseRecord database = getDatabase();
    final OClassImpl sourceClass = (OClassImpl) database.getMetadata().getSchema().getClass(className);
    if (sourceClass == null)
      throw new OCommandExecutionException("Source class '" + className + "' not found");

    final List<OIndex<?>> indexes = relatedIndexes(fieldName);
    if (!indexes.isEmpty()) {
View Full Code Here


    return null;
  }

  private void dropRelatedIndexes(final List<OIndex<?>> indexes) {
    final ODatabaseRecord database = getDatabase();
    for (final OIndex<?> index : indexes) {
      database.command(new OCommandSQL("DROP INDEX " + index.getName())).execute();
    }
  }
View Full Code Here

  }

  private List<OIndex<?>> relatedIndexes(final String fieldName) {
    final List<OIndex<?>> result = new ArrayList<OIndex<?>>();

    final ODatabaseRecord database = getDatabase();
    for (final OIndex<?> oIndex : database.getMetadata().getIndexManager().getClassIndexes(className)) {
      if (OCollections.indexOf(oIndex.getDefinition().getFields(), fieldName, new OCaseInsentiveComparator()) > -1) {
        result.add(oIndex);
      }
    }
View Full Code Here

  public OCommandExecutorSQLDelete() {
  }

  @SuppressWarnings("unchecked")
  public OCommandExecutorSQLDelete parse(final OCommandRequest iRequest) {
    final ODatabaseRecord database = getDatabase();

    init((OCommandRequestText) iRequest);

    query = null;
    recordCount = 0;

    parserRequiredKeyword(OCommandExecutorSQLDelete.KEYWORD_DELETE);
    parserRequiredKeyword(OCommandExecutorSQLDelete.KEYWORD_FROM);

    String subjectName = parserRequiredWord(false, "Syntax error", " =><,\r\n");
    if (subjectName == null)
      throwSyntaxErrorException("Invalid subject name. Expected cluster, class, index or sub-query");

    if (OStringParser.startsWithIgnoreCase(subjectName, OCommandExecutorSQLAbstract.INDEX_PREFIX)) {
      // INDEX
      indexName = subjectName.substring(OCommandExecutorSQLAbstract.INDEX_PREFIX.length());

      if (!parserIsEnded()) {
        while (!parserIsEnded()) {
          final String word = parserGetLastWord();

          if (word.equals(KEYWORD_LOCK))
            lockStrategy = parseLock();
          else if (word.equals(KEYWORD_RETURN))
            returning = parseReturn();
          else if (word.equalsIgnoreCase(KEYWORD_WHERE))
            compiledFilter = OSQLEngine.getInstance().parseCondition(parserText.substring(parserGetCurrentPosition()),
                getContext(), KEYWORD_WHERE);

          parserNextWord(true);
        }

      } else
        parserSetCurrentPosition(-1);

    } else if (subjectName.startsWith("(")) {
      subjectName = subjectName.trim();
      query = database.command(new OSQLAsynchQuery<ODocument>(subjectName.substring(1, subjectName.length() - 1), this));

    } else {
      parserNextWord(true);

      while (!parserIsEnded()) {
        final String word = parserGetLastWord();

        if (word.equals(KEYWORD_LOCK))
          lockStrategy = parseLock();
        else if (word.equals(KEYWORD_RETURN))
          returning = parseReturn();
        else {
          parserGoBack();
          break;
        }

        parserNextWord(true);
      }

      final String condition = parserGetCurrentPosition() > -1 ? " " + parserText.substring(parserGetCurrentPosition()) : "";
      query = database.command(new OSQLAsynchQuery<ODocument>("select from " + subjectName + condition, this));
    }

    return this;
  }
View Full Code Here

    return this;
  }

  @Override
  public Object execute(Map<Object, Object> iArgs) {
    final ODatabaseRecord database = getDatabase();
    boolean txbegun = database.getTransaction() == null || !database.getTransaction().isActive();

    if (txbegun)
      database.begin();

    try {
      final Object result = super.execute(iArgs);

      if (txbegun)
        database.commit();

      return result;
    } catch (Exception e) {
      if (txbegun)
        database.rollback();
      throw new OCommandExecutionException("Transactional command failed", e);
    }
  }
View Full Code Here

  @SuppressWarnings("rawtypes")
  public Object execute(final Map<Object, Object> iArgs) {
    if (indexName == null)
      throw new OCommandExecutionException("Cannot execute the command because it has not been parsed yet");

    final ODatabaseRecord database = getDatabase();
    final OIndex<?> idx;
    if (fields == null || fields.length == 0) {
      if (keyTypes != null)
        idx = database.getMetadata().getIndexManager()
            .createIndex(indexName, indexType.toString(), new OSimpleKeyIndexDefinition(keyTypes), null, null, metadataDoc, engine);
      else if (serializerKeyId != 0) {
        idx = database
            .getMetadata()
            .getIndexManager()
            .createIndex(indexName, indexType.toString(), new ORuntimeKeyIndexDefinition(serializerKeyId), null, null, metadataDoc,
                engine);
      } else
        idx = database.getMetadata().getIndexManager()
            .createIndex(indexName, indexType.toString(), null, null, null, metadataDoc, engine);
    } else {
      if ((keyTypes == null || keyTypes.length == 0) && collates == null) {
        idx = oClass.createIndex(indexName, indexType.toString(), null, metadataDoc, engine, fields);
      } else {

        List<OCollate> collatesList = null;

        if (collates != null) {
          collatesList = new ArrayList<OCollate>();

          for (String collate : collates) {
            if (collate != null) {
              final OCollate col = OSQLEngine.getCollate(collate);
              collatesList.add(col);
            } else
              collatesList.add(null);
          }
        }

        final OIndexDefinition idxDef = OIndexDefinitionFactory.createIndexDefinition(oClass, Arrays.asList(fields),
            Arrays.asList(keyTypes), collatesList);

        idx = database.getMetadata().getIndexManager()
            .createIndex(indexName, indexType.name(), idxDef, oClass.getPolymorphicClusterIds(), null, metadataDoc, engine);
      }
    }

    if (idx != null)
View Full Code Here

    // EXTRACT THE CLASS NAME
    final int classSeparatorPos = OStringParser.indexOfOutsideStrings(iValue, OStringSerializerHelper.CLASS_SEPARATOR.charAt(0), 0,
        -1);
    if (classSeparatorPos > -1) {
      final String className = iValue.substring(0, classSeparatorPos);
      final ODatabaseRecord database = ODatabaseRecordThreadLocal.INSTANCE.get();
      if (className != null && database != null)
        iLinkedClass = database.getMetadata().getSchema().getClass(className);
    }
    return iLinkedClass;
  }
View Full Code Here

      else if (len > 0) {
        final String res = new String(bytes.bytes, bytes.offset, len, utf8);
        bytes.skip(len);
        field = res;
      } else {
        ODatabaseRecord db = document.getDatabase();
        if (db == null || db.isClosed())
          throw new ODatabaseException("Impossible deserialize the document no database present");
        prop = db.getMetadata().getSchema().getGlobalPropertyById((len * -1) - 1);
        field = prop.getName();
      }

      if (document.containsField(field)) {
        // SKIP FIELD
View Full Code Here

  private OIdentifiable recursiveLinkSave(OIdentifiable link) {

    if (link instanceof ORID) {
      if (((ORID) link).isValid() && ((ORID) link).isNew()) {
        final ODatabaseRecord database = ODatabaseRecordThreadLocal.INSTANCE.get();
        ORecord record = link.getRecord();
        database.save(record);
        return record;
      }
    } else if (link instanceof ORecord) {
      ORID rid = link.getIdentity();
      if (((ORecord) link).isDirty() || (rid.isTemporary())) {
View Full Code Here

    final ODocument recordInternal = (ODocument) fromString(iFieldValue, new ODocument(), null, iOptions, shouldReload);

    if (shouldBeDeserializedAsEmbedded(recordInternal, iType))
      ODocumentInternal.addOwner(recordInternal, iRecord);
    else {
      ODatabaseRecord database = ODatabaseRecordThreadLocal.INSTANCE.get();

      if (rid.isPersistent() && database != null) {
        ODocument documentToMerge = database.load(rid);
        documentToMerge.merge(recordInternal, false, false);
        return documentToMerge;
      }
    }
View Full Code Here

TOP

Related Classes of com.orientechnologies.orient.core.db.record.ODatabaseRecord

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.