Пример #1
0
 public virtual Net.Vpc.Upa.Config.FieldDesc SetUpdateFormulaSet(bool updateFormulaSet)
 {
     this.updateFormulaSet = updateFormulaSet;
     if (!updateFormulaSet)
     {
         updateFormula = null;
     }
     return(this);
 }
Пример #2
0
 public virtual Net.Vpc.Upa.Config.FieldDesc SetPersistFormulaSet(bool persistFormulaSet)
 {
     this.persistFormulaSet = persistFormulaSet;
     if (!persistFormulaSet)
     {
         persistFormula = null;
     }
     return(this);
 }
Пример #3
0
 public virtual Net.Vpc.Upa.DefaultFieldDescriptor SetSelectFormula(Net.Vpc.Upa.Formula selectFormula)
 {
     this.selectFormula = selectFormula;
     return(this);
 }
Пример #4
0
 public virtual Net.Vpc.Upa.DefaultFieldDescriptor SetUpdateFormula(Net.Vpc.Upa.Formula updateFormula)
 {
     this.updateFormula = updateFormula;
     return(this);
 }
Пример #5
0
 public virtual Net.Vpc.Upa.DefaultFieldDescriptor SetPersistFormula(Net.Vpc.Upa.Formula persistFormula)
 {
     this.persistFormula = persistFormula;
     return(this);
 }
Пример #6
0
 public virtual void Synchronize()
 {
     if (field.GetDataType() is Net.Vpc.Upa.Types.ManyToOneType)
     {
         Net.Vpc.Upa.Types.ManyToOneType t        = (Net.Vpc.Upa.Types.ManyToOneType)field.GetDataType();
         Net.Vpc.Upa.Relationship        relation = t.GetRelationship();
         if (relation == null)
         {
             throw new Net.Vpc.Upa.Exceptions.UPAException("MissingRelationForField", field);
         }
         Net.Vpc.Upa.RelationshipRole       detailRole = relation.GetSourceRole();
         Net.Vpc.Upa.RelationshipUpdateType u          = detailRole.GetRelationshipUpdateType();
         if (u == Net.Vpc.Upa.RelationshipUpdateType.COMPOSED)
         {
             persistFieldPersister = new Net.Vpc.Upa.Impl.Persistence.ComposedToFlatFieldPersister(field);
             updateFieldPersister  = new Net.Vpc.Upa.Impl.Persistence.ComposedToFlatFieldPersister(field);
         }
         persistFormulaPass = 0;
         updateFormulaPass  = 0;
         postPersistFormula = false;
         postUpdateFormula  = false;
         return;
     }
     Net.Vpc.Upa.Formula persistFormula = field.GetPersistFormula();
     if (persistFormula != null)
     {
         if (persistFormula is Net.Vpc.Upa.Sequence)
         {
             persistFieldPersister = UpdateFieldPersister(persistFieldPersister, persistenceStore.CreatePersistSequenceGenerator(field));
             persistFormulaPass    = 0;
             postPersistFormula    = false;
         }
         else if (persistFormula is Net.Vpc.Upa.ExpressionFormula)
         {
             Net.Vpc.Upa.Impl.Persistence.RebuildExpressionInfo re = RebuildExpression((Net.Vpc.Upa.ExpressionFormula)persistFormula);
             if (re.rebuiltFormula != null)
             {
                 field.SetPersistFormula(re.rebuiltFormula);
             }
             bool complex = re.compiledExpression.FindFirstExpression <T>(Net.Vpc.Upa.Impl.Uql.Compiledfilters.CompiledExpressionHelper.THIS_VAR_FILTER) != default(T);
             persistFormulaPass = field.GetPersistFormulaOrder();
             if (!complex && persistFormulaPass == 0)
             {
                 insertExpression      = re.expression;
                 persistFieldPersister = UpdateFieldPersister(persistFieldPersister, new Net.Vpc.Upa.Impl.Persistence.ExpressionFieldPersister(field.GetName(), re.expression));
                 postPersistFormula    = false;
             }
             else
             {
                 postPersistFormula = true;
             }
         }
         else
         {
             postPersistFormula = true;
         }
     }
     else
     {
         postPersistFormula = false;
     }
     Net.Vpc.Upa.Formula updateFormula = field.GetUpdateFormula();
     if (updateFormula != null)
     {
         if (updateFormula is Net.Vpc.Upa.Sequence)
         {
             updateFieldPersister = UpdateFieldPersister(updateFieldPersister, persistenceStore.CreateUpdateSequenceGenerator(field));
             updateFormulaPass    = 0;
             postUpdateFormula    = false;
         }
         else if (updateFormula is Net.Vpc.Upa.ExpressionFormula)
         {
             Net.Vpc.Upa.Impl.Persistence.RebuildExpressionInfo re = RebuildExpression((Net.Vpc.Upa.ExpressionFormula)persistFormula);
             if (re.rebuiltFormula != null)
             {
                 field.SetUpdateFormula(re.rebuiltFormula);
             }
             //                List<DefaultCompiledExpression> complex = re.compiledExpression.findExpressionsList(CompiledExpressionHelper.THIS_VAR_FILTER);
             updateFormulaPass = field.GetUpdateFormulaOrder();
             if (updateFormulaPass == 0)
             {
                 updateExpression     = re.expression;
                 updateFieldPersister = UpdateFieldPersister(updateFieldPersister, new Net.Vpc.Upa.Impl.Persistence.ExpressionFieldPersister(field.GetName(), re.expression));
                 postUpdateFormula    = false;
             }
             else
             {
                 postUpdateFormula = true;
             }
         }
         else
         {
             postUpdateFormula = true;
         }
     }
     else
     {
         postUpdateFormula = true;
     }
     Net.Vpc.Upa.Formula selectFormula = field.GetSelectFormula();
     if (selectFormula != null)
     {
         if (selectFormula is Net.Vpc.Upa.ExpressionFormula)
         {
             findtExpression = ((Net.Vpc.Upa.ExpressionFormula)selectFormula).GetExpression();
         }
         else if (selectFormula is Net.Vpc.Upa.Sequence)
         {
             throw new System.ArgumentException("Sequences are not supported as Select Expressions");
         }
         else if (updateFormula is Net.Vpc.Upa.CustomUpdaterFormula)
         {
             throw new System.ArgumentException("CustomUpdaterFormulas are not supported as Select Expressions");
         }
     }
 }
Пример #7
0
 public virtual Net.Vpc.Upa.Config.FieldDesc SetUpdateFormula(Net.Vpc.Upa.Formula updateFormula)
 {
     this.updateFormula    = updateFormula;
     this.updateFormulaSet = true;
     return(this);
 }
Пример #8
0
 public virtual Net.Vpc.Upa.Config.FieldDesc SetFormula(Net.Vpc.Upa.Formula formula)
 {
     SetPersistFormula(formula);
     SetUpdateFormula(formula);
     return(this);
 }
Пример #9
0
 public virtual Net.Vpc.Upa.Config.FieldDesc SetPersistFormula(Net.Vpc.Upa.Formula persistFormula)
 {
     this.persistFormula    = persistFormula;
     this.persistFormulaSet = true;
     return(this);
 }
Пример #10
0
        public virtual bool AddField(Net.Vpc.Upa.Field f)
        {
            if (inUseFields.Contains(f))
            {
                return(false);
            }
            Net.Vpc.Upa.Formula formula = onPersist ? f.GetPersistFormula() : f.GetUpdateFormula();
            Net.Vpc.Upa.Impl.Persistence.ValidationPass pass = null;
            int formulaPassInteger = onPersist ? f.GetPersistFormulaOrder() : f.GetUpdateFormulaOrder();

            // passIndexes.add(formulaPassInteger);
            Net.Vpc.Upa.Impl.Persistence.ValidationPass[] passArray = Net.Vpc.Upa.Impl.FwkConvertUtils.GetMapValue <int?, Net.Vpc.Upa.Impl.Persistence.ValidationPass[]>(orderedPasses, formulaPassInteger);
            if (passArray == null)
            {
                orderedPasses[formulaPassInteger] = passArray = new Net.Vpc.Upa.Impl.Persistence.ValidationPass[((Net.Vpc.Upa.Impl.Persistence.ValidationPassType[])System.Enum.GetValues(typeof(Net.Vpc.Upa.Impl.Persistence.ValidationPassType))).Length];
            }
            int pass1 = formulaPassInteger;

            if (formula is Net.Vpc.Upa.CustomUpdaterFormula)
            {
                pass = passArray[((int)Net.Vpc.Upa.Impl.Persistence.ValidationPassType.MANUAL_VALIDATION)];
                if (pass == null)
                {
                    pass = passArray[((int)Net.Vpc.Upa.Impl.Persistence.ValidationPassType.MANUAL_VALIDATION)] = new Net.Vpc.Upa.Impl.Persistence.ValidationPass(pass1, Net.Vpc.Upa.Impl.Persistence.ValidationPassType.MANUAL_VALIDATION);
                    size++;
                }
            }
            else if (formula is Net.Vpc.Upa.CustomFormula)
            {
                pass = passArray[((int)Net.Vpc.Upa.Impl.Persistence.ValidationPassType.CUSTOM_VALIDATION)];
                if (pass == null)
                {
                    pass = passArray[((int)Net.Vpc.Upa.Impl.Persistence.ValidationPassType.CUSTOM_VALIDATION)] = new Net.Vpc.Upa.Impl.Persistence.ValidationPass(pass1, Net.Vpc.Upa.Impl.Persistence.ValidationPassType.CUSTOM_VALIDATION);
                    size++;
                }
            }
            else if (!entityOperationManager.GetPersistenceStore().IsComplexSelectSupported())
            {
                Net.Vpc.Upa.Expressions.Expression fe = GetFieldExpression(f, onPersist);
                Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression ce = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression)entity.Compile(fe);
                bool found = ce.FindFirstExpression <T>(Net.Vpc.Upa.Impl.Uql.Compiledfilters.CompiledExpressionHelper.QUERY_STATEMENT_FILTER) != default(T);
                if (found)
                {
                    pass = passArray[((int)Net.Vpc.Upa.Impl.Persistence.ValidationPassType.ITERATIVE_VALIDATION)];
                    if (pass == null)
                    {
                        pass = passArray[((int)Net.Vpc.Upa.Impl.Persistence.ValidationPassType.ITERATIVE_VALIDATION)] = new Net.Vpc.Upa.Impl.Persistence.ValidationPass(pass1, Net.Vpc.Upa.Impl.Persistence.ValidationPassType.ITERATIVE_VALIDATION);
                        size++;
                    }
                }
                else
                {
                    pass = passArray[((int)Net.Vpc.Upa.Impl.Persistence.ValidationPassType.DEFAULT_VALIDATION)];
                    if (pass == null)
                    {
                        pass = passArray[((int)Net.Vpc.Upa.Impl.Persistence.ValidationPassType.DEFAULT_VALIDATION)] = new Net.Vpc.Upa.Impl.Persistence.ValidationPass(pass1, Net.Vpc.Upa.Impl.Persistence.ValidationPassType.DEFAULT_VALIDATION);
                        size++;
                    }
                }
            }
            else
            {
                pass = passArray[((int)Net.Vpc.Upa.Impl.Persistence.ValidationPassType.DEFAULT_VALIDATION)];
                if (pass == null)
                {
                    pass = passArray[((int)Net.Vpc.Upa.Impl.Persistence.ValidationPassType.DEFAULT_VALIDATION)] = new Net.Vpc.Upa.Impl.Persistence.ValidationPass(pass1, Net.Vpc.Upa.Impl.Persistence.ValidationPassType.DEFAULT_VALIDATION);
                    size++;
                }
            }
            pass.GetFields().Add(f);
            inUseFields.Add(f);
            System.Collections.Generic.ICollection <Net.Vpc.Upa.PrimitiveField> dependency = (System.Collections.Generic.ICollection <Net.Vpc.Upa.PrimitiveField>)f.GetProperties().GetObject <T>(onPersist ? Net.Vpc.Upa.Impl.DefaultEntity.PERSIST_DEPENDENT_FIELDS : Net.Vpc.Upa.Impl.DefaultEntity.UPDATE_DEPENDENT_FIELDS);
            if (dependency != null)
            {
                foreach (Net.Vpc.Upa.PrimitiveField aDependency in dependency)
                {
                    Net.Vpc.Upa.PrimitiveField df = (Net.Vpc.Upa.PrimitiveField)aDependency;
                    //include only dependent fields from the same entity
                    if (df.GetEntity().GetName().Equals(f.GetEntity().GetName()))
                    {
                        // add only formulas fields that are validateSupported
                        if (onPersist)
                        {
                            Net.Vpc.Upa.Formula ff = df.GetPersistFormula();
                            if (ff != null && df.GetModifiers().Contains(Net.Vpc.Upa.FieldModifier.PERSIST_FORMULA))
                            {
                                AddField(df);
                            }
                        }
                        else
                        {
                            Net.Vpc.Upa.Formula ff = df.GetUpdateFormula();
                            if (ff != null && df.GetModifiers().Contains(Net.Vpc.Upa.FieldModifier.UPDATE_FORMULA))
                            {
                                AddField(df);
                            }
                        }
                    }
                }
            }
            return(true);
        }
Пример #11
0
 public virtual void SetSelectFormula(Net.Vpc.Upa.Formula queryFormula)
 {
     this.queryFormula = queryFormula;
 }
Пример #12
0
 public virtual void SetUpdateFormula(Net.Vpc.Upa.Formula formula)
 {
     this.updateFormula = formula;
 }
Пример #13
0
 public virtual void SetPersistFormula(Net.Vpc.Upa.Formula formula)
 {
     this.persistFormula = formula;
 }
Пример #14
0
 public virtual void SetFormula(Net.Vpc.Upa.Formula formula)
 {
     SetPersistFormula(formula);
     SetUpdateFormula(formula);
 }