DAAP.Track.ToNode C# (CSharp) 메소드

ToNode() 개인적인 메소드

private ToNode ( string fields ) : ContentNode
fields string
리턴 ContentNode
        internal ContentNode ToNode(string[] fields)
        {
            ArrayList nodes = new ArrayList ();

            foreach (string field in fields) {
                object val = null;

                switch (field) {
                case "dmap.itemid":
                    val = id;
                    break;
                case "dmap.itemname":
                    val = title;
                    break;
                case "dmap.itemkind":
                    val = (byte) 2;
                    break;
                case "dmap.persistentid":
                    val = (long) id;
                    break;
                case "daap.songalbum":
                    val = album;
                    break;
                case "daap.songgrouping":
                    val = String.Empty;
                    break;
                case "daap.songartist":
                    val = artist;
                    break;
                case "daap.songbitrate":
                    val = (short) bitrate;
                    break;
                case "daap.songbeatsperminute":
                    val = (short) 0;
                    break;
                case "daap.songcomment":
                    val = String.Empty;
                    break;
                case "daap.songcompilation":
                    val = (byte) 0;
                    break;
                case "daap.songcomposer":
                    val = String.Empty;
                    break;
                case "daap.songdateadded":
                    val = dateAdded;
                    break;
                case "daap.songdatemodified":
                    val = dateModified;
                    break;
                case "daap.songdisccount":
                    val = (short) 0;
                    break;
                case "daap.songdiscnumber":
                    val = (short) 0;
                    break;
                case "daap.songdisabled":
                    val = (byte) 0;
                    break;
                case "daap.songeqpreset":
                    val = String.Empty;
                    break;
                case "daap.songformat":
                    val = format;
                    break;
                case "daap.songgenre":
                    val = genre;
                    break;
                case "daap.songdescription":
                    val = String.Empty;
                    break;
                case "daap.songrelativevolume":
                    val = (int) 0;
                    break;
                case "daap.songsamplerate":
                    val = 0;
                    break;
                case "daap.songsize":
                    val = size;
                    break;
                case "daap.songstarttime":
                    val = 0;
                    break;
                case "daap.songstoptime":
                    val = 0;
                    break;
                case "daap.songtime":
                    val = (int) duration.TotalMilliseconds;
                    break;
                case "daap.songtrackcount":
                    val = (short) trackCount;
                    break;
                case "daap.songtracknumber":
                    val = (short) trackNumber;
                    break;
                case "daap.songuserrating":
                    val = (byte) 0;
                    break;
                case "daap.songyear":
                    val = (short) year;
                    break;
                case "daap.songdatakind":
                    val = (byte) 0;
                    break;
                case "daap.songdataurl":
                    val = String.Empty;
                    break;
                default:
                    break;
                }

                if (val != null) {
                    // iTunes wants this to go first, sigh
                    if (field == "dmap.itemkind")
                        nodes.Insert (0, new ContentNode (field, val));
                    else
                        nodes.Add (new ContentNode (field, val));
                }
            }

            return new ContentNode ("dmap.listingitem", nodes);
        }