void (final ColorDescriptor descriptor) { if (descriptor.getColor() != null) { startConstructor(Color.class.getName()); push(descriptor.getColor().getRGB()); endConstructor(); } else if (descriptor.getSwingColor() != null) { startStaticMethodCall(UIManager.class, "getColor"); push(descriptor.getSwingColor()); endMethod(); } else if (descriptor.getSystemColor() != null) { pushVar("java.awt.SystemColor." + descriptor.getSystemColor()); } else if (descriptor.getAWTColor() != null) { pushVar("java.awt.Color." + descriptor.getAWTColor()); } else { throw new IllegalStateException("Unknown color type"); } }