New file |
| | |
| | | package com.dy.pipIrrWebFile.fm; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | public class DyFileSvConf { |
| | | |
| | | public static class Group{ |
| | | public List<Vo> list ; |
| | | public Group(){ |
| | | this.list = new ArrayList<Vo>() ; |
| | | } |
| | | public void add(Vo vo)throws Exception{ |
| | | if(vo == null){ |
| | | throw new Exception("出错,预加入集合Vo为空了!") ; |
| | | } |
| | | if(list.size() > 0){ |
| | | for(Vo lvo : list){ |
| | | lvo.checkEqual(vo) ; |
| | | } |
| | | this.list.add(vo) ; |
| | | }else{ |
| | | this.list.add(vo) ; |
| | | } |
| | | } |
| | | public void check() throws Exception{ |
| | | Integer startV = 0 ; |
| | | doCheck(startV) ; |
| | | } |
| | | private void doCheck(Integer startV) throws Exception{ |
| | | boolean find = false ; |
| | | for(Vo vo : list){ |
| | | if(vo.hashStart.intValue() == startV.intValue()){ |
| | | startV = vo.hashEnd + 1; |
| | | find = true ; |
| | | break ; |
| | | } |
| | | } |
| | | if(!find){ |
| | | throw new Exception("严重错误,未发现哈希值为" + startV + "文件服务器!") ; |
| | | } |
| | | if(startV.intValue() <= 65535){ |
| | | doCheck(startV) ; |
| | | } |
| | | } |
| | | } |
| | | |
| | | public static class Vo{ |
| | | public String id ;//id或名称 |
| | | public String fileSysAbsolutePath; //文件名称的哈希值对应的文件最终存储绝对路径中的根目录,在配置文件中配置 |
| | | public String fileSysRelativePath; //文件名称的哈希值对应的文件最终存储相对路径的目录,在配置文件中配置 |
| | | public String restUrl;//文件系统路径 |
| | | public String webUrl ;//下载文档的web路径 |
| | | public String webDownloadPath ;//下载文档的Controller的相对路径 |
| | | public Integer hashStart ;//哈希值启始值(包含) |
| | | public Integer hashEnd ;//哈希值截止值(包含) |
| | | |
| | | public Vo(){} |
| | | public Vo(String id, |
| | | String fileSysAbsolutePath, |
| | | String fileSysBasePath, |
| | | String restUrl, |
| | | String webUrl, |
| | | String webDownloadPath, |
| | | Integer hashStart, |
| | | Integer hashEnd)throws Exception{ |
| | | this.id = id ; |
| | | this.fileSysAbsolutePath = fileSysAbsolutePath ; |
| | | this.fileSysRelativePath = fileSysBasePath ; |
| | | this.restUrl = restUrl ; |
| | | this.webUrl = webUrl ; |
| | | this.webDownloadPath = webDownloadPath ; |
| | | this.hashStart = hashStart ; |
| | | this.hashEnd = hashEnd ; |
| | | if(this.id == null || this.id.trim().equals("")){ |
| | | throw new Exception("出错,id为空了!") ; |
| | | }else{ |
| | | this.id = this.id.trim() ; |
| | | } |
| | | if(this.fileSysAbsolutePath == null || this.fileSysAbsolutePath.trim().equals("")){ |
| | | throw new Exception("出错,fileSysAbsolutePath为空了!") ; |
| | | }else{ |
| | | this.fileSysAbsolutePath = this.fileSysAbsolutePath.trim() ; |
| | | this.fileSysAbsolutePath = this.fileSysAbsolutePath.replaceAll("\\\\", "/") ; |
| | | if(!this.fileSysAbsolutePath.endsWith("/")){ |
| | | this.fileSysAbsolutePath = this.fileSysAbsolutePath + "/" ; |
| | | } |
| | | } |
| | | if(this.fileSysRelativePath == null || this.fileSysRelativePath.trim().equals("")){ |
| | | throw new Exception("出错,fileSysBasePath为空了!") ; |
| | | }else{ |
| | | this.fileSysRelativePath = this.fileSysRelativePath.trim() ; |
| | | } |
| | | if(this.webUrl == null || this.webUrl.trim().equals("")){ |
| | | throw new Exception("出错,webUrl为空了!") ; |
| | | }else{ |
| | | this.webUrl = this.webUrl.trim() ; |
| | | if(!this.webUrl.endsWith("/") && !this.webUrl.endsWith("\\")){ |
| | | this.webUrl += "/" ; |
| | | } |
| | | } |
| | | if(this.webDownloadPath == null || this.webDownloadPath.trim().equals("")){ |
| | | throw new Exception("出错,webDownloadPath!") ; |
| | | } |
| | | |
| | | if(this.hashStart == null){ |
| | | throw new Exception("出错,hashStart为空了!") ; |
| | | }else if(this.hashStart.intValue() < 0){ |
| | | throw new Exception("出错,hashStart小于0了!") ; |
| | | }else if(this.hashStart.intValue() > 65535){ |
| | | throw new Exception("出错,hashStart大于65535了!") ; |
| | | } |
| | | if(this.hashEnd == null){ |
| | | throw new Exception("出错,hashEnd为空了!") ; |
| | | }else if(this.hashEnd.intValue() < 0){ |
| | | throw new Exception("出错,hashEnd小于0了!") ; |
| | | }else if(this.hashEnd.intValue() > 65535){ |
| | | throw new Exception("出错,hashEnd大于65535了!") ; |
| | | } |
| | | if(this.hashEnd < this.hashStart){ |
| | | throw new Exception("出错,hashEnd小于hashStart了!") ; |
| | | } |
| | | } |
| | | public String toString(){ |
| | | return "id=" + id + "\n" |
| | | + "fileSysAbsolutePath=" + fileSysAbsolutePath + "\n" |
| | | + "fileSysBasePath=" + fileSysRelativePath + "\n" |
| | | + "restUrl=" + restUrl + "\n" |
| | | + "webUrl=" + webUrl + "\n" |
| | | + "webDownloadPath=" + webDownloadPath + "\n" |
| | | + "hashStart=" + hashStart + "\n" |
| | | + "hashEnd=" + hashEnd ; |
| | | } |
| | | |
| | | |
| | | private boolean checkEqual(Vo vo)throws Exception{ |
| | | if(this.id.equalsIgnoreCase(vo.id)){ |
| | | throw new Exception("出错,id有重复!") ; |
| | | } |
| | | if(this.hashStart.intValue() == vo.hashStart.intValue()){ |
| | | throw new Exception("出错,hashStart有重复!") ; |
| | | } |
| | | if(this.hashEnd.intValue() == vo.hashEnd.intValue()){ |
| | | throw new Exception("出错,hashEnd有重复!") ; |
| | | } |
| | | if(this.hashStart.intValue() == vo.hashEnd.intValue()){ |
| | | throw new Exception("出错,hashStart与hashEnd有重复!") ; |
| | | } |
| | | if(this.hashEnd.intValue() == vo.hashStart.intValue()){ |
| | | throw new Exception("出错,hashEnd与hashStart有重复!") ; |
| | | } |
| | | return true ; |
| | | } |
| | | } |
| | | } |