Ejemplo n.º 1
0
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;
}
Ejemplo n.º 3
0
const FieldData *
Options::lookupField( const SimpleArg &arg ) const
{
    return lookupField( arg.Arg() );
}
Ejemplo n.º 4
0
/**
* Установить значение поля
*/
void AdHocCommand::setFieldValue(const char *name, const char *value)
{
	TagHelper field = lookupField(name);
	field["value"] = value;
}
Ejemplo n.º 5
0
/**
* Установить тип поля
*/
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);
}
Ejemplo n.º 6
0
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;
}