public static GeneralEncapsulatedObjectFrame Get(Tag tag,
                                                         string description,
                                                         bool create)
        {
            GeneralEncapsulatedObjectFrame geob;

            foreach (Frame frame in tag.GetFrames(FrameType.GEOB))
            {
                geob = frame as GeneralEncapsulatedObjectFrame;

                if (geob == null)
                {
                    continue;
                }

                if (geob.Description != description)
                {
                    continue;
                }

                return(geob);
            }

            if (!create)
            {
                return(null);
            }

            geob             = new GeneralEncapsulatedObjectFrame();
            geob.Description = description;
            tag.AddFrame(geob);
            return(geob);
        }
        public override Frame Clone()
        {
            GeneralEncapsulatedObjectFrame frame =
                new GeneralEncapsulatedObjectFrame();

            frame.text_encoding = text_encoding;
            frame.mime_type     = mime_type;
            frame.file_name     = file_name;
            frame.description   = description;
            if (data != null)
            {
                frame.data = new ByteVector(data);
            }
            return(frame);
        }
		public override Frame Clone ()
		{
			GeneralEncapsulatedObjectFrame frame =
				new GeneralEncapsulatedObjectFrame ();
			frame.text_encoding = text_encoding;
			frame.mime_type = mime_type;
			frame.file_name = file_name;
			frame.description = description;
			if (data != null)
				frame.data = new ByteVector (data);
			return frame;
		}
		public static GeneralEncapsulatedObjectFrame Get (Tag tag,
		                                                  string description,
		                                                  bool create)
		{
			GeneralEncapsulatedObjectFrame geob;
			foreach (Frame frame in tag.GetFrames (FrameType.GEOB)) {
				geob = frame as GeneralEncapsulatedObjectFrame;
				
				if (geob == null)
					continue;
				
				if (geob.Description != description)
					continue;
				
				return geob;
			}
			
			if (!create)
				return null;
			
			geob = new GeneralEncapsulatedObjectFrame ();
			geob.Description = description;
			tag.AddFrame (geob);
			return geob;
		}