package com.vci.client.common.datatype;
|
|
import com.vci.client.common.providers.ServiceProvider;
|
import com.vci.common.log.ServerWithLog4j;
|
import com.vci.corba.common.VCIError;
|
import com.vci.corba.omd.atm.AttribItem;
|
import com.vci.omd.dataType.VTDataType;
|
|
public class VTLong extends VTDataType{
|
private long value;
|
|
public long getValue(){
|
return this.value;
|
}
|
|
public VTLong(long value){
|
this.value = value;
|
}
|
|
public boolean checkRageValueByAbName(String abName){
|
AttribItem ab = null;
|
try {
|
ab = ServiceProvider.getOMDService().getAttributeService().getAttribItemByName(abName);
|
} catch (VCIError e) {
|
//e.printStackTrace();
|
ServerWithLog4j.logger.error(e);
|
}
|
if(ab == null){
|
return false;
|
}
|
String rage = ab.rage;
|
return checkRageValueByRage(rage);
|
}
|
|
public boolean checkRageValueByRage(String rage){
|
if(rage == null || rage.equals("")){
|
return true;
|
}
|
boolean rageFlag = false;
|
String[] rages = rage.split(";");
|
//当该值等于 用!= 所限制的值时,不满足值域
|
for(int i = 0; i < rages.length; i++){
|
String rage_ = rages[i];
|
if(rage_.contains("!=")){
|
long rageUne = Long.valueOf(rage_.substring(rage_.indexOf("=") + 1));
|
if(rageUne == this.value){
|
return false;
|
}
|
}
|
}
|
//当满足!= 以外的任一条件时,既满足值域
|
for(int i = 0; i < rages.length; i++){
|
String rage_ = rages[i];
|
if(rage_.contains("=")){
|
long rageUne = Long.valueOf(rage_.substring(rage_.indexOf("=") + 1));
|
if(rageUne == this.value){
|
rageFlag = true;
|
break;
|
}
|
}
|
if(rage_.contains(">") && !rage_.contains(">=")){
|
long rageUne = Long.valueOf(rage_.substring(rage_.indexOf(">") + 1));
|
if(this.value > rageUne){
|
rageFlag = true;
|
break;
|
}
|
}
|
if(rage_.contains(">=")){
|
long rageUne = Long.valueOf(rage_.substring(rage_.indexOf("=") + 1));
|
if(this.value >= rageUne){
|
rageFlag = true;
|
break;
|
}
|
}
|
if(rage_.contains("<") && !rage_.contains("<=")){
|
long rageUne = Long.valueOf(rage_.substring(rage_.indexOf("<") + 1));
|
if(this.value < rageUne){
|
rageFlag = true;
|
break;
|
}
|
}
|
if(rage_.contains("<=")){
|
long rageUne = Long.valueOf(rage_.substring(rage_.indexOf("<") + 1));
|
if(this.value <= rageUne){
|
rageFlag = true;
|
break;
|
}
|
}
|
}
|
return rageFlag;
|
}
|
}
|