Java-Библиотека Padeg — Новогодний Подарок Хабру

Да-да, это та же самая библиотека Padeg.dll, но она работает везде, где есть Java. Авторы Плахов Сергей Владимирович aka Seer и Геннадий Покаташкин На самом деле история проста.

Все началось в 2007 году, когда мне срочно понадобилось указать свое ФИО и должность для корпоративного проекта.

В принципе, этот функционал не входил в требования заказчика, но «плюшки» были необходимы, и автоматические склонения — лишь одна из плюшек.

Довольно быстро нам удалось связаться с одним из авторов библиотеки и после передачи небольшой суммы был получен исходный код на Delphi, который затем был портирован на JAVA. По первоначальной задумке исходные коды Java и Delphi должны были быть максимально идентичными, чтобы в дальнейшем можно было вносить параллельные правки.

Сделано это было так: мы взяли исходный код Delphi, изменили расширения pas→java и добавили в проект. Далее последовало редактирование синтаксиса.

Но на самом деле код Delphi пришлось сильно рефакторить, так как он состоял в основном из многоэтажных if и внутренних процедур, содержал глобальные переменные и не подходил для многопоточной работы.

Как бы то ни было, библиотеку портировали.

Когда меня спросили об авторских правах, мне разрешили делать с результатом все, что я хотел, но поскольку библиотека Delphi распространялась на условиях условно-бесплатного ПО, я не публиковал Java-порт. С тех пор прошло 5 лет, и я думаю, этого достаточно, чтобы один человек пользовался инструментом, который можно использовать в хозяйстве отечественного Java-разработчика.

К тому же праздник уже не за горами.

Так что скачайте



Техническая информация

Библиотека совместима с java 1.5, но в принципе ничто не мешает нам сделать порт на предыдущие версии java. Нужно будет только убрать коллекционную типизацию и еще немного повозиться с многопоточностью (для работы со словарем исключений использовались летучие переменные); API сделан максимально похожим на API Padeg.dll; Кодировка ресурсов, содержащихся в библиотеке, — windows-1251 (для совместимости с оригинальной библиотекой).

Если вам нужно подключить внешний файл исключений, он также должен быть в кодировке Windows-1251. Также есть возможность загрузки исключений с помощью итератора, например из таблицы БД (

  
   

Iterator<String>

).

Тестовое приложение можно посмотреть по адресу Опеншифт ; Сама библиотека тоже есть (хабрарепозиторий принимает только картинки, поэтому скачивать библиотеку придется напрямую с ресурсов тестового приложения).

Исходный код тестового приложения

import java.io.Serializable; import java.util.ArrayList; import java.util.List; import javax.faces.bean.ManagedBean; import javax.faces.model.SelectItem; import padeg.lib.Padeg; @ManagedBean public class PadegBean implements Serializable {

Теги: #java;delphi;padeg;булочки #java #delphi

Вместе с данным постом часто просматривают: