Execute all recorded actions on the given session. @param session Target session @param notifyListeners Whether to notify session listeners
(DeltaSession session, boolean notifyListeners)
| 295 | * @param notifyListeners Whether to notify session listeners |
| 296 | */ |
| 297 | public void execute(DeltaSession session, boolean notifyListeners) { |
| 298 | if (!this.sessionId.equals(session.getId())) { |
| 299 | throw new IllegalArgumentException(sm.getString("deltaRequest.ssid.mismatch")); |
| 300 | } |
| 301 | session.access(); |
| 302 | for (AttributeInfo info : actions) { |
| 303 | switch (info.getType()) { |
| 304 | case TYPE_ATTRIBUTE: |
| 305 | if (info.getAction() == ACTION_SET) { |
| 306 | if (log.isTraceEnabled()) { |
| 307 | log.trace("Session.setAttribute('" + info.getName() + "', '" + info.getValue() + "')"); |
| 308 | } |
| 309 | session.setAttribute(info.getName(), info.getValue(), notifyListeners, false); |
| 310 | } else { |
| 311 | if (log.isTraceEnabled()) { |
| 312 | log.trace("Session.removeAttribute('" + info.getName() + "')"); |
| 313 | } |
| 314 | session.removeAttribute(info.getName(), notifyListeners, false); |
| 315 | } |
| 316 | |
| 317 | break; |
| 318 | case TYPE_ISNEW: |
| 319 | if (log.isTraceEnabled()) { |
| 320 | log.trace("Session.setNew('" + info.getValue() + "')"); |
| 321 | } |
| 322 | session.setNew(((Boolean) info.getValue()).booleanValue(), false); |
| 323 | break; |
| 324 | case TYPE_MAXINTERVAL: |
| 325 | if (log.isTraceEnabled()) { |
| 326 | log.trace("Session.setMaxInactiveInterval('" + info.getValue() + "')"); |
| 327 | } |
| 328 | session.setMaxInactiveInterval(((Integer) info.getValue()).intValue(), false); |
| 329 | break; |
| 330 | case TYPE_PRINCIPAL: |
| 331 | Principal p = null; |
| 332 | if (info.getAction() == ACTION_SET) { |
| 333 | p = (Principal) info.getValue(); |
| 334 | } |
| 335 | session.setPrincipal(p, false); |
| 336 | break; |
| 337 | case TYPE_AUTHTYPE: |
| 338 | String authType = null; |
| 339 | if (info.getAction() == ACTION_SET) { |
| 340 | authType = (String) info.getValue(); |
| 341 | } |
| 342 | session.setAuthType(authType, false); |
| 343 | break; |
| 344 | case TYPE_LISTENER: |
| 345 | SessionListener listener = (SessionListener) info.getValue(); |
| 346 | if (info.getAction() == ACTION_SET) { |
| 347 | session.addSessionListener(listener, false); |
| 348 | } else { |
| 349 | session.removeSessionListener(listener, false); |
| 350 | } |
| 351 | break; |
| 352 | case TYPE_NOTE: |
| 353 | if (info.getAction() == ACTION_SET) { |
| 354 | if (log.isTraceEnabled()) { |