@Override public OIdentifiable preprocess(OIdentifiable value, Object... hints) { if (value == null) return null; else return value.getIdentity(); }
public boolean isAlreadyTraversed(final OIdentifiable identity, final int iLevel) { if (history.contains(identity.getIdentity())) return true; // final int[] l = history.get(identity.getIdentity()); // if (l == null) // return false; // // for (int i = 0; i < l.length && l[i] > -1; ++i) // if (l[i] == iLevel) // return true; return false; }
private void updateChangesIdentity(ORID oldRid, ORID newRid, OTransactionIndexChangesPerKey changesPerKey) { if (changesPerKey == null) return; for (final OTransactionIndexChangesPerKey.OTransactionIndexEntry indexEntry : changesPerKey.entries) if (indexEntry.value.getIdentity().equals(oldRid)) indexEntry.value = newRid; }
private boolean matchesCluster(OCommandContext iCommandContext, Integer clusterId, OIdentifiable origin) { if (clusterId == null) { return true; } if (origin == null) { return false; } if (origin.getIdentity() == null) { return false; } return clusterId.equals(origin.getIdentity().getClusterId()); }
/** * {@inheritDoc} */ public <RET extends ORecord> RET getRecord(final OIdentifiable iIdentifiable) { if (iIdentifiable instanceof ORecord) return (RET) iIdentifiable; return (RET) load(iIdentifiable.getIdentity()); }
@Override public boolean equals(final Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof OIdentifiable) return _recordId.equals(((OIdentifiable) obj).getIdentity()); return false; }
private Iterable<OIdentifiable> fetchAliasCandidates(String nextAlias, Map<String, OWhereClause> aliasFilters, OCommandContext iCommandContext, Map<String, String> aliasClasses) { Iterator<OIdentifiable> it = query(aliasClasses.get(nextAlias), aliasFilters.get(nextAlias), iCommandContext); Set<OIdentifiable> result = new HashSet<OIdentifiable>(); while (it.hasNext()) { result.add(it.next().getIdentity()); } return result; }
@Override public OIdentifiable put(final Object key, OIdentifiable value) { if (status == MULTIVALUE_CONTENT_TYPE.ALL_RIDS && value instanceof ORecord && !value.getIdentity().isNew()) // IT'S BETTER TO LEAVE ALL RIDS AND EXTRACT ONLY THIS ONE value = value.getIdentity(); else status = ORecordMultiValueHelper.updateContentType(status, value); return super.put(key, value); }
private void internalUnTrack(ORecord pointing, OIdentifiable pointed) { if (references == null) return; if (pointed.getIdentity().isNew()) { List<OIdentifiable> refs = references.get(pointing); if (refs == null) return; if (!(pointed instanceof ODocument) || !((ODocument) pointed).isEmbedded()) { refs.remove(pointed); } } }
/** * {@inheritDoc} */ @Override public void serializeInByteBufferObject(OIdentifiable object, ByteBuffer buffer, Object... hints) { final ORID r = object.getIdentity(); buffer.putShort((short) r.getClusterId()); // Wrong implementation but needed for binary compatibility byte[] stream = new byte[OLongSerializer.LONG_SIZE]; OLongSerializer.INSTANCE.serialize(r.getClusterPosition(), stream, 0); buffer.put(stream); }
public <T> T getProperty(String name) { T result = null; if (content.containsKey(name)) { result = (T) wrap(content.get(name)); } else if (element != null) { result = (T) wrap(((ODocument) element.getRecord()).getProperty(name)); } if (result instanceof OIdentifiable && ((OIdentifiable) result).getIdentity().isPersistent()) { result = (T) ((OIdentifiable) result).getIdentity(); } return result; }
private Object extractValue(ODocument record, OPair<String, Object> entry) { Object value = entry.getValue(); if (value instanceof OSQLFilterItem) value = ((OSQLFilterItem) value).getValue(record, null, context); else if (value instanceof OCommandRequest) value = ((OCommandRequest) value).execute(record, null, context); if (value instanceof OIdentifiable && ((OIdentifiable) value).getIdentity().isPersistent()) // USE ONLY THE RID TO AVOID CONCURRENCY PROBLEM WITH OLD VERSIONS value = ((OIdentifiable) value).getIdentity(); return value; }
public void pop(final OIdentifiable currentRecord) { if (currentRecord != null) { final ORID rid = currentRecord.getIdentity(); if (!history.remove(rid)) OLogManager.instance().warn(this, "Element '" + rid + "' not found in traverse history"); } try { memory.dropFrame(); } catch (NoSuchElementException e) { throw new IllegalStateException("Traverse stack is empty", e); } }
private void putV1(Object key, OIdentifiable value) { while (true) { try { storage.putRidIndexEntry(indexId, key, value.getIdentity()); break; } catch (OInvalidIndexEngineIdException ignore) { doReloadIndexEngine(); } } }
private OEdge toEdge(OIdentifiable item) { if (item != null && item instanceof OElement) { return ((OElement) item).asEdge().orElse(null); } else { item = getDatabase().load(item.getIdentity()); if (item != null && item instanceof OElement) { return ((OElement) item).asEdge().orElse(null); } } return null; }
public int remove(final OIdentifiable iRecord) { try (OResultSet rs = getDatabase().command(String.format(QUERY_REMOVE3, name, iRecord.getIdentity()), iRecord)) { return (Integer) rs.next().getProperty("value"); } }
private int getHighLevelDocClusterId() { ORecordElement owner = this.owner; while (owner != null && owner.getOwner() != null) { owner = owner.getOwner(); } if (owner != null) { return ((OIdentifiable) owner).getIdentity().getClusterId(); } return -1; }
private void tryAddEntryPoint(OResult res, OCommandContext ctx) { if (whileClause == null || whileClause.matchesFilters(res, ctx)) { this.entryPoints.add(0, res); } if (res.isElement()) { traversed.add(res.getElement().get().getIdentity()); } else if (res.getProperty("@rid") != null && res.getProperty("@rid") instanceof OIdentifiable) { traversed.add(((OIdentifiable) res.getProperty("@rid")).getIdentity()); } }
public void serialize(final OIdentifiable rid, final byte[] stream, final int startPosition, Object... hints) { final ORID r = rid.getIdentity(); short2bytes((short) r.getClusterId(), stream, startPosition); long2bytes(r.getClusterPosition(), stream, startPosition + OShortSerializer.SHORT_SIZE); }
public OImmutableRole(ORole role) { if (role.getParentRole() == null) this.parentRole = null; else this.parentRole = new OImmutableRole(role.getParentRole()); this.mode = role.getMode(); this.name = role.getName(); this.rid = role.getIdentity().getIdentity(); this.role = role; for (ORule rule : role.getRuleSet()) rules.put(rule.getResourceGeneric(), rule); }