int Options::handleFixed( SimpleArg &arg, int & /*argno*/ ) { if ( ST_CMD == m_state ) { if ( !lookupCommand( arg ) ) { fprintf(stderr, "Invalid command '%s'\n", arg.Arg() ); printf("%s", m_usage); m_state = ST_NONE; return -1; } if ( CMD_LIST == m_command ) { m_state = ST_NONE; return 1; } else if ( CMD_DUMP == m_command ) { m_field = lookupField( "all" ); if ( NULL == m_field ) { assert( 0 ); } } m_state = ST_FILE; } else if ( ST_FILE == m_state ) { m_file = arg.Arg(); m_state = ST_FIELD; } else if ( ST_FIELD == m_state ) { m_field = lookupField( arg ); if ( NULL == m_field ) { fprintf(stderr, "Invalid field '%s'\n", arg.Arg() ); printf("%s", m_usage); m_state = ST_NONE; return -1; } if ( 0 == m_field->m_max_values ) { m_state = ST_NONE; return 1; } m_state = ST_VALUES; } else if ( ( ST_VALUES == m_state ) && ( m_field ) && ( m_num_values < m_field->m_max_values ) ) { if ( !parseValue( arg ) ) { fprintf(stderr, "Invalid value for %s: '%s'\n", m_field->m_name, arg.Arg() ); return -1; } m_num_values++; } else { fprintf(stderr, "Unexpected arg '%s'\n", arg.Arg() ); return -1; } return 0; }
QWidget * MLABOsiriXBridgeControl::createWidget(QWidget *parent) { #if defined(MACOS) if (parent) { QWidget *window = parent->window(); _p = new MLABOsiriXBridgeWindowDelegate(this, window); MLABTree *attrib; CONTROL_FIND_LOCAL(attrib, QLatin1String("windowFilePathField")); if (attrib) { _windowFilePathField = lookupField(attrib); if (_windowFilePathField) { MLABFIELD_ADD_OBSERVER(_windowFilePathField, this, fieldChanged); fieldChanged(); } } static QMap<QString,QString> commands; commands.insert(QLatin1String("droppedSeriesCommand"), QLatin1String("seriesDropped(const QVariant &)")); MLABScriptSignalHandler::setupSignalHandlers(_tree, this, _module, _windowId, commands); } #endif return NULL; }
const FieldData * Options::lookupField( const SimpleArg &arg ) const { return lookupField( arg.Arg() ); }
/** * Установить значение поля */ void AdHocCommand::setFieldValue(const char *name, const char *value) { TagHelper field = lookupField(name); field["value"] = value; }
/** * Установить тип поля */ void AdHocCommand::setField(const char *name, const char *type, const char *label) { TagHelper field = lookupField(name); field->setAttribute("type", type); if ( label ) field->setAttribute("label", label); }
static int initReflection() { Class *cls_ary_cls, *cons_ary_cls, *cons_ref_cls, *mthd_ary_cls; Class *mthd_ref_cls, *fld_ary_cls, *fld_ref_cls, *vm_cons_cls; Class *vm_mthd_cls, *vm_fld_cls; FieldBlock *vm_cons_slot_fb, *vm_cons_class_fb, *vm_cons_param_fb; FieldBlock *vm_cons_cons_fb, *vm_mthd_slot_fb, *vm_mthd_class_fb; FieldBlock *vm_mthd_ret_fb, *vm_mthd_param_fb, *vm_mthd_m_fb; FieldBlock *vm_fld_slot_fb, *vm_fld_class_fb, *vm_fld_type_fb; FieldBlock *vm_fld_f_fb, *cons_cons_fb, *mthd_m_fb, *fld_f_fb; FieldBlock *acc_flag_fb; cls_ary_cls = findArrayClass(SYMBOL(array_java_lang_Class)); cons_ary_cls = findArrayClass(SYMBOL(array_java_lang_reflect_Constructor)); cons_ref_cls = findSystemClass(SYMBOL(java_lang_reflect_Constructor)); vm_cons_cls = findSystemClass(SYMBOL(java_lang_reflect_VMConstructor)); mthd_ary_cls = findArrayClass(SYMBOL(array_java_lang_reflect_Method)); mthd_ref_cls = findSystemClass(SYMBOL(java_lang_reflect_Method)); vm_mthd_cls = findSystemClass(SYMBOL(java_lang_reflect_VMMethod)); fld_ary_cls = findArrayClass(SYMBOL(array_java_lang_reflect_Field)); fld_ref_cls = findSystemClass(SYMBOL(java_lang_reflect_Field)); vm_fld_cls = findSystemClass(SYMBOL(java_lang_reflect_VMField)); if(!cls_ary_cls || !cons_ary_cls || !cons_ref_cls || !mthd_ary_cls || !mthd_ref_cls || !fld_ary_cls || !fld_ref_cls || !vm_cons_cls || !vm_mthd_cls || !vm_fld_cls) return FALSE; vm_cons_slot_fb = findField(vm_cons_cls, SYMBOL(slot), SYMBOL(I)); vm_cons_class_fb = findField(vm_cons_cls, SYMBOL(clazz), SYMBOL(sig_java_lang_Class)); vm_cons_param_fb = findField(vm_cons_cls, SYMBOL(parameterTypes), SYMBOL(array_java_lang_Class)); vm_cons_cons_fb = findField(vm_cons_cls, SYMBOL(cons), SYMBOL(sig_java_lang_reflect_Constructor)); vm_mthd_slot_fb = findField(vm_mthd_cls, SYMBOL(slot), SYMBOL(I)); vm_mthd_class_fb = findField(vm_mthd_cls, SYMBOL(clazz), SYMBOL(sig_java_lang_Class)); vm_mthd_ret_fb = findField(vm_mthd_cls, SYMBOL(returnType), SYMBOL(sig_java_lang_Class)); vm_mthd_param_fb = findField(vm_mthd_cls, SYMBOL(parameterTypes), SYMBOL(array_java_lang_Class)); vm_mthd_m_fb = findField(vm_mthd_cls, SYMBOL(m), SYMBOL(sig_java_lang_reflect_Method)); vm_fld_slot_fb = findField(vm_fld_cls, SYMBOL(slot), SYMBOL(I)); vm_fld_class_fb = findField(vm_fld_cls, SYMBOL(clazz), SYMBOL(sig_java_lang_Class)); vm_fld_type_fb = findField(vm_fld_cls, SYMBOL(type), SYMBOL(sig_java_lang_Class)); vm_fld_f_fb = findField(vm_fld_cls, SYMBOL(f), SYMBOL(sig_java_lang_reflect_Field)); cons_cons_fb = findField(cons_ref_cls, SYMBOL(cons), SYMBOL(sig_java_lang_reflect_VMConstructor)); mthd_m_fb = findField(mthd_ref_cls, SYMBOL(m), SYMBOL(sig_java_lang_reflect_VMMethod)); fld_f_fb = findField(fld_ref_cls, SYMBOL(f), SYMBOL(sig_java_lang_reflect_VMField)); acc_flag_fb = lookupField(cons_ref_cls, SYMBOL(flag), SYMBOL(Z)); if(!vm_cons_slot_fb || !vm_cons_class_fb || !vm_cons_param_fb || !vm_cons_cons_fb || !vm_mthd_slot_fb || !vm_mthd_class_fb || !vm_mthd_ret_fb || !vm_mthd_m_fb || !vm_mthd_param_fb || !vm_fld_slot_fb || !vm_fld_class_fb || !vm_fld_type_fb || !vm_fld_f_fb || !cons_cons_fb || !mthd_m_fb || !fld_f_fb || !acc_flag_fb) { /* Find Field/Method doesn't throw an exception... */ signalException(java_lang_InternalError, "Expected reflection field doesn't exist"); return FALSE; } vm_cons_slot_offset = vm_cons_slot_fb->u.offset; vm_cons_class_offset = vm_cons_class_fb->u.offset; vm_cons_param_offset = vm_cons_param_fb->u.offset; vm_cons_cons_offset = vm_cons_cons_fb->u.offset; vm_mthd_slot_offset = vm_mthd_slot_fb->u.offset; vm_mthd_class_offset = vm_mthd_class_fb->u.offset; vm_mthd_ret_offset = vm_mthd_ret_fb->u.offset; vm_mthd_param_offset = vm_mthd_param_fb->u.offset; vm_mthd_m_offset = vm_mthd_m_fb->u.offset; vm_fld_slot_offset = vm_fld_slot_fb->u.offset; vm_fld_class_offset = vm_fld_class_fb->u.offset; vm_fld_type_offset = vm_fld_type_fb->u.offset; vm_fld_f_offset = vm_fld_f_fb->u.offset; cons_cons_offset = cons_cons_fb->u.offset; mthd_m_offset = mthd_m_fb->u.offset; fld_f_offset = fld_f_fb->u.offset; acc_flag_offset = acc_flag_fb->u.offset; registerStaticClassRefLocked(&class_array_class, cls_ary_cls); registerStaticClassRefLocked(&cons_array_class, cons_ary_cls); registerStaticClassRefLocked(&method_array_class, mthd_ary_cls); registerStaticClassRefLocked(&field_array_class, fld_ary_cls); registerStaticClassRefLocked(&cons_reflect_class, cons_ref_cls); registerStaticClassRefLocked(&vmcons_reflect_class, vm_cons_cls); registerStaticClassRefLocked(&method_reflect_class, mthd_ref_cls); registerStaticClassRefLocked(&vmmethod_reflect_class, vm_mthd_cls); registerStaticClassRefLocked(&field_reflect_class, fld_ref_cls); registerStaticClassRefLocked(&vmfield_reflect_class, vm_fld_cls); return inited = TRUE; }