*/
public Map getPersistentAspectDatas(Aspectalizable owner) {
Map datas = new HashMap();
Iterator iter = this.description.getAspectDescriptions().iterator();
while ( iter.hasNext() ) {
AspectDescription current = (AspectDescription)iter.next();
// lookup storage
AspectDataStore store = null;
Object data = null;
try {
store = (AspectDataStore)this.storeSelector.select(current.getStoreName());
if ( store.isPersistent() ) {
data = store.getAspectData(owner, current.getName());
if ( data == null && current.isAutoCreate() ) {
data = AspectUtil.createNewInstance(current);
store.setAspectData( owner, current.getName(), data );
}
if ( data != null ) {
datas.put( current.getName(), data );
}
}
} catch (ServiceException ce) {
throw new CascadingRuntimeException("Unable to lookup aspect data store " + current.getStoreName(), ce);
} finally {
this.storeSelector.release( store );
}
}