Atomize() private method

private Atomize ( String str ) : String
str String
return String
            internal URTComplexType(String name, String urlNS, String ns, String encodedNS,
                                    SchemaBlockType blockDefault, bool bSUDSType, bool bAnonymous, WsdlParser parser, URTNamespace xns)
            : base(name, urlNS, ns, encodedNS)
            {
                Util.Log("URTComplexType.URTComplexType name "+this.GetHashCode()+" "+name+" urlNS "+urlNS+" ns "+ns+" encodedNS "+encodedNS+" bSUDStype "+bSUDSType+" bAnonymous "+bAnonymous);
                _baseTypeName = null;
                _baseTypeXmlNS = null;
                _baseType = null;
                _connectURLs = null;
                _bStruct = !bSUDSType;
                _blockType = blockDefault;
                _bSUDSType = bSUDSType;
                _bAnonymous = bAnonymous;
                Debug.Assert(bAnonymous == false || _bSUDSType == false);
                _fieldString = null;
                _fields = new ArrayList();
                _methods = new ArrayList();
                _implIFaces = new ArrayList();
                _implIFaceNames = new ArrayList();
                _sudsType = SUDSType.None;              
                _parser = parser;

                int index = name.IndexOf('+');
                if (index > 0)
                {
                    // Nested type see if outer type has been added to namespace
                    String outerType = parser.Atomize(name.Substring(0,index));
                    URTComplexType cs = xns.LookupComplexType(outerType);
                    if (cs == null)
                    {
                        URTComplexType newCs = new URTComplexType(outerType, urlNS, ns, encodedNS, blockDefault, bSUDSType, bAnonymous, parser, xns);
                        Util.Log("URTComplexType.URTComplexType add outerType to namespace "+outerType+" nestedname "+name);
                        xns.AddComplexType(newCs);
                    }
                }


                if (xns.UrtType == UrtType.Interop)
                {
                    // Interop class names can have '.', replace these with '_', and set wire name to original type name.
                    index = name.LastIndexOf('.');
                    if (index > -1)
                    {
                        // class names can't have '.' so replace with '$'. Use xmlType attribute to send original name on wire.
                        _wireType = name;
                        Name = name.Replace(".", "_");
                        SearchName = name;
                    }
                }

            }
 internal URTComplexType(string name, string urlNS, string ns, string encodedNS, SchemaBlockType blockDefault, bool bSUDSType, bool bAnonymous, WsdlParser parser, WsdlParser.URTNamespace xns) : base(name, urlNS, ns, encodedNS)
 {
     this._bprint = true;
     this._baseTypeName = null;
     this._baseTypeXmlNS = null;
     this._baseType = null;
     this._connectURLs = null;
     this._bStruct = !bSUDSType;
     this._blockType = blockDefault;
     this._bSUDSType = bSUDSType;
     this._bAnonymous = bAnonymous;
     this._fieldString = null;
     this._fields = new ArrayList();
     this._methods = new ArrayList();
     this._implIFaces = new ArrayList();
     this._implIFaceNames = new ArrayList();
     this._sudsType = System.Runtime.Remoting.MetadataServices.SUDSType.None;
     this._parser = parser;
     int index = name.IndexOf('+');
     if (index > 0)
     {
         string typeName = parser.Atomize(name.Substring(0, index));
         if (xns.LookupComplexType(typeName) == null)
         {
             WsdlParser.URTComplexType type = new WsdlParser.URTComplexType(typeName, urlNS, ns, encodedNS, blockDefault, bSUDSType, bAnonymous, parser, xns);
             xns.AddComplexType(type);
         }
     }
     if ((xns.UrtType == UrtType.Interop) && (name.LastIndexOf('.') > -1))
     {
         this._wireType = name;
         base.Name = name.Replace(".", "_");
         base.SearchName = name;
     }
 }