public override void OnUpdate(Net.Vpc.Upa.Callbacks.UpdateEvent @event) /* throws Net.Vpc.Upa.Exceptions.UPAException */ { Net.Vpc.Upa.Impl.Context.DefaultEntityTriggerContext context = new Net.Vpc.Upa.Impl.Context.DefaultEntityTriggerContext(@event.GetEntity(), @event.GetTrigger(), @event.GetContext()); foreach (object aK in ResolveIdList(@event, @event.GetFilterExpression())) { keyInterceptor.AfterUpdate(context, aK, @event.GetUpdatesRecord()); } }
public override object Invoke(params object [] arguments) { Net.Vpc.Upa.Callbacks.UpdateEvent ev = (Net.Vpc.Upa.Callbacks.UpdateEvent)arguments[0]; foreach (object id in ResolveIdList(ev, ev.GetFilterExpression())) { Net.Vpc.Upa.Record updatesRecord = ev.GetUpdatesRecord().Copy(); ev.GetEntity().GetBuilder().SetObjectId(updatesRecord, id); Net.Vpc.Upa.Callbacks.UpdateObjectEvent oe = new Net.Vpc.Upa.Callbacks.UpdateObjectEvent(id, updatesRecord, ev.GetFilterExpression(), ev.GetContext(), GetPhase()); InvokeSingle(oe); } return(null); }
public override sealed void OnPreUpdate(Net.Vpc.Upa.Callbacks.UpdateEvent @event) /* throws Net.Vpc.Upa.Exceptions.UPAException */ { string name = @event.GetTrigger().GetName(); Net.Vpc.Upa.Persistence.EntityExecutionContext executioncontext = @event.GetContext(); if (AcceptUpdateTableHelper(@event)) { System.Collections.Generic.ICollection <Net.Vpc.Upa.Key> v = CreateUpdatedCollection(@event.GetEntity(), @event.GetFilterExpression()); if (!(v.Count == 0)) { executioncontext.SetObject(name + ":toUpdate", v); } } }
public override bool AcceptUpdateTableOlderValuesHelper(Net.Vpc.Upa.Callbacks.UpdateEvent @event) /* throws Net.Vpc.Upa.Exceptions.UPAException */ { if (relationFilter == null) { relationFilter = Net.Vpc.Upa.Filters.Fields.Regular().And(Net.Vpc.Upa.Filters.Fields.ByList(relation.GetSourceRole().GetFields())); } Net.Vpc.Upa.Entity entityManager = @event.GetEntity(); foreach (string updatedField in @event.GetUpdatesRecord().KeySet()) { if (relationFilter.Accept(entityManager.GetField(updatedField))) { return(true); } } return(false); }
public override bool AcceptUpdateTableHelper(Net.Vpc.Upa.Callbacks.UpdateEvent @event) /* throws Net.Vpc.Upa.Exceptions.UPAException */ { Net.Vpc.Upa.Filters.FieldFilter conditionFields = entityDetailFormulaUpdaterInterceptor.GetConditionFields(); if (conditionFields == null) { return(true); } Net.Vpc.Upa.Entity entityManager = @event.GetEntity(); foreach (string updatedField in @event.GetUpdatesRecord().KeySet()) { if (conditionFields.Accept(entityManager.GetField(updatedField))) { return(true); } } return(false); }
public override void OnPreUpdate(Net.Vpc.Upa.Callbacks.UpdateEvent @event) /* throws Net.Vpc.Upa.Exceptions.UPAException */ { Net.Vpc.Upa.Persistence.EntityExecutionContext executionContext = @event.GetContext(); System.Collections.Generic.IList <Net.Vpc.Upa.Field> updateTreeFields = GetUpdateTreeFields(); Net.Vpc.Upa.Record updates = @event.GetUpdatesRecord(); if (!updates.IsSet(updateTreeFields[0].GetName())) { return; } object val = updates.GetObject <T>(updateTreeFields[0].GetName()); if (val is Net.Vpc.Upa.Expressions.Literal) { val = ((Net.Vpc.Upa.Expressions.Literal)val).GetValue(); } else if (val is Net.Vpc.Upa.Expressions.Expression) { // Log.bug("1232123"); return; } if (val != null) { object parentId = relation.ExtractId(updates); if (parentId != null) { Net.Vpc.Upa.Entity entity = @event.GetEntity(); string k = "recurse"; if (!executionContext.IsSet(k)) { System.Collections.Generic.IList <object> idList = entity.CreateQueryBuilder().ByExpression(@event.GetFilterExpression()).OrderBy(entity.GetUpdateFormulasOrder()).GetIdList <K>(); executionContext.SetObject(k, idList); } System.Collections.Generic.IList <object> r = (System.Collections.Generic.IList <object>)executionContext.GetObject <T>("recurse"); foreach (object aR in r) { if (support.IsEqualOrIsParent(aR, parentId)) { throw new Net.Vpc.Upa.Exceptions.UPAException("RedundancyProblem"); } } } } }
public override sealed void OnUpdate(Net.Vpc.Upa.Callbacks.UpdateEvent @event) /* throws Net.Vpc.Upa.Exceptions.UPAException */ { // validate old references Net.Vpc.Upa.Persistence.EntityExecutionContext executioncontext = @event.GetContext(); string name = @event.GetTrigger().GetName(); System.Collections.Generic.ICollection <Net.Vpc.Upa.Key> collection = executioncontext.GetObject <T>(name + ":toUpdate"); if (collection == null) { return; } executioncontext.Remove(name + ":toUpdate"); Net.Vpc.Upa.Expressions.IdCollectionExpression inColl = null; if (!(collection.Count == 0)) { inColl = CreateInCollection(@event.GetEntity(), collection); AfterUpdateHelper(@event, inColl); } // validate old references if (AcceptUpdateTableOlderValuesHelper(@event)) { Net.Vpc.Upa.Expressions.Expression newUpdates = null; if (inColl != null) { Net.Vpc.Upa.Expressions.Expression translated = TranslateExpression(@event.GetFilterExpression()); if (translated != null) { newUpdates = new Net.Vpc.Upa.Expressions.And(new Net.Vpc.Upa.Expressions.Not(inColl), translated); } else { newUpdates = new Net.Vpc.Upa.Expressions.Not(inColl); } } else { newUpdates = TranslateExpression(@event.GetFilterExpression()); } AfterUpdateHelper(@event, newUpdates); } }
public virtual void FireBeforeUpdate(Net.Vpc.Upa.Record updates, Net.Vpc.Upa.Expressions.Expression condition, Net.Vpc.Upa.Persistence.EntityExecutionContext context) /* throws Net.Vpc.Upa.Exceptions.UPAException */ { // Object methodExecId = Math.random(); // Log.method_enter(methodExecId, getName(), updates, condition); // entity.preUpdateTable(updates, condition, context); Net.Vpc.Upa.Callbacks.UpdateEvent @event = null; if (entity.GetPersistenceUnit().IsTriggersEnabled()) { foreach (Net.Vpc.Upa.Callbacks.Trigger et in entity.GetSoftTriggers()) { Net.Vpc.Upa.Impl.DefaultTrigger t = (Net.Vpc.Upa.Impl.DefaultTrigger)et; // Log.log(EditorConstants.Logs.TRIGGER, "<START " + getName() + ".fireBeforeUpdate> " + t.toString()); try { Net.Vpc.Upa.Callbacks.EntityListener li = t.GetListener(); if (@event == null) { @event = new Net.Vpc.Upa.Callbacks.UpdateEvent(updates, condition, context, Net.Vpc.Upa.EventPhase.BEFORE); } li.OnPreUpdate(@event); } catch (Net.Vpc.Upa.Exceptions.UPAException e) { log.TraceEvent(System.Diagnostics.TraceEventType.Error, 100, Net.Vpc.Upa.Impl.FwkConvertUtils.LogMessageExceptionFormatter("problem when executing trigger " + t.GetName() + ".onPreUpdate(" + t.GetEntity().GetName() + "," + condition + ")", e)); // Log.bug("19987", "problem when executing trigger " + t.getName() + ".beforeUpdate(" + getName() + "," + condition + ")"); // Log.bug(e); throw e; } } } // Log.log(EditorConstants.Logs.TRIGGER, "<END " + getName() + ".fireBeforeUpdate> " + t.toString()); if (@event == null) { @event = new Net.Vpc.Upa.Callbacks.UpdateEvent(updates, condition, context, Net.Vpc.Upa.EventPhase.BEFORE); } foreach (Net.Vpc.Upa.Callback invoker in persistenceUnitListenerManager.GetPreCallbacks(Net.Vpc.Upa.CallbackType.ON_UPDATE, Net.Vpc.Upa.ObjectType.ENTITY, @event.GetEntity().GetName(), Net.Vpc.Upa.Impl.Event.PersistenceUnitListenerManager.DEFAULT_SYSTEM)) { invoker.Invoke(@event); } foreach (Net.Vpc.Upa.PreparedCallback invoker in persistenceUnitListenerManager.GetPostPreparedCallbacks(Net.Vpc.Upa.CallbackType.ON_UPDATE, Net.Vpc.Upa.ObjectType.ENTITY, @event.GetEntity().GetName(), Net.Vpc.Upa.Impl.Event.PersistenceUnitListenerManager.DEFAULT_SYSTEM)) { invoker.Prepare(@event); } }
public override bool AcceptUpdateTableHelper(Net.Vpc.Upa.Callbacks.UpdateEvent @event) /* throws Net.Vpc.Upa.Exceptions.UPAException */ { Net.Vpc.Upa.Filters.FieldFilter conditionFields = entityTargetFormulaUpdaterInterceptor.GetConditionFields(); if (conditionFields == null) { return(true); } if (relationFilter == null) { relationFilter = Net.Vpc.Upa.Filters.Fields.Regular().And(Net.Vpc.Upa.Filters.Fields.ByList(relation.GetSourceRole().GetFields())); } Net.Vpc.Upa.Filters.FieldFilter actualFilter = Net.Vpc.Upa.Filters.Fields.As(conditionFields).Or(relationFilter); Net.Vpc.Upa.Entity entityManager = @event.GetEntity(); foreach (string updatedField in @event.GetUpdatesRecord().KeySet()) { if (actualFilter.Accept(entityManager.GetField(updatedField))) { return(true); } } return(false); }
public override void OnUpdate(Net.Vpc.Upa.Callbacks.UpdateEvent @event) /* throws Net.Vpc.Upa.Exceptions.UPAException */ { Net.Vpc.Upa.Persistence.EntityExecutionContext executionContext = @event.GetContext(); // RelationRole detailRole = defaultTreeEntityExtensionSupport.getTreeRelation().getSourceRole(); // if (!map.isSet(detailRole.getField(0).getName())) { // return; // } System.Collections.Generic.IList <Net.Vpc.Upa.Field> updateTreeFields = GetUpdateTreeFields(); if ([email protected]().IsSet(updateTreeFields[0].GetName())) { return; } System.Collections.Generic.IList <object> r = (System.Collections.Generic.IList <object>)executionContext.GetObject <T>("recurse"); if (r != null) { foreach (object aR in r) { support.ValidatePathField(aR, executionContext); support.ValidateChildren(aR, executionContext); } } }
public override void Prepare(Net.Vpc.Upa.Callbacks.UPAEvent @event) { Net.Vpc.Upa.Callbacks.UpdateEvent ev = (Net.Vpc.Upa.Callbacks.UpdateEvent)@event; ResolveIdList(ev, ev.GetFilterExpression()); }
public virtual bool AcceptUpdateTableOlderValuesHelper(Net.Vpc.Upa.Callbacks.UpdateEvent @event) /* throws Net.Vpc.Upa.Exceptions.UPAException */ { return(false); }
public abstract void AfterUpdateHelper(Net.Vpc.Upa.Callbacks.UpdateEvent @event, Net.Vpc.Upa.Expressions.Expression updatedExpression) /* throws Net.Vpc.Upa.Exceptions.UPAException */;
public virtual void OnUpdate(Net.Vpc.Upa.Callbacks.UpdateEvent @event) { }
public override void AfterUpdateHelper(Net.Vpc.Upa.Callbacks.UpdateEvent @event, Net.Vpc.Upa.Expressions.Expression updatedExpression) /* throws Net.Vpc.Upa.Exceptions.UPAException */ { Net.Vpc.Upa.Entity entity = @event.GetEntity(); entity.CreateUpdateQuery().Validate(GetFields(entity)).ByExpression(updatedExpression).Execute(); }
public override void OnUpdate(Net.Vpc.Upa.Callbacks.UpdateEvent @event) { }