home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / beans / ArrayPersistenceDelegate.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  1.8 KB  |  37 lines

  1. package java.beans;
  2.  
  3. import java.lang.reflect.Array;
  4.  
  5. class ArrayPersistenceDelegate extends PersistenceDelegate {
  6.    protected boolean mutatesTo(Object var1, Object var2) {
  7.       return var2 != null && var1.getClass() == var2.getClass() && Array.getLength(var1) == Array.getLength(var2);
  8.    }
  9.  
  10.    protected Expression instantiate(Object var1, Encoder var2) {
  11.       Class var3 = var1.getClass();
  12.       return new Expression(var1, Array.class, "newInstance", new Object[]{var3.getComponentType(), new Integer(Array.getLength(var1))});
  13.    }
  14.  
  15.    protected void initialize(Class<?> var1, Object var2, Object var3, Encoder var4) {
  16.       int var5 = Array.getLength(var2);
  17.  
  18.       for(int var6 = 0; var6 < var5; ++var6) {
  19.          Integer var7 = new Integer(var6);
  20.          Expression var8 = new Expression(var2, "get", new Object[]{var7});
  21.          Expression var9 = new Expression(var3, "get", new Object[]{var7});
  22.  
  23.          try {
  24.             Object var10 = var8.getValue();
  25.             Object var11 = var9.getValue();
  26.             var4.writeExpression(var8);
  27.             if (!MetaData.equals(var11, var4.get(var10))) {
  28.                DefaultPersistenceDelegate.invokeStatement(var2, "set", new Object[]{var7, var10}, var4);
  29.             }
  30.          } catch (Exception var12) {
  31.             var4.getExceptionListener().exceptionThrown(var12);
  32.          }
  33.       }
  34.  
  35.    }
  36. }
  37.