2021SC@SDUSC
上篇文章中,我完成了core模块下util目录的分析。像db模块一样,util目录提供了一系列的工具。在本文,我将开始分析core模块的converter目录,继续探索core模块的源码。为了提高分析的速度,本文仍然主要分析陌生的、新奇的代码,对于重复性的代码则予以跳过。
目录
converter目录的结构
所谓converter,意思是转换器,应该是把数据的格式进行某种方式的转换。在文件夹中打开converter目录,结构如下:
结构比较简单,并没有子目录,只有一系列java文件。接下来就依次分析这些java文件了。
converter目录源码分析
BaseConverter.java
BaseConverter是基本的转换器,因此首先来分析它。首先看其引入的部分:
前面引入的是一系列工具类,例如copyFile,起复制文件的作用;toInt是转换成int格式的工具类......最后引入的是util目录下的一些类、方法、字段,见得都比较多了。
再下面引入的有异常处理类、Date、List等见过很多次的类。最后引入的有之前分析过的db模块下的实体类,以及日志等等。内容很多,但经过之前几个月的分析都比较熟悉了。
看类的定义:
类的字段有很多。先定义的是日志log、正则表达式模型p,以及根据操作系统是不是Windows来判断是否是exe文件的字符串。然后下面 用@Autowired注解了四个字段,作用是对类成员变量、方法及构造函数进行标注,完成自动装配的工作。这四个字段的类型都是之前分析过的db模块下dao目录的数据访问对象类。
下面定义了一个内部类Dimension。Dimension意为维,它的字段包括width和height,应该是用户设备屏幕的尺寸。Dimension还有自己的构造器和getters。
再往下看:
提供了getPath方法,返回类型为String,形参是String key、String app。在方法体内,根据类的字段cfgDao的getString方法获取key对应的值,再下面进行处理,最后形成文件路径。形成文件路径时,用到了前面定义的字段EXEC_EXT,即判断了是不是exe文件。因此,getPath方法是为了得到一个文件的路径,并且指明其文件类型。
再下面:
在后面出现了三个方法,都是调用前面的getPath方法。这里利用的都是前面引入的字段,例如CONFIG_PATH_FFMPEG。