"scott.stark(a)jboss.org" wrote : There was the question of primative types vs
SimpleMetaType and whether the ManagedProperty should be accepting primatives and
autoboxing these into SimpleValues. I think we should look into doing this.
|
| The question also came up of enforcing a check against the
ManagedProperty.getMetaType().isValue(Object) for the values passed into
ManagedProperty.setValue(Object). Could be done with aop, but I don't think we can
assume jboss aop is available/used in the admin client. It could also be done via a
wrapping proxy that imposed this behavior, as well as the autoboxing.
|
Looking at this piece of horrible code - which I added :-( - we really must clear up the
confusion about this values/types.
| // TODO - decide what is the type of value when we set it
| // since currently get always returns MetaValue, but we see some cases
| // where plain Serializable is enough
| Serializable serializable;
| MetaValue metaValue;
| Object value = prop.getValue();
| if (value instanceof MetaValue)
| {
| metaValue = (MetaValue)value;
| MetaType metaType = metaValue.getMetaType();
| if (metaType.isSimple())
| serializable = ((SimpleValue)metaValue).getValue();
| else if (metaType.isGeneric())
| serializable = ((GenericValue)metaValue).getValue();
| else
| serializable = null;
| }
| else
| {
| serializable = (Serializable)value;
| metaValue = MetaValueFactory.getInstance().create(value);
| }
|
| if(serializable != null)
| ctxProp.setValue(serializable);
| // todo - should this also dispatch to runtime component?
| Object componentName = getComponentName(ctxProp);
| if (componentName != null)
| dispatcher.set(componentName, ctxProp.getName(), metaValue);
|
I would expect a ManagedProperty to take MetaValue (so that it can also take
non-serializable 'composite' values) and a runtime dispatcher to take plain object
value.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4114940#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...