@Override
 public String[] saveUserConfig(UserDetails user, String[] config) throws ApsSystemException {
   if (null == user) {
     ApsSystemUtils.getLogger().info("Required operation for null user");
     return null;
   }
   try {
     config = this.checkShortcutConfig(user, config);
     String xml = UserShortcutConfigDOM.createUserConfigXml(config);
     this.getUserShortcutDAO().saveUserConfig(user.getUsername(), xml);
   } catch (Throwable t) {
     ApsSystemUtils.logThrowable(t, this, "saveUserConfig");
     throw new ApsSystemException("Error saving user config by user " + user.getUsername(), t);
   }
   return config;
 }
 @Override
 public String[] getUserConfig(UserDetails user) throws ApsSystemException {
   String[] config = null;
   if (null == user) {
     ApsSystemUtils.getLogger().info("Required shortcut config for null user");
     return null;
   }
   try {
     String xml = this.getUserShortcutDAO().loadUserConfig(user.getUsername());
     config = UserShortcutConfigDOM.extractUserConfig(xml, this.getUserShortcutsMaxNumber());
     config = this.checkShortcutConfig(user, config);
   } catch (Throwable t) {
     ApsSystemUtils.logThrowable(t, this, "getUserConfig");
     throw new ApsSystemException("Error loading user config", t);
   }
   return config;
 }