Пример #1
0
        private static void CompareField(string source1,
                                         ObjectDef def1,
                                         FieldDef field1,
                                         string source2,
                                         FieldDef field2,
                                         ICompareOutput output,
                                         bool detailedCheck)
        {
            if (field1.Attribute != field2.Attribute)
            {
                output.ComparisonFailed
                    (source1, def1.Name + "." + field1.Name, "Attribute",
                    field1.Attribute.ToString(), source2, field2.Attribute.ToString(),
                    def1.SourceLocation);
            }

            if (field1.Sequence != field2.Sequence)
            {
                output.ComparisonWarning
                    (source1, source2, "Differing sequence: " + def1.Name + "." + field1.Name + " src(" + field1.Sequence + ") target:(" + field2.Sequence + ")");
            }

            if (detailedCheck)
            {
                //				if( field1.Complex != field2.Complex )
                //				{
                //					output.ComparisonFailed( source1, def1.Name + "." + field1.Name, "Complex", field1.Complex.ToString(), source2, field2.Complex.ToString(), def1.SourceLocation );
                //				}

                //System.Diagnostics.Debug.Assert( !(def1.Name == "FundingSource") );

                if (!field1.FlagIntrinsicallyMatches(field2))
                {
                    output.ComparisonWarning
                        (source1, source2, "Differing flags: " + def1.Name + "." + field1.Name + " src(" + field1.GetFlags() +
                        ") target:(" + field2.GetFlags() + ")");
                }



                if (!field1.FieldType.Equals(field2.FieldType))
                {
                    if (field1.FieldType.IsEnum && field2.FieldType.IsEnum)
                    {
                        output.ComparisonDebug
                            (source2, source1,
                            "differing class type: " + def1.Name + "." + field1.Name + " src(" +
                            field1.FieldType + ") target:(" + field2.FieldType + ")");
                    }

                    output.ComparisonWarning
                        (source2, source1,
                        "differing class type: " + def1.Name + "." + field1.Name + " src(" +
                        field1.FieldType + ") target:(" + field2.FieldType + ")");
                }
            }
        }
Пример #2
0
 public bool FlagIntrinsicallyMatches(FieldDef counterpart)
 {
     if (fFlags == counterpart.fFlags)
     {
         return(true);
     }
     else if ((fFlags & FLAG_REPEATABLE) == 0 &&
              ((fFlags & FLAG_REQUIRED) > 0 || (fFlags & FLAG_MANDATORY) > 0))
     {
         return((counterpart.fFlags & FLAG_REQUIRED) > 0 ||
                (counterpart.fFlags & FLAG_MANDATORY) > 0);
     }
     return(GetFlags() == counterpart.GetFlags());
 }
Пример #3
0
        private static void WriteFieldToDom(XmlElement fieldElement,
                                            FieldDef field)
        {
            fieldElement.SetAttribute("name", field.Name);
            FieldType type = field.FieldType;

            if (type.IsEnum)
            {
                fieldElement.SetAttribute("enum", type.Enum);
            }
            else
            {
                fieldElement.SetAttribute("type", type.MetadataType);
            }


            if (field.RenderAs != null)
            {
                fieldElement.SetAttribute("renderAs", field.RenderAs);
            }

            fieldElement.SetAttribute("flags", field.GetFlags());

            if (field.Draft)
            {
                fieldElement.SetAttribute("draft", "true");
            }

            if (field.Attribute && (field.fFlags & FieldDef.FLAG_NOT_A_KEY) > 0)
            {
                fieldElement.SetAttribute("key", "false");
            }


            WriteDesc(fieldElement, field.Desc);
        }
Пример #4
0
        private static void WriteFieldToDom( XmlElement fieldElement,
                                             FieldDef field )
        {
            fieldElement.SetAttribute( "name", field.Name );
            FieldType type = field.FieldType;
            if ( type.IsEnum ) {
                fieldElement.SetAttribute( "enum", type.Enum );
            }
            else {
                fieldElement.SetAttribute( "type", type.MetadataType );
            }

            if ( field.RenderAs != null ) {
                fieldElement.SetAttribute( "renderAs", field.RenderAs );
            }

            fieldElement.SetAttribute( "flags", field.GetFlags() );

            if ( field.Draft ) {
                fieldElement.SetAttribute( "draft", "true" );
            }

            if ( field.Attribute && (field.fFlags & FieldDef.FLAG_NOT_A_KEY) > 0 ) {
                fieldElement.SetAttribute( "key", "false" );
            }

                WriteDesc( fieldElement, field.Desc );
        }
Пример #5
0
        public bool FlagIntrinsicallyMatches( FieldDef counterpart )
        {
            if (fFlags == counterpart.fFlags)
            {
                return true;
            }
            else if ((fFlags & FLAG_REPEATABLE) == 0 &&
                ((fFlags & FLAG_REQUIRED) > 0 || (fFlags & FLAG_MANDATORY) > 0) )
            {
                return ((counterpart.fFlags & FLAG_REQUIRED) > 0 ||
                        (counterpart.fFlags & FLAG_MANDATORY) > 0 );

            }
            return GetFlags() == counterpart.GetFlags();
        }