Beispiel #1
0
 public override void CommitModelChanges() /* throws Net.Vpc.Upa.Exceptions.UPAException */
 {
     Net.Vpc.Upa.Entity entity = GetEntity();
     Net.Vpc.Upa.FlagSet <Net.Vpc.Upa.EntityModifier> modifiers          = entity.GetUserModifiers();
     Net.Vpc.Upa.FlagSet <Net.Vpc.Upa.EntityModifier> excluded           = entity.GetUserExcludeModifiers();
     Net.Vpc.Upa.FlagSet <Net.Vpc.Upa.EntityModifier> effectiveModifiers = entity.GetModifiers();
     if (!excluded.Contains(Net.Vpc.Upa.EntityModifier.TRANSIENT))
     {
         effectiveModifiers = effectiveModifiers.Add(Net.Vpc.Upa.EntityModifier.TRANSIENT);
     }
     if (!excluded.Contains(Net.Vpc.Upa.EntityModifier.UPDATE))
     {
         effectiveModifiers = effectiveModifiers.Add(Net.Vpc.Upa.EntityModifier.UPDATE);
     }
     if (!excluded.Contains(Net.Vpc.Upa.EntityModifier.REMOVE))
     {
         effectiveModifiers = effectiveModifiers.Add(Net.Vpc.Upa.EntityModifier.REMOVE);
     }
     if (!modifiers.Contains(Net.Vpc.Upa.EntityModifier.USER_ID))
     {
         effectiveModifiers = effectiveModifiers.Remove(Net.Vpc.Upa.EntityModifier.USER_ID);
     }
     //        if (!modifiers.contains(EntityModifier.GENERATED_ID)) {
     //            effectiveModifiers=effectiveModifiers.remove(EntityModifier.GENERATED_ID);
     //        }
     ((Net.Vpc.Upa.Impl.DefaultEntity)entity).SetModifiers(effectiveModifiers);
 }
Beispiel #2
0
 public virtual void AddUnless(Net.Vpc.Upa.FieldModifier m, params Net.Vpc.Upa.UserFieldModifier [] all)
 {
     foreach (Net.Vpc.Upa.UserFieldModifier x in all)
     {
         if (positiveModifiers.Contains(x))
         {
             return;
         }
     }
     modifiers = modifiers.Add(m);
 }
Beispiel #3
0
 private bool Accept(Net.Vpc.Upa.FlagSet <Net.Vpc.Upa.FieldModifier> modifiersValue, int i) /* throws Net.Vpc.Upa.Exceptions.UPAException */
 {
     Net.Vpc.Upa.FlagSet <Net.Vpc.Upa.FieldModifier> a = accepted[i];
     Net.Vpc.Upa.FlagSet <Net.Vpc.Upa.FieldModifier> r = rejected[i];
     foreach (Net.Vpc.Upa.FieldModifier m in a)
     {
         if (!modifiersValue.Contains(m))
         {
             return(false);
         }
     }
     foreach (Net.Vpc.Upa.FieldModifier m in r)
     {
         if (modifiersValue.Contains(m))
         {
             return(false);
         }
     }
     return(true);
 }
Beispiel #4
0
 public virtual void AddExcludeModifiers(System.Collections.Generic.ICollection <Net.Vpc.Upa.EntityModifier> others)
 {
     foreach (Net.Vpc.Upa.EntityModifier m in others)
     {
         if (modifiers.Contains(m))
         {
             modifiers.Remove(m);
         }
         excludeModifiers.Add(m);
     }
 }
Beispiel #5
0
        public virtual void Visit(System.Type type, Net.Vpc.Upa.Impl.Config.Decorations.DecorationFilter decorationFilter)
        {
            Net.Vpc.Upa.FlagSet <Net.Vpc.Upa.Config.DecorationTarget> kind = decorationFilter.GetDecorationTargets();
            bool types   = kind.Contains(Net.Vpc.Upa.Config.DecorationTarget.TYPE);
            bool methods = kind.Contains(Net.Vpc.Upa.Config.DecorationTarget.METHOD);
            bool fields  = kind.Contains(Net.Vpc.Upa.Config.DecorationTarget.FIELD);

            //        boolean tree = (kind & DecorationFilter.HIERARCHICAL) != 0;
            //        boolean someType = false;
            if (types)
            {
                System.Attribute[] annotations = null;
                try {
                    annotations = type.GetAnnotations();
                } catch (System.Exception e) {
                    log.TraceEvent(System.Diagnostics.TraceEventType.Verbose, 60, Net.Vpc.Upa.Impl.FwkConvertUtils.LogMessageExceptionFormatter("Ignored type {0} : {1}", null, new object[] { (type).FullName, e.ToString() }));
                }
                //ignore
                if (annotations != null)
                {
                    int pos = 0;
                    foreach (System.Attribute a in annotations)
                    {
                        if (decorationFilter.AcceptTypeDecoration((a.GetType()).FullName, (type).FullName, type))
                        {
                            decorationRepository.Visit(new Net.Vpc.Upa.Impl.Config.Decorations.AnnotationDecoration(a, Net.Vpc.Upa.Config.DecorationSourceType.TYPE, Net.Vpc.Upa.Config.DecorationTarget.TYPE, (type).FullName, null, pos));
                            newDecorationRepository.Visit(new Net.Vpc.Upa.Impl.Config.Decorations.AnnotationDecoration(a, Net.Vpc.Upa.Config.DecorationSourceType.TYPE, Net.Vpc.Upa.Config.DecorationTarget.TYPE, (type).FullName, null, pos));
                        }
                        //                    someType = true;
                        pos++;
                    }
                }
            }
            if (methods)
            {
                System.Reflection.MethodInfo[] declaredMethods = null;
                try {
                    declaredMethods = type.GetMethods(System.Reflection.BindingFlags.Default);
                } catch (System.Exception e) {
                    log.TraceEvent(System.Diagnostics.TraceEventType.Verbose, 60, Net.Vpc.Upa.Impl.FwkConvertUtils.LogMessageExceptionFormatter("Ignored type {0} : {1}", null, new object[] { (type).FullName, e.ToString() }));
                }
                //ignore
                if (declaredMethods != null)
                {
                    foreach (System.Reflection.MethodInfo method in declaredMethods)
                    {
                        int pos = 0;
                        foreach (System.Attribute a in method.GetAnnotations())
                        {
                            string methodSig = Net.Vpc.Upa.Impl.Util.PlatformUtils.GetMethodSignature(method);
                            if (decorationFilter.AcceptMethodDecoration((a.GetType()).FullName, methodSig, (type).FullName, method))
                            {
                                decorationRepository.Visit(new Net.Vpc.Upa.Impl.Config.Decorations.AnnotationDecoration(a, Net.Vpc.Upa.Config.DecorationSourceType.TYPE, Net.Vpc.Upa.Config.DecorationTarget.METHOD, ((method).DeclaringType).FullName, methodSig, pos));
                                newDecorationRepository.Visit(new Net.Vpc.Upa.Impl.Config.Decorations.AnnotationDecoration(a, Net.Vpc.Upa.Config.DecorationSourceType.TYPE, Net.Vpc.Upa.Config.DecorationTarget.METHOD, ((method).DeclaringType).FullName, methodSig, pos));
                            }
                            pos++;
                        }
                    }
                }
            }
            if (fields)
            {
                System.Reflection.FieldInfo[] declaredFields = null;
                try {
                    declaredFields = type.GetFields(System.Reflection.BindingFlags.Default);
                } catch (System.Exception e) {
                    log.TraceEvent(System.Diagnostics.TraceEventType.Verbose, 60, Net.Vpc.Upa.Impl.FwkConvertUtils.LogMessageExceptionFormatter("Ignored type {0} : {1}", null, new object[] { (type).FullName, e.ToString() }));
                }
                //ignore
                if (declaredFields != null)
                {
                    foreach (System.Reflection.FieldInfo field in declaredFields)
                    {
                        int pos = 0;
                        foreach (System.Attribute a in field.GetAnnotations())
                        {
                            if (decorationFilter.AcceptFieldDecoration((a.GetType()).FullName, (field).Name, (type).FullName, field))
                            {
                                decorationRepository.Visit(new Net.Vpc.Upa.Impl.Config.Decorations.AnnotationDecoration(a, Net.Vpc.Upa.Config.DecorationSourceType.TYPE, Net.Vpc.Upa.Config.DecorationTarget.FIELD, ((field).DeclaringType).FullName, (field).Name, pos));
                                newDecorationRepository.Visit(new Net.Vpc.Upa.Impl.Config.Decorations.AnnotationDecoration(a, Net.Vpc.Upa.Config.DecorationSourceType.TYPE, Net.Vpc.Upa.Config.DecorationTarget.FIELD, ((field).DeclaringType).FullName, (field).Name, pos));
                            }
                            pos++;
                        }
                    }
                }
            }
        }
 public override bool Accept(Net.Vpc.Upa.Field f) /* throws Net.Vpc.Upa.Exceptions.UPAException */
 {
     Net.Vpc.Upa.FlagSet <Net.Vpc.Upa.FieldModifier> effectiveModifiers = f.GetModifiers();
     return(effectiveModifiers.Contains(Net.Vpc.Upa.FieldModifier.PERSIST) && !effectiveModifiers.Contains(Net.Vpc.Upa.FieldModifier.ID) && !effectiveModifiers.Contains(Net.Vpc.Upa.FieldModifier.PERSIST_SEQUENCE));
 }