internal virtual void EvaluatePending(QCandidate a_root, QPending a_pending, int a_secondResult) { var res = i_evaluator.Not(i_and ? ((a_pending._result + a_secondResult) > 0) : ( a_pending._result + a_secondResult) > QPending.False); if (HasJoins()) { var i = IterateJoins(); while (i.MoveNext()) { var qcj = (QConJoin ) i.Current; a_root.Evaluate(new QPending(qcj, this, res)); } } else { if (!res) { Constraint1().DoNotInclude(a_root); Constraint2().DoNotInclude(a_root); } } }
public void Visit(object obj) { QCandidate candidate = (QCandidate)obj; sb.Append(" "); sb.Append(candidate._key); }
public void Visit(object a_object) { QCandidate candidate = (QCandidate)a_object; if (candidate.Include()) { TreeInt ids = new TreeInt(candidate._key); ByRef idsNew = new ByRef(); IEnumerator itPath = executionPath.GetEnumerator(); while (itPath.MoveNext()) { idsNew.value = null; string fieldName = (string)(itPath.Current); if (ids != null) { ids.Traverse(new _IVisitor4_385(this, stream, fieldName, idsNew)); } ids = (TreeInt)((TreeInt)idsNew.value); } if (ids != null) { ids.Traverse(new _IVisitor4_406(result)); } } }
internal virtual void EvaluatePending(QCandidate a_root, QPending a_pending, int a_secondResult) { bool res = i_evaluator.Not(i_and ? ((a_pending._result + a_secondResult) > 0) : ( a_pending._result + a_secondResult) > QPending.False); if (HasJoins()) { IEnumerator i = IterateJoins(); while (i.MoveNext()) { Db4objects.Db4o.Internal.Query.Processor.QConJoin qcj = (Db4objects.Db4o.Internal.Query.Processor.QConJoin )i.Current; a_root.Evaluate(new QPending(qcj, this, res)); } } else { if (!res) { Constraint1().DoNotInclude(a_root); Constraint2().DoNotInclude(a_root); } } }
public QCandidate ReadSubCandidate(QueryingReadContext context, ITypeHandler4 handler ) { ObjectID objectID = ObjectID.NotPossible; try { int offset = context.Offset(); if (handler is IReadsObjectIds) { objectID = ((IReadsObjectIds)handler).ReadObjectID(context); } if (objectID.IsValid()) { return(new QCandidate(this, null, objectID._id)); } if (objectID == ObjectID.NotPossible) { context.Seek(offset); object obj = context.Read(handler); if (obj != null) { QCandidate candidate = new QCandidate(this, obj, context.Container().GetID(context .Transaction(), obj)); candidate.ClassMetadata(context.Container().ClassMetadataForObject(obj)); return(candidate); } } } catch (Exception) { } // FIXME: Catchall return(null); }
public _IClosure4_318(QCandidate _enclosing, ITypeHandler4 arrayElementHandler, IReadBuffer buffer, QCandidates candidates) { this._enclosing = _enclosing; this.arrayElementHandler = arrayElementHandler; this.buffer = buffer; this.candidates = candidates; }
internal override bool Evaluate(QCandidate a_candidate) { if (!a_candidate.FieldIsAvailable()) { VisitOnNull(a_candidate.GetRoot()); } return true; }
internal override bool Evaluate(QCandidate a_candidate) { if (!a_candidate.FieldIsAvailable()) { VisitOnNull(a_candidate.GetRoot()); } return(true); }
internal virtual IPreparedComparison PrepareComparison(QCandidate candidate) { if (_preparedComparison != null) { return(_preparedComparison); } return(candidate.PrepareComparison(Container(), i_object)); }
internal override bool Evaluate(QConObject a_constraint, QCandidate a_candidate, object a_value) { if (i_objectID == 0) { i_objectID = a_constraint.GetObjectID(); } return(a_candidate._key == i_objectID); }
internal override bool Evaluate(QConObject a_constraint, QCandidate a_candidate, object a_value) { if (i_objectID == 0) { i_objectID = a_constraint.GetObjectID(); } return a_candidate._key == i_objectID; }
private ITypeHandler4 TypeHandlerFor(Db4objects.Db4o.Internal.Query.Processor.QCandidate candidate) { Db4objects.Db4o.Internal.ClassMetadata classMetadata = candidate.ReadClassMetadata (); if (classMetadata != null) { return(classMetadata.TypeHandler()); } return(null); }
internal override bool Evaluate(QCandidate a_candidate) { try { return(a_candidate.Evaluate(this, i_evaluator)); } catch (Exception e) { return(false); } }
private ITypeHandler4 TypeHandlerFor(QCandidate candidate) { var classMetadata = candidate.ReadClassMetadata (); if (classMetadata != null) { return(classMetadata.TypeHandler()); } return(null); }
internal override bool Evaluate(QConObject a_constraint, QCandidate a_candidate, object a_value) { IEnumerator i = i_evaluators.GetEnumerator(); while (i.MoveNext()) { if (((QE)i.Current).Evaluate(a_constraint, a_candidate, a_value)) { return true; } } return false; }
public object Apply(object current) { int id = ((int)current); QCandidateBase candidate = new QCandidate(this._enclosing, null, id); this._enclosing._result.SingleCandidate(candidate); this._enclosing.Evaluate(); if (!candidate.Include()) { return(Iterators.Skip); } return(current); }
public object Apply(object current) { int id = ((int)current); QCandidate candidate = new QCandidate(this._enclosing, null, id); this._enclosing.i_root = candidate; this._enclosing.Evaluate(); if (!candidate.Include()) { return(Iterators.Skip); } return(current); }
public void Visit(object obj) { Db4objects.Db4o.Internal.Query.Processor.QCandidate cand = (Db4objects.Db4o.Internal.Query.Processor.QCandidate )obj; if (cand.Include()) { innerRes[0] = !isNot; } if (cand._pendingJoins != null) { cand._pendingJoins.Traverse(new _IVisitor4_173(pending)); } }
internal override bool Evaluate(QCandidate a_candidate) { bool res = true; IReflectClass claxx = a_candidate.ClassReflector(); if (claxx == null) { res = false; } else { res = i_equal ? _claxx.Equals(claxx) : _claxx.IsAssignableFrom(claxx); } return i_evaluator.Not(res); }
internal virtual bool Evaluate(QConObject constraint, QCandidate candidate, object obj) { IPreparedComparison prepareComparison = constraint.PrepareComparison(candidate); if (obj == null) { return prepareComparison is Null; } if (prepareComparison is PreparedArrayContainsComparison) { return ((PreparedArrayContainsComparison)prepareComparison).IsEqual(obj); } return prepareComparison.CompareTo(obj) == 0; }
public override object ShallowClone() { Db4objects.Db4o.Internal.Query.Processor.QCandidate qcan = new Db4objects.Db4o.Internal.Query.Processor.QCandidate (_candidates); qcan.SetBytes(_bytes); qcan._dependants = _dependants; qcan._include = _include; qcan._member = _member; qcan._pendingJoins = _pendingJoins; qcan._root = _root; qcan._classMetadata = _classMetadata; qcan._fieldMetadata = _fieldMetadata; return(base.ShallowCloneInternal(qcan)); }
public QCandidate Add(QCandidate candidate) { i_root = Tree.Add(i_root, candidate); if (candidate._size == 0) { // This means that the candidate was already present // and QCandidate does not allow duplicates. // In this case QCandidate#isDuplicateOf will have // placed the existing QCandidate in the i_root // variable of the new candidate. We return it here: return candidate.GetRoot(); } return candidate; }
internal override bool Evaluate(QConObject a_constraint, QCandidate a_candidate, object a_value) { var i = i_evaluators.GetEnumerator(); while (i.MoveNext()) { if (((QE)i.Current).Evaluate(a_constraint, a_candidate, a_value)) { return(true); } } return(false); }
internal override bool Evaluate(QConObject constraint, QCandidate candidate, object obj) { if (obj == null) { return false; } IPreparedComparison preparedComparison = constraint.PrepareComparison(candidate); if (preparedComparison is PreparedArrayContainsComparison) { return ((PreparedArrayContainsComparison)preparedComparison).IsGreaterThan(obj); } return preparedComparison.CompareTo(obj) > 0; }
public QCandidate Add(QCandidate candidate) { i_root = Tree.Add(i_root, candidate); if (candidate._size == 0) { // This means that the candidate was already present // and QCandidate does not allow duplicates. // In this case QCandidate#isDuplicateOf will have // placed the existing QCandidate in the i_root // variable of the new candidate. We return it here: return(candidate.GetRoot()); } return(candidate); }
internal virtual void DoNotInclude(QCandidate a_root) { if (DTrace.enabled) { DTrace.Donotinclude.Log(Id()); } if (i_parent != null) { i_parent.Visit1(a_root, this, false); } else { a_root.DoNotInclude(); } }
public override object ShallowClone() { var qcan = new QCandidate (_candidates); qcan.SetBytes(_bytes); qcan._dependants = _dependants; qcan._include = _include; qcan._member = _member; qcan._pendingJoins = _pendingJoins; qcan._root = _root; qcan._classMetadata = _classMetadata; qcan._fieldMetadata = _fieldMetadata; return(ShallowCloneInternal(qcan)); }
internal override bool Evaluate(QCandidate a_candidate) { bool res = true; IReflectClass claxx = a_candidate.ClassReflector(); if (claxx == null) { res = false; } else { res = i_equal ? _claxx.Equals(claxx) : _claxx.IsAssignableFrom(claxx); } return(i_evaluator.Not(res)); }
internal override bool Evaluate(QConObject constraint, QCandidate candidate, object obj) { if (obj == null) { return(false); } IPreparedComparison preparedComparison = constraint.PrepareComparison(candidate); if (preparedComparison is PreparedArrayContainsComparison) { return(((PreparedArrayContainsComparison)preparedComparison).IsGreaterThan(obj)); } return(preparedComparison.CompareTo(obj) > 0); }
internal virtual bool Evaluate(QConObject constraint, QCandidate candidate, object obj) { IPreparedComparison prepareComparison = constraint.PrepareComparison(candidate); if (obj == null) { return(prepareComparison is Null); } if (prepareComparison is PreparedArrayContainsComparison) { return(((PreparedArrayContainsComparison)prepareComparison).IsEqual(obj)); } return(prepareComparison.CompareTo(obj) == 0); }
internal void VisitOnNull(QCandidate a_root) { // TODO: It may be more efficient to rule out // all possible keepOnNull issues when starting // evaluation. IEnumerator i = IterateChildren(); while (i.MoveNext()) { ((Db4objects.Db4o.Internal.Query.Processor.QCon)i.Current).VisitOnNull(a_root); } if (VisitSelfOnNull()) { Visit(a_root, IsNullConstraint()); } }
public void Visit(object a_tree) { QCandidate parent = (QCandidate)a_tree; if (parent.CreateChild(this)) { return; } // No object found. // All children constraints are necessarily false. // Check immediately. IEnumerator i = IterateConstraints(); while (i.MoveNext()) { ((QCon)i.Current).VisitOnNull(parent.GetRoot()); } }
internal override bool Evaluate(QConObject constraint, QCandidate candidate, object obj) { if (obj != null) { if (obj is ByteArrayBuffer) { obj = candidate.ReadString((ByteArrayBuffer)obj); } string candidateStringValue = obj.ToString(); string stringConstraint = constraint.GetObject().ToString(); if (!caseSensitive) { candidateStringValue = candidateStringValue.ToLower(); stringConstraint = stringConstraint.ToLower(); } return(CompareStrings(candidateStringValue, stringConstraint)); } return(constraint.GetObject() == null); }
internal override bool Evaluate(QConObject constraint, QCandidate candidate, object obj) { if (obj != null) { if (obj is ByteArrayBuffer) { obj = candidate.ReadString((ByteArrayBuffer)obj); } string candidateStringValue = obj.ToString(); string stringConstraint = constraint.GetObject().ToString(); if (!caseSensitive) { candidateStringValue = candidateStringValue.ToLower(); stringConstraint = stringConstraint.ToLower(); } return CompareStrings(candidateStringValue, stringConstraint); } return constraint.GetObject() == null; }
public override void Visit(object obj) { QCandidate qc = (QCandidate)obj; bool res = true; bool processed = false; if (_checkClassMetadataOnly) { ClassMetadata yc = qc.ReadClassMetadata(); if (yc != null) { res = i_evaluator.Not(_classMetadata.GetHigherHierarchy(yc) == _classMetadata); processed = true; } } if (!processed) { res = Evaluate(qc); } Visit1(qc.GetRoot(), this, res); }
internal virtual void Visit1(QCandidate root, Db4objects.Db4o.Internal.Query.Processor.QCon reason, bool res) { // The a_reason parameter makes it eays to distinguish // between calls from above (a_reason == this) and below. if (HasJoins()) { // this should probably be on the Join IEnumerator i = IterateJoins(); while (i.MoveNext()) { root.Evaluate(new QPending((QConJoin)i.Current, this, res)); } } else { if (!res) { DoNotInclude(root); } } }
public override void Visit(object obj) { QCandidate candidate = (QCandidate)obj; // force activation outside the try block // so any activation errors bubble up ForceActivation(candidate); try { Platform4.EvaluationEvaluate(i_evaluation, candidate); } catch (Exception) { candidate.Include(false); } // TODO: implement Exception callback for the user coder // at least for test cases if (!candidate._include) { DoNotInclude(candidate.GetRoot()); } }
private Db4objects.Db4o.Internal.Query.Processor.QCandidate ReadSubCandidate(QCandidates candidateCollection) { Read(); if (_bytes == null || _fieldMetadata == null) { return null; } int offset = CurrentOffSet(); QueryingReadContext context = NewQueryingReadContext(); ITypeHandler4 handler = HandlerRegistry.CorrectHandlerVersion(context, _fieldMetadata .GetHandler()); Db4objects.Db4o.Internal.Query.Processor.QCandidate subCandidate = candidateCollection .ReadSubCandidate(context, handler); Seek(offset); if (subCandidate != null) { subCandidate._root = GetRoot(); return subCandidate; } return null; }
private void ForceActivation(QCandidate candidate) { candidate.GetObject(); }
internal virtual void DoNotInclude(QCandidate a_root) { if (DTrace.enabled) { DTrace.Donotinclude.Log(Id()); } if (i_parent != null) { i_parent.Visit1(a_root, this, false); } else { a_root.DoNotInclude(); } }
/// <param name="candidate"></param> internal virtual bool Evaluate(QCandidate candidate) { throw Exceptions4.VirtualException(); }
internal virtual void AddDependant(QCandidate a_candidate) { _dependants = new List4(_dependants, a_candidate); }
internal virtual QCandidate ToQCandidate(QCandidates candidates) { QCandidate qc = new QCandidate(candidates, null, _key); qc._preceding = ToQCandidate((Db4objects.Db4o.Internal.TreeInt)((Tree)_preceding) , candidates); qc._subsequent = ToQCandidate((Db4objects.Db4o.Internal.TreeInt)((Tree)_subsequent ), candidates); qc._size = _size; return qc; }
public override Tree OnAttemptToAddDuplicate(Tree oldNode) { _size = 0; _root = (Db4objects.Db4o.Internal.Query.Processor.QCandidate)oldNode; return oldNode; }
internal override bool Evaluate(QCandidate a_candidate) { try { return a_candidate.Evaluate(this, i_evaluator); } catch (Exception e) { return false; } }
public QCandidate ReadSubCandidate(QueryingReadContext context, ITypeHandler4 handler ) { ObjectID objectID = ObjectID.NotPossible; try { int offset = context.Offset(); if (handler is IReadsObjectIds) { objectID = ((IReadsObjectIds)handler).ReadObjectID(context); } if (objectID.IsValid()) { return new QCandidate(this, null, objectID._id); } if (objectID == ObjectID.NotPossible) { context.Seek(offset); object obj = context.Read(handler); if (obj != null) { QCandidate candidate = new QCandidate(this, obj, context.Container().GetID(context .Transaction(), obj)); candidate.ClassMetadata(context.Container().ClassMetadataForObject(obj)); return candidate; } } } catch (Exception) { } // FIXME: Catchall return null; }
internal virtual QCandidate ToQCandidate(QCandidates candidates) { var qc = new QCandidate(candidates, null, _key); qc._preceding = ToQCandidate((TreeInt) _preceding , candidates); qc._subsequent = ToQCandidate((TreeInt) _subsequent, candidates); qc._size = _size; return qc; }
public _IClosure4_318(QCandidate _enclosing, ITypeHandler4 arrayElementHandler, IReadBuffer buffer, QCandidates candidates) { this._enclosing = _enclosing; this.arrayElementHandler = arrayElementHandler; this.buffer = buffer; this.candidates = candidates; }
public _IVisitor4_229(QCandidate _enclosing) { this._enclosing = _enclosing; }
public override Tree OnAttemptToAddDuplicate(Tree oldNode) { _size = 0; _root = (QCandidate) oldNode; return oldNode; }
private ITypeHandler4 TypeHandlerFor(QCandidate candidate) { var classMetadata = candidate.ReadClassMetadata (); if (classMetadata != null) { return classMetadata.TypeHandler(); } return null; }
public override object ShallowClone() { Db4objects.Db4o.Internal.Query.Processor.QCandidate qcan = new Db4objects.Db4o.Internal.Query.Processor.QCandidate (_candidates); qcan.SetBytes(_bytes); qcan._dependants = _dependants; qcan._include = _include; qcan._member = _member; qcan._pendingJoins = _pendingJoins; qcan._root = _root; qcan._classMetadata = _classMetadata; qcan._fieldMetadata = _fieldMetadata; return base.ShallowCloneInternal(qcan); }
internal override void DoNotInclude(QCandidate a_root) { Constraint1().DoNotInclude(a_root); Constraint2().DoNotInclude(a_root); }
internal void VisitOnNull(QCandidate a_root) { // TODO: It may be more efficient to rule out // all possible keepOnNull issues when starting // evaluation. IEnumerator i = IterateChildren(); while (i.MoveNext()) { ((Db4objects.Db4o.Internal.Query.Processor.QCon)i.Current).VisitOnNull(a_root); } if (VisitSelfOnNull()) { Visit(a_root, IsNullConstraint()); } }
internal virtual void Visit1(QCandidate root, Db4objects.Db4o.Internal.Query.Processor.QCon reason, bool res) { // The a_reason parameter makes it eays to distinguish // between calls from above (a_reason == this) and below. if (HasJoins()) { // this should probably be on the Join IEnumerator i = IterateJoins(); while (i.MoveNext()) { root.Evaluate(new QPending((QConJoin)i.Current, this, res)); } } else { if (!res) { DoNotInclude(root); } } }
internal virtual void Visit(QCandidate a_root, bool res) { Visit1(a_root, this, i_evaluator.Not(res)); }
internal override bool Evaluate(QCandidate a_candidate) { return(_value); }
internal virtual IPreparedComparison PrepareComparison(QCandidate candidate) { if (_preparedComparison != null) { return _preparedComparison; } return candidate.PrepareComparison(Container(), i_object); }
public object Apply(object current) { int id = ((int)current); QCandidate candidate = new QCandidate(this._enclosing, null, id); this._enclosing.i_root = candidate; this._enclosing.Evaluate(); if (!candidate.Include()) { return Iterators.Skip; } return current; }
public override object ShallowClone() { var qcan = new QCandidate (_candidates); qcan.SetBytes(_bytes); qcan._dependants = _dependants; qcan._include = _include; qcan._member = _member; qcan._pendingJoins = _pendingJoins; qcan._root = _root; qcan._classMetadata = _classMetadata; qcan._fieldMetadata = _fieldMetadata; return ShallowCloneInternal(qcan); }