@Override
 public void setBeanName(String aName) {
   try {
     if (beanName != null) {
       StaticContext.unbind(beanName);
     }
     beanName = aName;
     if (beanName != null) {
       StaticContext.bind(beanName, this);
     }
   } catch (Exception e) {
     throw new IllegalStateException(e);
   }
 }