Hledáte rychlou XML perzistenci?
Potřebujete předávat v kódu odkaz na metody JavaBean?
Tvoříte tenkého klienta?
Použijte UJO Framework!
UJO Framework je Java knihovna, která poskytuje netradiční architekturu objektů
odlišných od JavaBeans. Původní nápad vznikl jako hříčka s generickými datovými typy Java 5.0,
postupem času se však ukázalo, že architektura má několik zajímavých vlastností. Současná verze frameworku nabízí:
- otevřený kód
- revoluční architektura objektu postavená na dvou rozhraních, která zjednodušuje manipulaci objektů pomocí sestavovacího nástroje aplikace při zachování výborné rychlosti
- výkonná XML serializace
- CSV serializace
- Resource bundle serializace
- podpora komponenty JTable
- objekt si řídí sám dostupnost svých atributů
- property listener je možné implementovat na jednom místě pro všechny property třídy včetně potomků
- podpora JavaBeans
- úsporný zdrojový kód vašich UJO objektů
- kontrola unitovými testy
- malá velikost frameworku bez dalších závislostí
- UjoProperty.setValue(Ujo, VALUE) - pro zápis hodnoty do objektu a
- UjoProperty.getValue(Ujo) - pro čtení hodnoty.
- MapUjo - snadná implementace pro vývojáře s dostatečným výkonem pro běžné aplikace postavená na objektu HashMap
- ArrayUjo - špičkový výkon objektů je srovnatelný s rychlostí zápisu do JavaBeans, je implementovaný pomocí pole objektů
- PojoUjo - tato implementace mapuje klíče přímo na metody objektu JavaBean pomocí Java reflexe
Více informací ...
Příklad použití:
Poznámka: česká verze tohoto dokumentu už nepopisuje nové vlastnosti UJO Framewokru implementované od verze 0.80. Pokud vás zajímají i tyto nové vlastnosti, přepněte se, prosím, na anglickou verzi.
Jak napíšeme třídu objektu UJO? Nejrychlejší cesta je využít nějakou abstraktní implementaci UJO z tohoto projektu, pomocí pár řádů kódu však můžeme vyrobit i implementaci vlastní. Příkladem může být implementace třídy Person, která obsahuje tři atributy a jednu metodu pro změnu hotovosti.import org.ujoframework.implementation.map.*; public class Person extends MapUjo { public static final MapProperty<Person, String > NAME = newProperty("Name", String.class); public static final MapProperty<Person, Boolean> MALE = newProperty("Male", Boolean.class); public static final MapProperty<Person, Double > CASH = newProperty("Cash", 0d); public void addCash(double cash) { double newCash = CASH.of(this) + cash; CASH.setValue(this, newCash); } }Pokračování ...
Referenční projekty:
Referenční implementací je Swingový projekt JWorkSheet, který vytvořil autor UJO Frameworku a který je zveřejněn pod otevřenou licencí na domovské stránce http://jworksheet.pponec.net/. Aplikace jWorkSheet slouží k měření vašeho času stráveného na projektech.Na zdrojových kódech lze studovat využití perzistence UJO objektů stejně tak jako snadné propojení kolekce UJO objektů na grafickou komponentou JTable. K dispozici je API projektu ve formátu JavaDoc.
Vlastnosti aplikace JWorkSheet:
- veškerá persistence je realizovaná pomocí frameworku UJO. V projektu se používá ukládání do formátu XML, parametry se ukládají do formátu Resource Bundle.
- všechny datové modely objektu JTable jsou buď přímo instancí, nebo potomkem třídy UjoTableModel .
- zajímavá je malá velikost aplikace jWorkSheet, zabírá přibližně 160 kB včetně knihovny UJO Framework.
Licence:
Kód byl uvolněn pod licencí Apache License, Version 2.0.
Copyright 2007 Pavel Ponec
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
O autorovi:
- Pro připomínky, dotazy či jiné zprávy můžete použít blog http://ujoframework-cs.blogspot.com/.
- Na domovské stránce autora lze najít některé jeho další volně šiřitelné programy a jiné informace, odkaz je: http://pponec.net/ .
- Technická podpora: ujoframework@gmail.com
PPone(c) 2007-2008
UJO Framework