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 webDownloadUrl ;//Action下载文档的web路径
|
public Integer hashStart ;//哈希值启始值(包含)
|
public Integer hashEnd ;//哈希值截止值(包含)
|
|
public Vo(){}
|
public Vo(String id,
|
String fileSysAbsolutePath,
|
String fileSysBasePath,
|
String restUrl,
|
String webUrl,
|
String webDownloadUrl,
|
Integer hashStart,
|
Integer hashEnd)throws Exception{
|
this.id = id ;
|
this.fileSysAbsolutePath = fileSysAbsolutePath ;
|
this.fileSysRelativePath = fileSysBasePath ;
|
this.restUrl = restUrl ;
|
this.webUrl = webUrl ;
|
this.webDownloadUrl = webDownloadUrl ;
|
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.webDownloadUrl == null || this.webDownloadUrl.trim().equals("")){
|
throw new Exception("出错,webDownloadUrl为空了!") ;
|
}else{
|
this.webDownloadUrl = this.webDownloadUrl.trim() ;
|
if(!this.webDownloadUrl.endsWith("/") && !this.webDownloadUrl.endsWith("\\")){
|
this.webDownloadUrl += "/" ;
|
}
|
}
|
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"
|
+ "webDownloadUrl=" + webDownloadUrl + "\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 ;
|
}
|
}
|
}
|