SciStringArray.java

Go to the documentation of this file.
00001 package javasci ;
00002 /********************************************************************************************************/
00003 /* Allan CORNET */
00004 /* INRIA 2006 */
00005 /********************************************************************************************************/
00006 public class SciStringArray implements java.io.Serializable  
00007 {
00008 /********************************************************************************************************/
00009   private String [] x ;
00010   private int m, n;
00011   private String name; 
00012 /********************************************************************************************************/  
00013 
00014   private static native void Initialize();
00019   private native int getRowFromScilab(String name);
00026   private native int getColFromScilab(String name);
00033   public native boolean Job(String job);
00038   public native String GetElement(int indr, int indc);
00039   private native void SendString(String str,int indr, int indc);
00040   
00044 /********************************************************************************************************/  
00045   static 
00046   {
00047     System.loadLibrary("javasci");
00048     Initialize();
00049   }
00050 /********************************************************************************************************/  
00051   public SciStringArray(String name,SciStringArray Obj) 
00052   {
00053     this.name = name;
00054     this.m = Obj.getRow() ;
00055     this.n = Obj.getCol();
00056     this.x = new String[m*n];
00057    
00058     this.x =Obj.getData() ;
00059     Send();
00060   }
00061 /********************************************************************************************************/  
00062   public SciStringArray(String name,int r,int c) 
00063   {
00064     this.m = r ;
00065     this.n = c ;
00066     this.x = new String[r*c];
00067     this.name = name;
00068     
00069     if ( (Scilab.TypeVar(name) == 10) & 
00070          (getRowFromScilab(name) == c) & 
00071          (getColFromScilab(name) == r) )
00072     {
00073                 Get();
00074     }
00075     else
00076     {
00077         for ( int i = 0 ; i < r*c ; i++)x[i]="";
00078         Send();
00079     }
00080   }
00081  /********************************************************************************************************/  
00082   public SciStringArray(String name,int r,int c,String [] x )
00083   {
00084     if ( r*c != x.length) 
00085     {
00086      throw new BadDataArgumentException("Bad Matrix call, size of third argument is wrong");
00087     }
00088     this.m = r ;
00089     this.n = c;
00090     this.x = x;
00091     this.name = name;
00092     Send();
00093   }
00094 /********************************************************************************************************/
00095   public int getRow() 
00096   {
00097    return m;
00098   }
00099 /********************************************************************************************************/  
00100   public int getCol() 
00101   {
00102    return n;
00103   }
00104 /********************************************************************************************************/  
00105   public String getName()
00106   {
00107    return name;
00108   }
00109 /********************************************************************************************************/  
00110   public String[] getData() 
00111   {
00112    Get();
00113    return x;
00114   }
00115 /********************************************************************************************************/  
00116   public void Get() 
00117   {
00118         int indr, indc;
00119         
00120     for(indr=1;indr<=m;indr++)
00121     {
00122      for(indc=1;indc<=n;indc++)
00123      {
00124         x[(indc-1)*m+(indr-1)]=GetElement(indr,indc);
00125      }
00126      
00127     }
00128   }
00129 /********************************************************************************************************/  
00130   public void Send() 
00131   {
00132         int indx, indy;
00133         
00134     for(indx=0;indx<m;indx++)
00135     {
00136       for(indy=0;indy<n;indy++)
00137       {
00138              SendString(x[indx+indy*m],indx,indy);
00139       }
00140     }
00141   }
00142 /********************************************************************************************************/  
00143   public void disp() 
00144   {
00145         Get();
00146     System.out.println("Matrix "+ getName() +"=");
00147     Job( "disp(" + getName() +");");
00148   }
00149 }
00150 /********************************************************************************************************/

Generated on Sun Mar 4 15:03:58 2007 for Scilab [trunk] by  doxygen 1.5.1