void (final GeneratorAdapter generator, GridBagConstraints constraints, final int componentLocal, final int parentLocal) { int gbcLocal = generator.newLocal(ourGridBagConstraintsType); generator.newInstance(ourGridBagConstraintsType); generator.dup(); generator.invokeConstructor(ourGridBagConstraintsType, ourDefaultConstructor); generator.storeLocal(gbcLocal); GridBagConstraints defaults = new GridBagConstraints(); if (defaults.gridx != constraints.gridx) { setIntField(generator, gbcLocal, "gridx", constraints.gridx); } if (defaults.gridy != constraints.gridy) { setIntField(generator, gbcLocal, "gridy", constraints.gridy); } if (defaults.gridwidth != constraints.gridwidth) { setIntField(generator, gbcLocal, "gridwidth", constraints.gridwidth); } if (defaults.gridheight != constraints.gridheight) { setIntField(generator, gbcLocal, "gridheight", constraints.gridheight); } if (defaults.weightx != constraints.weightx) { setDoubleField(generator, gbcLocal, "weightx", constraints.weightx); } if (defaults.weighty != constraints.weighty) { setDoubleField(generator, gbcLocal, "weighty", constraints.weighty); } if (defaults.anchor != constraints.anchor) { setIntField(generator, gbcLocal, "anchor", constraints.anchor); } if (defaults.fill != constraints.fill) { setIntField(generator, gbcLocal, "fill", constraints.fill); } if (defaults.ipadx != constraints.ipadx) { setIntField(generator, gbcLocal, "ipadx", constraints.ipadx); } if (defaults.ipady != constraints.ipady) { setIntField(generator, gbcLocal, "ipady", constraints.ipady); } if (!defaults.insets.equals(constraints.insets)) { generator.loadLocal(gbcLocal); AsmCodeGenerator.pushPropValue(generator, Insets.class.getName(), constraints.insets); generator.putField(ourGridBagConstraintsType, "insets", Type.getType(Insets.class)); } generator.loadLocal(parentLocal); generator.loadLocal(componentLocal); generator.loadLocal(gbcLocal); generator.invokeVirtual(ourContainerType, ourAddMethod); }