⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 varray.java

📁 一个简单的visio程序。
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package HECore.stddata;
import HPCore.Exception.*;
import java.util.*;
public class VArray extends Variant {
 private  int dim=0;
 private int pushdim=0;
 private int rdimnum=0;
 private int ldimnum=0;
 private int rpopdim=0;
 private int lpopdim=0;
 private Vector  decHsuffix;
 private String classtype="";
 private Vector  decLsuffix;
 private Hashtable array =new Hashtable() ;
 private Vector num =new Vector();
 private int type=0;
 private Object udtobj;
 private String classType=null;
 private int param_num=0;
 public VArray(int dim ,int type)
 {
   this.dim=dim;
   this.type=type;
   decHsuffix =new Vector();
   decLsuffix =new Vector();
       
 }
    /**
  * replace a array  .it's  dimension    
  *
  *
  */
   
    public VArray(int dim, int type  ,String  classType)
    {
        this.dim=dim;
        this.type=type;
        this.classType=classType;
		decHsuffix =new Vector();
        decLsuffix =new Vector();
		
       

    }
 
 public  VArray()
 {
     this.dim=1;

 }

 public VArray add(short i)
 {
   array.put(new Integer(param_num).toString(),new Short(i));
   param_num++;
   return this;
 }

 public VArray add(int i)
 {
  array.put(new Integer(param_num).toString(),new Integer(i));
  param_num++; 
  return this;
 }

 public VArray add(boolean i)
 {
  array.put(new Integer(param_num).toString(),new Boolean(i));
   param_num++;
   return this;
 }

 public VArray add(float f)
 {
  array.put(new Integer(param_num).toString(),new Float(f));
   param_num++;
   return this;
 }

 public VArray add(double dbl)
 {
   array.put(new Integer(param_num).toString(),new Double(dbl));
   param_num++;
   return this;
 }

 public VArray add(String src)
 {
  array.put(new Integer(param_num).toString(),src);
   param_num++;
   return this;
 }

 public VArray add(Variant var)
 {
   array.put(new Integer(param_num).toString(),var);
   param_num++;
   return this;
 }


 public void dynamic(int num)
 {
       this.dim=num;
       decHsuffix.removeAllElements();
       decLsuffix.removeAllElements();
    array.clear();
    this.num.removeAllElements();
       rpopdim=0;
	   lpopdim=0;
    pushdim=0;
    rdimnum=0;
	ldimnum=0;
 }
    public VArray push(double ldim,double hdim)
 {
     int mdim =(int)(hdim - ldim)+1;  
  
     decHsuffix.addElement(new Integer((int)hdim));
     decLsuffix.addElement(new Integer((int)ldim));
  
  if(pushdim<(int)dim)
    {
         num.addElement(new Integer((int)mdim));
         pushdim++;
   return this;
    }
     else  
  {
  
  pushdim=0;
     return null;
  }

 }

 
/*****************Pop******************************/ 
 
 
 
 /**
  * set array index .
  * return current VArray
     */
 public VArray popr(short dim) throws HpException
 {
      int dimm=0;  
	  
   if(rpopdim<this.dim)
    {
      if(type!=Variant.V_CTL)
	  {
		  if((((int)dim>((Integer)decHsuffix.elementAt(rpopdim)).intValue())||((int)dim<((Integer)decLsuffix.elementAt(rpopdim)).intValue())) )
          throw new HpException(9," Subscript out of range");
      }
	   if(rpopdim==this.dim-1)
           dimm=(int)dim;
         else
         {
            dimm=dim;
            for(int i=rpopdim+1;i<this.dim;i++)
            dimm=dimm*((Integer)num.elementAt(rpopdim)).intValue();
            
          }    
         rpopdim++;
		 rdimnum=rdimnum+dimm;

   return this;
    }
      
      rpopdim=0;
   return null;

 }
    /**
  * set array index .
  * return current VArray
     */
 public VArray popr(int dim) throws HpException
 {
       
   int dimm=0;

   if(rpopdim<this.dim)
    {
      if(type!=Variant.V_CTL)
	  {
		  if((((int)dim>((Integer)decHsuffix.elementAt(rpopdim)).intValue())||((int)dim<((Integer)decLsuffix.elementAt(rpopdim)).intValue())) )
          throw new HpException(9," Subscript out of range");
      }
       
      if(rpopdim==this.dim-1)
           dimm=(int)dim;
         else
         {
            dimm=dim;
            for(int i=rpopdim+1;i<this.dim;i++)
             dimm=dimm*((Integer)num.elementAt(rpopdim)).intValue();
            
         }
         rpopdim++;
         rdimnum=rdimnum+dimm;
         return this;
    }
      rpopdim=0;
  

   return null;
 }
    /**
  * set array index .
  * return current VArray
     */
 public VArray popr(float dim) throws HpException
 {
      int dimm=0;
   if(rpopdim<this.dim)
    {
       if(type!=Variant.V_CTL)
	  {
		  if((((int)dim>((Integer)decHsuffix.elementAt(rpopdim)).intValue())||((int)dim<((Integer)decLsuffix.elementAt(rpopdim)).intValue())) )
          throw new HpException(9," Subscript out of range");
      }
	   if(rpopdim==this.dim-1)
           dimm=(int)dim;
         else
         {
            dimm=(int)dim;
            for(int i=rpopdim+1;i<this.dim;i++)
             dimm=dimm*((Integer)num.elementAt(rpopdim)).intValue();
         }
         rdimnum=rdimnum+dimm;
         rpopdim++;
   return this;
    }
      rpopdim=0;
   return null;
 }
    /**
  * set array index .
  * return current VArray
     */
 public VArray popr(double dim) throws HpException
 {
      
     int dimm=0;
       if(rpopdim<this.dim)
    {
       if(type!=Variant.V_CTL)
	  {
		  if((((int)dim>((Integer)decHsuffix.elementAt(rpopdim)).intValue())||((int)dim<((Integer)decLsuffix.elementAt(rpopdim)).intValue())) )
          throw new HpException(9," Subscript out of range");
      }
        if(rpopdim==this.dim-1)
           rdimnum=(int)dim;
         else
         {
          dimm=(int)dim;
             for(int i=rpopdim+1;i<this.dim;i++)
              dimm=dimm*((Integer)num.elementAt(rpopdim)).intValue();
         }
         rdimnum=rdimnum+dimm;
   rpopdim++;
   return this;
    }
      rpopdim=0;
   return null;
 }
 
    /**
  * set array index .
  * return current VArray
     */
 public VArray popr(Variant dim) throws HpException
 {
       int dimm=0;
      if(rpopdim<this.dim)
    {
       if(type!=Variant.V_CTL)
	  {
		  if((((int)dim.dblValue()>((Integer)decHsuffix.elementAt(rpopdim)).intValue())||((int)dim.dblValue()<((Integer)decLsuffix.elementAt(rpopdim)).intValue())) )
          throw new HpException(9," Subscript out of range");
      }
        if(rpopdim==this.dim-1)
           dimm=(int)dim.dblValue();
         else
         {
           dimm=(int)dim.dblValue();
           for(int i=rpopdim+1;i<this.dim;i++)
             dimm=dimm*((Integer)num.elementAt(rpopdim)).intValue();
         }
         rdimnum=rdimnum+dimm;
         rpopdim++;
   return this;
    }
      rpopdim=0;
   return null;
 }

 /* ********************************
    expression left  
 
  *********************************/
 public VArray popl(short dim) throws HpException
 {
      int dimm=0;  
   if(lpopdim<this.dim)
    {
      if(type!=Variant.V_CTL)
	  {
		  if((((int)dim>((Integer)decHsuffix.elementAt(lpopdim)).intValue())||((int)dim<((Integer)decLsuffix.elementAt(lpopdim)).intValue())) )
          throw new HpException(9," Subscript out of range");
      }
	   if(lpopdim==this.dim-1)
           dimm=(int)dim;
         else
         {
            dimm=dim;
            for(int i=lpopdim+1;i<this.dim;i++)
            dimm=dimm*((Integer)num.elementAt(lpopdim)).intValue();
            
          }    
         lpopdim++;
		 ldimnum=ldimnum+dimm;

   return this;
    }
      
      lpopdim=0;
   return null;

 }
    /**
  * set array index .
  * return current VArray
     */
 public VArray popl(int dim) throws HpException
 {
       
   int dimm=0;

   if(lpopdim<this.dim)
    {
      if(type!=Variant.V_CTL)
	  {
		  if((((int)dim>((Integer)decHsuffix.elementAt(lpopdim)).intValue())||((int)dim<((Integer)decLsuffix.elementAt(lpopdim)).intValue())) )
          throw new HpException(9," Subscript out of range");
      }
       
      if(lpopdim==this.dim-1)
           dimm=(int)dim;
         else
         {
            dimm=dim;
            for(int i=lpopdim+1;i<this.dim;i++)
             dimm=dimm*((Integer)num.elementAt(lpopdim)).intValue();
            
         }
         lpopdim++;
         ldimnum=ldimnum+dimm;
         return this;
    }
      lpopdim=0;
  

   return null;
 }
    /**
  * set array index .
  * return current VArray
     */
 public VArray popl(float dim) throws HpException
 {
      int dimm=0;
   if(lpopdim<this.dim)
    {
       if(type!=Variant.V_CTL)
	  {
		  if((((int)dim>((Integer)decHsuffix.elementAt(lpopdim)).intValue())||((int)dim<((Integer)decLsuffix.elementAt(lpopdim)).intValue())) )
          throw new HpException(9," Subscript out of range");
      }
	   if(lpopdim==this.dim-1)
           dimm=(int)dim;
         else
         {
            dimm=(int)dim;
            for(int i=lpopdim+1;i<this.dim;i++)
             dimm=dimm*((Integer)num.elementAt(lpopdim)).intValue();
         }
         ldimnum=ldimnum+dimm;
         lpopdim++;
   return this;
    }
      lpopdim=0;
   return null;
 }
    /**
  * set array index .
  * return current VArray
     */
 public VArray popl(double dim) throws HpException
 {
      
     int dimm=0;
       if(lpopdim<this.dim)
    {
       if(type!=Variant.V_CTL)
	  {
		  if((((int)dim>((Integer)decHsuffix.elementAt(lpopdim)).intValue())||((int)dim<((Integer)decLsuffix.elementAt(lpopdim)).intValue())) )
          throw new HpException(9," Subscript out of range");
      }
        if(lpopdim==this.dim-1)
           ldimnum=(int)dim;
         else
         {
          dimm=(int)dim;
             for(int i=lpopdim+1;i<this.dim;i++)
              dimm=dimm*((Integer)num.elementAt(lpopdim)).intValue();
         }
         ldimnum=ldimnum+dimm;
   lpopdim++;
   return this;
    }
      lpopdim=0;
   return null;
 }
 
    /**
  * set array index .
  * return current VArray
     */
 public VArray popl(Variant dim) throws HpException
 {
       int dimm=0;
      if(lpopdim<this.dim)
    {
       if(type!=Variant.V_CTL)
	  {
		  if((((int)dim.dblValue()>((Integer)decHsuffix.elementAt(lpopdim)).intValue())||((int)dim.dblValue()<((Integer)decLsuffix.elementAt(lpopdim)).intValue())) )
          throw new HpException(9," Subscript out of range");
      }
        if(lpopdim==this.dim-1)
           dimm=(int)dim.dblValue();
         else
         {
           dimm=(int)dim.dblValue();
           for(int i=lpopdim+1;i<this.dim;i++)
             dimm=dimm*((Integer)num.elementAt(lpopdim)).intValue();
         }
         ldimnum=ldimnum+dimm;
         lpopdim++;
   return this;
    }
      lpopdim=0;
   return null;
 }

 /* **************************************************
    expression end

  ****************************************/
    /**
     * set a String element into array.
     * 
     */
 public void set(String src) throws HpException
 {
   VObject obj=null;
   if(type==Variant.V_CTL && array.get(new Integer(ldimnum).toString()) instanceof VObject)
     throw new HpException(28,"Out of stack space");
   
   else
    if(classType!=null && array.get(new Integer(ldimnum).toString())==null)
    {
      throw new HpException(91,"Object variable or With block variable not set");
	}
   else
    if(type!=Variant.V_STR)
   {
      if(is_numric())
	  {
        double d =new VString(src).dblValue();
	  }
	   
	    
   }
   else
	 array.put(new Integer(ldimnum).toString(),src);
   ldimnum=0;
   lpopdim=0;
   pushdim=0;
 }
    /**
     * set a short element into array.
     * 
     */
 public void set(short i) throws HpException
 {
    VObject obj=null;
    if(type==Variant.V_CTL && array.get(new Integer(ldimnum).toString()) instanceof VObject)
       throw new HpException(28,"Out of stack space");     
    else
    if(classType!=null && array.get(new Integer(ldimnum).toString())==null)
    {
      throw new HpException(91,"Object variable or With block variable not set");
    }
   else
     array.put(new Integer(ldimnum).toString(),new Double((double)i));
   ldimnum=0;
   lpopdim=0;
   pushdim=0;
 }
    /**
     * set a int element into array.
     * 
     */
 public void set(int i) throws HpException
 {
   VObject obj=null;
   if(type==Variant.V_CTL && array.get(new Integer(ldimnum).toString()) instanceof VObject)
     throw new HpException(28,"Out of stack space");      
   else
   if(classType!=null && array.get(new Integer(ldimnum).toString())==null)
   {
      throw new HpException(91,"Object variable or With block variable not set");
   }
   else
    array.put(new Integer(ldimnum).toString(),new Double((double)i));
   ldimnum=0;
   lpopdim=0;
   pushdim=0;
 }
    /**
     * set a float element into array.
     * 
     */
 public void set(float f) throws HpException
 {
   VObject obj=null;
   if(type==Variant.V_CTL && array.get(new Integer(ldimnum).toString()) instanceof VObject)
     throw new HpException(28,"Out of stack space");      
   else
   if(classType!=null && array.get(new Integer(ldimnum).toString())==null)
   {
      throw new HpException(91,"Object variable or With block variable not set");
   }
   else
     array.put(new Integer(ldimnum).toString(),new Double((double)f));
   ldimnum=0;
   lpopdim=0;
   pushdim=0;
 }
    /**
     * set a double element into array.
     * 
     */
 public void set(double dbl) throws HpException
 {
   VObject obj=null;
   if(type==Variant.V_CTL && array.get(new Integer(ldimnum).toString()) instanceof VObject)
        throw new HpException(28,"Out of stack space");      
   else
   if(classType!=null && array.get(new Integer(ldimnum).toString())==null)
   {
      throw new HpException(91,"Object variable or With block variable not set");
   }
   
   array.put(new Integer(ldimnum).toString(),new Double(dbl));
   ldimnum=0;
   lpopdim=0;
   pushdim=0;
 }

   /**
     * set a boolean element into array.
     * 
     */

 public void set(boolean flag) throws HpException
 {
   VObject obj=null;
   if(type==Variant.V_CTL && array.get(new Integer(ldimnum).toString()) instanceof VObject)
     throw new HpException(28,"Out of stack space");      
   else
    if(classType!=null && array.get(new Integer(ldimnum).toString())==null)
   {
      throw new HpException(91,"Object variable or With block variable not set");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -