Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как сделать лучше? ..нужен совет.. 
:(
    Опции темы
polosatij
  Дата 15.7.2005, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 1
Всего: 8



прет сем =)

работаю сейчас с ASTом от ЯВы.. и столкнулся с двумя путями решения.. первый (так как делают "нормальные люди") и второй, так как делают те, у кого мало времени или нервов на изучение материала.

так это делают первые (кусок кода):

Код


package com.appperfect.codeanalyzer.engine.rules;

import com.appperfect.common.util.h;
import com.appperfect.devcommon.engine.parser.IType;
import com.appperfect.devcommon.engine.parser.nodes.CABaseNode;
import com.appperfect.devcommon.engine.parser.nodes.VariableNode;
import java.lang.reflect.Modifier;

// Referenced classes of package com.appperfect.codeanalyzer.engine.rules:
//            IRule, IViolationListener

public class Do_not_use_public_static_final_array_fields
    implements IRule
{

    public Do_not_use_public_static_final_array_fields()
    {
    }

    public int[] getContextIds()
    {
        return (new int[] {
            10
        });
    }

    public void evaluate(CABaseNode cabasenode, IViolationListener iviolationlistener)
    {
        try
        {
            VariableNode variablenode = (VariableNode)cabasenode;
            IType itype = variablenode.getDataType();
            if(itype != null && itype.isArray())
            {
                int i = variablenode.getModifiers();
                if(Modifier.isFinal(i) && Modifier.isPublic(i) && Modifier.isStatic(i))
                    iviolationlistener.violationFound(cabasenode);
            }
        }
        catch(Throwable throwable)
        {
            h.a("codeanalyzer.engine.rules.Do_not_use_public_static_final_array_fields", 1, "while evaluating: " + cabasenode.getFileName() + ": original line number=" + cabasenode.getLineNumber(), throwable, 1);
        }
    }

    public void reset()
    {
    }

    private static final transient String hN = "codeanalyzer.engine.rules.Do_not_use_public_static_final_array_fields";
}


не пойму, наФига так городить методу "evaluate"? Это ещё маленький примерчик, где-то
я видел, вообще без пол литра не разобраться smile
вот моё решение методы "evaluate":

Код

        if (Pattern.matches(".*public static final.*[].*", cabasenode.toString())) {
            iviolationlistener.violationFound(cabasenode);
        }


ВСЁ smile

может это пятница? и я чего-то не понимаю в конце этой недели smile

..почёсываю тыковку smile

Это сообщение отредактировал(а) polosatij - 15.7.2005, 19:19


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0421 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.