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 VTInteger extends VTDataType{ private int value; public int getValue(){ return this.value; } public VTInteger(int 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; } String[] rages = rage.split(";"); boolean rageFlag = false; //当该值等于 用!= 所限制的值时,不满足值域 for(int i = 0; i < rages.length; i++){ String rage_ = rages[i]; if(rage_.contains("!=")){ int rageUne = Integer.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("=")){ int rageUne = Integer.valueOf(rage_.substring(rage_.indexOf("=") + 1)); if(rageUne == this.value){ rageFlag = true; break; } } if(rage_.contains(">") && !rage_.contains(">=")){ int rageUne = Integer.valueOf(rage_.substring(rage_.indexOf(">") + 1)); if(this.value > rageUne){ rageFlag = true; break; } } if(rage_.contains(">=")){ int rageUne = Integer.valueOf(rage_.substring(rage_.indexOf("=") + 1)); if(this.value >= rageUne){ rageFlag = true; break; } } if(rage_.contains("<") && !rage_.contains("<=")){ int rageUne = Integer.valueOf(rage_.substring(rage_.indexOf("<") + 1)); if(this.value < rageUne){ rageFlag = true; break; } } if(rage_.contains("<=")){ int rageUne = Integer.valueOf(rage_.substring(rage_.indexOf("<") + 1)); if(this.value <= rageUne){ rageFlag = true; break; } } } return rageFlag; } }