Re: OSUser and Hibernate: couple of questions
"Ilja" <[email protected]>
| Newsgroups | gmane.comp.java.open-symphony.devel |
|---|---|
| Message-ID | <[email protected]> |
Sorry, but I really don't understand anything from your code, can you
give me a more concrete and simple example?
First of all: do I need to change hibernate mapping files if I want to
add new properties?
Second: when I retrieve a user through the UserManager will it
automatically retreive this custom properties as well?
Third: how do I set these properties in a simple manner, ie:
user.setSex("M"), user.setLocation("Netherlands") etc... and the opposite
for retreiving
How do I let osuser know which properties are required on top of the
default ones?
Sorry for asking, but osuser really lacks any documentation for this,
Ilja
ps: are osaccess and osuser being worked on or is this project standing
still?
On Mon, 6 Oct 2003 04:20:30 -0700 (PDT), "Konstantin Priblouda"
<[email protected]> said:
>
> --- Ilja <[email protected]> wrote:
> > Thanks,
> >
> > Can you give me directions on how to use propertyset
> > to store other
> > user-information? I'm desperately looking on how to
> > do it, osuser seems
> > to be perfect and if this is possible it would be
> > awsome
> >
> > And how do you instantly save a user with all his
> > information directly?
> > Without first saving only a username, now you have
> > to save it first and
> > then update it....
> >
>
> Of course I have first to create my user/group,
> and then save properties there.
>
>
>
> That's my 2 methods allowing
> marshalling/unmarschalling of generic java bean into
> user / group properties
> ( Entity happens to be base interface for bothz user &
> group ). You owe me a beer :)
> ---%<------------------
> /**
> * populate bean with properties from entity
> *
> * @param entity
> Description of Parameter
> * @param bean
> Description of Parameter
> * @exception IllegalAccessException
> Description of Exception
> * @exception InvocationTargetException
> Description of Exception
> */
> public static void populateBean(Entity entity,
> Object bean) throws IllegalAccessException,
> InvocationTargetException {
> PropertySet properties =
> entity.getPropertySet();
> BeanIntrospectorPropertySet beanSet = new
> BeanIntrospectorPropertySet();
> beanSet.setBean(bean);
>
> _log.debug("looking for properties starting
> with: " + bean.getClass().getName());
> Collection keys =
> properties.getKeys(bean.getClass().getName());
> int offset =
> bean.getClass().getName().length() + 1;
>
> String key;
> for (Iterator iter = keys.iterator();
> iter.hasNext(); ) {
> key = (String) iter.next();
> if (_log.isDebugEnabled()) {
> _log.debug("setting property : " +
> key.substring(offset));
> }
>
> beanSet.setAsActualType(key.substring(offset),
> properties.getAsActualType(key));
> }
>
> }
>
>
> /**
> * save properties for this entity
> *
> * @param entity entity to
> associate data with
> * @param bean bean
> holding those properties
> * @exception IllegalAccessException
> Description of Exception
> * @exception InvocationTargetException
> Description of Exception
> * @exception NoSuchMethodException
> Description of Exception
> */
> public static void saveBean(Entity entity, Object
> bean) throws IllegalAccessException,
> InvocationTargetException,
> NoSuchMethodException {
> PropertySet property =
> entity.getPropertySet();
> BeanIntrospectorPropertySet beanSet = new
> BeanIntrospectorPropertySet();
> beanSet.setBean(bean);
>
> String prefix = bean.getClass().getName() +
> ".";
>
> for (Iterator ii =
> property.getKeys(prefix).iterator(); ii.hasNext(); ) {
> property.remove((String) ii.next());
> }
> String key;
> String newKey;
> for (Iterator iter =
> beanSet.getKeys().iterator(); iter.hasNext(); ) {
> key = (String) iter.next();
>
> if (!beanSet.isSettable(key)) {
> continue;
> }
> if (_log.isDebugEnabled()) {
> _log.debug("property " + key + " is
> settable. saving it");
> }
> newKey = prefix + key;
>
> Object obj = beanSet.getAsActualType(key);
>
> if (property.exists(newKey)) {
> _log.debug("property exists, remove it
> first");
> property.remove(newKey);
> }
> if (obj != null) {
> // need saving only if not null
> _log.debug("really saving...");
> property.setAsActualType(newKey, obj);
> }
>
> }
> }
>
> ---%<----------------
>
>
> =====
> ----[ Konstantin Pribluda ( ko5tik ) ]----------------
> Zu Verstärkung meines Teams suche ich ab Sofort einen
> Softwareentwickler[In] für die Festanstellung.
> Arbeitsort: Mainz
> Skills: Programieren, Kentnisse in OpenSource-Bereich
> ----[ http://www.pribluda.de ]------------------------
>
> __________________________________
> Do you Yahoo!?
> The New Yahoo! Shopping - with improved product search
> http://shopping.yahoo.com
>
>
> -------------------------------------------------------
> This sf.net email is sponsored by:ThinkGeek
> Welcome to geek heaven.
> http://thinkgeek.com/sf
> _______________________________________________
> Opensymphony-developers mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/opensymphony-developers
>
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf