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