Skip to content
This repository has been archived by the owner on Sep 27, 2022. It is now read-only.

07-Proxy, Федоров Андрей, 393 группа #470

Merged
merged 4 commits into from
Dec 21, 2014

Conversation

AndreosGhost
Copy link
Contributor

proxy - coverage

И да, теперь JSON реализован с нормальными символами экранирования \.

@seregakol007
Copy link
Contributor

DBTableProvider:
1)

final class DBTableProvider implements AutoCloseableProvider {
    public static final char ESCAPE_CHARACTER = '\\';
    private static final char QUOTE_CHARACTER = '\"';
    //    public static final String QUOTED_STRING_REGEX =
    //            Utility.getQuotedStringRegex(QUOTE_CHARACTER + "", ESCAPE_CHARACTER + "" +
    // ESCAPE_CHARACTER);

а также

    public Storeable deserialize(Table table, String value) throws ParseException {
        try (UseLock useLock = validityController.use()) {
            Utility.checkNotNull(table, "Table");
            Utility.checkNotNull(value, "Value");

            //            String partRegex = "null|true|false|-?[0-9]+(\\.[0-9]+)?";
            //            partRegex += "|" + QUOTED_STRING_REGEX;
            //            partRegex = "\\s*(" + partRegex + ")\\s*";
            //            String regex = "^\\s*\\[" + partRegex + "(," + partRegex + ")*" + "\\]\\s*$";
            //
            //            if (!value.matches(regex)) {
            //                throw new ParseException(
            //                        "wrong type (Does not match JSON simple list regular expression)", -1);
            //            }
            //

и

строки 284-356

вроде закомментированный код не принято пулить, либо надо в комментариях объяснить, почему так вышло.
2)

    private static final Collection<Class<?>> SUPPORTED_TYPES = new ConvenientCollection<>(
            new HashSet<Class<?>>()).addNext(Integer.class).addNext(Long.class).addNext(Byte.class)
                                    .addNext(Double.class).addNext(Float.class).addNext(Boolean.class)
                                    .addNext(String.class);

HashSet< Class < ? > > лучше diamond types HashSet<>
3)

    private static final Map<Class<?>, Function<String, Object>> PARSERS =
            new ConvenientMap<>(new HashMap<Class<?>, Function<String, Object>>())

аналогично

@seregakol007
Copy link
Contributor

StoreableTableImpl:

this.columnTypes = Collections.unmodifiableList(new ArrayList<Class<?>>(columnTypes));

желателен diamond types

@seregakol007
Copy link
Contributor

класс ArrayMatcher можно наверно удалить

@seregakol007
Copy link
Contributor

Может я не туда смотрю, но после работы с БД у меня в System.getProperty("user.home") появляется файл с логом, который достаточно далек от заданного формата логов.

@AndreosGhost
Copy link
Contributor Author

Это мой давнишний лог, отключу его. Лог, который нужен, появляется в той же директории, откуда исполняется программа.

@AndreosGhost
Copy link
Contributor Author

Закомментированный код просто забыл удалить)

@AndreosGhost
Copy link
Contributor Author

Diamond types не везде можно применить - не скомилится. Где возможно, применю.

@@ -0,0 +1,8 @@
package ru.fizteh.fivt.students.fedorov_andrew.databaselibrary.db;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Пиши, пожалуйста, комментарии к коду в таком стиле, т.к. в таком случае можно писать ответ в том же месте.

@AndreosGhost
Copy link
Contributor Author

Some fixes & improvements:
#562


/**
* Serializes an object using JSON-style.<br/>
* If cyclic link found, 'cyclic' is printed instead of cyclic description of the object.<br/>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не лучше ли бросать исключение в этом случае? Ведь пользователь библиотеки будет думать, что всё корректно сериализовалось, а на самом деле - нет.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Есть куча классов из стандартной Java. Я же не могу их всех аннотировать. Но большая их часть выводит нечто осмысленное в toString().

vpavlenko added a commit that referenced this pull request Dec 21, 2014
07-Proxy, Федоров Андрей, 393 группа
@vpavlenko vpavlenko merged commit 7410e57 into dkomanov:master Dec 21, 2014
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants