code: public void setAttributeValue(final IDeviceAttributeDAO devatt)
  	    throws DevFailed {
  
  	attrval.name = devatt.getName();
  	attrval.quality = devatt.getQuality();
  	attrval.time = devatt.getTimeVal();
  	attrval.r_dim = devatt.getReadAttributeDim();
  	attrval.w_dim = devatt.getWriteAttributeDim();
  	attrval.r_dim.dim_x = devatt.getReadAttributeDim().dim_x;
  	attrval.r_dim.dim_y = devatt.getReadAttributeDim().dim_y;
  
  	if (devatt.getWriteAttributeDim() != null) {
  	    attrval.w_dim.dim_x = devatt.getWriteAttributeDim().dim_x;
  	    attrval.w_dim.dim_y = devatt.getWriteAttributeDim().dim_y;
  	} else {
  	    attrval.w_dim = devatt.getReadAttributeDim();// write as read
  	}
  
  	attrval.err_list = null;
  	// Get the value from Union object
  	attrval.value = ApiUtil.get_orb().create_any();
  	// GA
  	// devatt.setValueAsAny(this);
  	((DeviceAttributeDAODefaultImpl) devatt).setValueAsAny(this);
      }
docs: GA: cf. the inteface implemented by this class