| 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 ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|