package com.dy.pmsOther.dyFm; 
 | 
  
 | 
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 ; 
 | 
        } 
 | 
    } 
 | 
} 
 |