001    package org.bouncycastle.asn1;
002    
003    public class DERObjectIdentifier extends ASN1Primitive
004    {
005        String field_71611_a;
006        private static ASN1ObjectIdentifier[][] field_71610_b = new ASN1ObjectIdentifier[255][];
007    
008        public DERObjectIdentifier(String par1Str)
009        {
010            if (!func_71608_a(par1Str))
011            {
012                throw new IllegalArgumentException("string " + par1Str + " not an OID");
013            }
014            else
015            {
016                this.field_71611_a = par1Str;
017            }
018        }
019    
020        public String func_71609_b()
021        {
022            return this.field_71611_a;
023        }
024    
025        public int hashCode()
026        {
027            return this.field_71611_a.hashCode();
028        }
029    
030        boolean func_71607_a(ASN1Primitive par1ASN1Primitive)
031        {
032            return !(par1ASN1Primitive instanceof DERObjectIdentifier) ? false : this.field_71611_a.equals(((DERObjectIdentifier)par1ASN1Primitive).field_71611_a);
033        }
034    
035        public String toString()
036        {
037            return this.func_71609_b();
038        }
039    
040        private static boolean func_71608_a(String par0Str)
041        {
042            if (par0Str.length() >= 3 && par0Str.charAt(1) == 46)
043            {
044                char var1 = par0Str.charAt(0);
045    
046                if (var1 >= 48 && var1 <= 50)
047                {
048                    boolean var2 = false;
049    
050                    for (int var3 = par0Str.length() - 1; var3 >= 2; --var3)
051                    {
052                        char var4 = par0Str.charAt(var3);
053    
054                        if (48 <= var4 && var4 <= 57)
055                        {
056                            var2 = true;
057                        }
058                        else
059                        {
060                            if (var4 != 46)
061                            {
062                                return false;
063                            }
064    
065                            if (!var2)
066                            {
067                                return false;
068                            }
069    
070                            var2 = false;
071                        }
072                    }
073    
074                    return var2;
075                }
076                else
077                {
078                    return false;
079                }
080            }
081            else
082            {
083                return false;
084            }
085        }
086    }