void (final GeneratorAdapter generator, final Object value) { ColorDescriptor descriptor = (ColorDescriptor) value; if (descriptor.getColor() != null) { generator.newInstance(ourColorType); generator.dup(); generator.push(descriptor.getColor().getRGB()); generator.invokeConstructor(ourColorType, ourInitMethod); } else if (descriptor.getSwingColor() != null) { generator.push(descriptor.getSwingColor()); generator.invokeStatic(ourUIManagerType, ourGetColorMethod); } else if (descriptor.getSystemColor() != null) { generator.getStatic(ourSystemColorType, descriptor.getSystemColor(), ourSystemColorType); } else if (descriptor.getAWTColor() != null) { generator.getStatic(ourColorType, descriptor.getAWTColor(), ourColorType); } else if (descriptor.isColorSet()) { throw new IllegalStateException("Unknown color type"); } }