Example #1
0
 /// ------------------------------------------------------------------------------------
 public virtual void Save(string path)
 {
     _metaDataPath = path;
     OnBeforeSave(this);
     XmlFileSerializer.Save(MetaDataFieldValues, _metaDataPath, RootElementName);
     OnAfterSave(this);
 }
Example #2
0
        /// ------------------------------------------------------------------------------------
        public FieldUpdater(FieldGatherer fieldGatherer,
                            IDictionary <string, IXmlFieldSerializer> fieldSerializers)
        {
            _xmlFileSerializer = new XmlFileSerializer(fieldSerializers);
            _fieldGatherer     = fieldGatherer;

            if (_fieldGatherer != null)
            {
                _rootProjectFolder = _fieldGatherer.RootDirectoryPath;
            }
        }
Example #3
0
 /// ------------------------------------------------------------------------------------
 public ComponentFileFactory(IEnumerable <FileType> fileTypes,
                             IEnumerable <ComponentRole> componentRoles, XmlFileSerializer xmlFileSerializer,
                             IProvideAudioVideoFileStatistics statisticsProvider,
                             PresetGatherer presetProvider, FieldUpdater fieldUpdater)
 {
     _fileTypes          = fileTypes;
     _componentRoles     = componentRoles;
     _xmlFileSerializer  = xmlFileSerializer;
     _statisticsProvider = statisticsProvider;
     _presetProvider     = presetProvider;
     _fieldUpdater       = fieldUpdater;
 }
Example #4
0
        /// ------------------------------------------------------------------------------------
        public void Dispose()
        {
            if (_annotationFile != null)
            {
                _annotationFile.Dispose();
            }
            _annotationFile = null;

            _xmlFileSerializer  = null;
            _statisticsProvider = null;
            _presetProvider     = null;
            _fieldUpdater       = null;
            MetaDataFieldValues = null;
            ParentElement       = null;
        }
Example #5
0
 /// ------------------------------------------------------------------------------------
 /// <summary>
 /// used only by ProjectElementComponentFile and AnnotationComponentFile
 /// </summary>
 /// ------------------------------------------------------------------------------------
 protected ComponentFile(ProjectElement parentElement, string filePath,
                         FileType fileType, string rootElementName,
                         XmlFileSerializer xmlFileSerializer, FieldUpdater fieldUpdater)
 {
     RootElementName = rootElementName;
     ParentElement   = parentElement;
     //The annotated file is the same as the annotation file; there isn't a pair of files for session/person
     SetPathToFile(filePath);
     FileType            = fileType;
     _xmlFileSerializer  = xmlFileSerializer;
     _metaDataPath       = filePath;
     _fieldUpdater       = fieldUpdater;
     MetaDataFieldValues = new List <FieldInstance>();
     _componentRoles     = new ComponentRole[] {};         //no roles for person or event
     InitializeFileInfo();
 }
Example #6
0
        /// ------------------------------------------------------------------------------------
        public ComponentFile(ProjectElement parentElement,
                             string pathToAnnotatedFile,
                             IEnumerable <FileType> fileTypes,
                             IEnumerable <ComponentRole> componentRoles,
                             XmlFileSerializer xmlFileSerializer,
                             IProvideAudioVideoFileStatistics statisticsProvider,
                             PresetGatherer presetProvider,
                             FieldUpdater fieldUpdater)
        {
            ParentElement = parentElement;
            SetPathToFile(pathToAnnotatedFile);
            _componentRoles     = componentRoles;
            _xmlFileSerializer  = xmlFileSerializer;
            _statisticsProvider = statisticsProvider;
            _presetProvider     = presetProvider;
            _fieldUpdater       = fieldUpdater;

            DetermineFileType(pathToAnnotatedFile, fileTypes);

            // we musn't do anything to remove the existing extension, as that is needed
            // to keep, say, foo.wav and foo.txt separate. Instead, we just append ".meta"
            //_metaDataPath = ComputeMetaDataPath(pathToAnnotatedFile);

            MetaDataFieldValues = new List <FieldInstance>();

            Guard.AgainstNull(FileType, "At runtime (maybe not in tests) FileType should go to a type intended for unknowns");

            _metaDataPath = FileType.GetMetaFilePath(pathToAnnotatedFile);

            RootElementName = "MetaData";

            if (File.Exists(_metaDataPath))
            {
                LoadNow();
            }

            InitializeFileInfo();
        }
Example #7
0
 /// ------------------------------------------------------------------------------------
 public virtual void Load()
 {
     XmlFileSerializer.CreateIfMissing(_metaDataPath, RootElementName);
     XmlFileSerializer.Load(/*TODO this.Work, */ MetaDataFieldValues,
                            _metaDataPath, RootElementName, FileType);
 }
 /// ------------------------------------------------------------------------------------
 public ProjectElementComponentFile(ProjectElement parentElement,
                                    FileType fileType, XmlFileSerializer xmlFileSerializer, string rootElementName, FieldUpdater fieldUpdater)
     : base(parentElement, parentElement.SettingsFilePath, fileType, rootElementName, xmlFileSerializer, fieldUpdater)
 {
     InitializeFileInfo();
 }