iTextSharp.text.pdf.PdfStructTreeController.CompareObjects C# (CSharp) Метод

CompareObjects() публичный статический Метод

public static CompareObjects ( PdfObject value1, PdfObject value2 ) : bool
value1 PdfObject
value2 PdfObject
Результат bool
        public static bool CompareObjects(PdfObject value1, PdfObject value2)
        {
            value2 = GetDirectObject(value2);
            if (value2 == null)
            return false;
            if (value1.Type != value2.Type)
            return false;

            if (value1.IsBoolean()){
            if (value1 == value2)
                return true;
            if (value2 is PdfBoolean) {
                return ((PdfBoolean)value1).BooleanValue == ((PdfBoolean)value2).BooleanValue;
            }
            return false;
            }
            else if (value1.IsName()) {
            return value1.Equals(value2);
            }
            else if (value1.IsNumber()){
            if (value1 == value2)
                return true;
            if (value2 is PdfNumber) {
                return ((PdfNumber)value1).DoubleValue == ((PdfNumber)value2).DoubleValue;
            }
            return false;
            }
            else if (value1.IsNull()){
            if (value1 == value2)
                return true;
            if (value2 is PdfNull)
                return true;
            return false;
            }
            else if (value1.IsString()){
            if (value1 == value2)
                return true;
            if (value2 is PdfString) {
                return ((((PdfString)value2) == null && ((PdfString)value1).ToString() == null)
                        || (((PdfString)value1).ToString() != null && ((PdfString)value1).ToString().Equals(((PdfString)value2).ToString())));
            }
            return false;
            }
            if (value1.IsArray()) {
            PdfArray array1 = (PdfArray)value1;
            PdfArray array2 = (PdfArray)value2;
            if (array1.Size != array2.Size)
                return false;
            for (int i = 0; i < array1.Size; ++i)
                if (!CompareObjects(array1[i],array2[i]))
                    return false;
            return true;
            }
            if (value1.IsDictionary()) {
            PdfDictionary first = (PdfDictionary)value1;
            PdfDictionary second = (PdfDictionary)value2;
            if (first.Size != second.Size)
                return false;
            foreach (PdfName name in first.hashMap.Keys) {
                if (!CompareObjects(first.Get(name),second.Get(name)))
                    return false;
            }
            return true;
            }
            return false;
        }