comparison artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java @ 348:f2277458823e

Enabled 'post-describe' hooks for Artifacts. artifacts/trunk@3176 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 07 Nov 2011 16:40:01 +0000
parents 542caebea773
children 9798e4d83681
comparison
equal deleted inserted replaced
347:16ab243507e0 348:f2277458823e
442 /** 442 /**
443 * Hooks that are executed after an artifact has advanced. 443 * Hooks that are executed after an artifact has advanced.
444 */ 444 */
445 protected List<Hook> postAdvanceHooks; 445 protected List<Hook> postAdvanceHooks;
446 446
447 /**
448 * Hooks that are executed after an artifact's describe() operation was
449 * called.
450 */
451 protected List<Hook> postDescribeHooks;
452
447 protected List<LifetimeListener> lifetimeListeners; 453 protected List<LifetimeListener> lifetimeListeners;
448 454
449 /** 455 /**
450 * Default constructor. 456 * Default constructor.
451 */ 457 */
509 515
510 public void setPostAdvanceHook(List<Hook> postAdvanceHooks) { 516 public void setPostAdvanceHook(List<Hook> postAdvanceHooks) {
511 this.postAdvanceHooks = postAdvanceHooks; 517 this.postAdvanceHooks = postAdvanceHooks;
512 } 518 }
513 519
520 public void setPostDescribeHook(List<Hook> postDescribeHooks) {
521 this.postDescribeHooks = postDescribeHooks;
522 }
523
514 /** 524 /**
515 * Used to extract the artifact collection factory from bootstrap. 525 * Used to extract the artifact collection factory from bootstrap.
516 * 526 *
517 * @param bootstrap The bootstrap parameters. 527 * @param bootstrap The bootstrap parameters.
518 */ 528 */
556 566
557 567
558 protected void setupHooks(FactoryBootstrap bootstrap) { 568 protected void setupHooks(FactoryBootstrap bootstrap) {
559 setPostFeedHook(bootstrap.getPostFeedHooks()); 569 setPostFeedHook(bootstrap.getPostFeedHooks());
560 setPostAdvanceHook(bootstrap.getPostAdvanceHooks()); 570 setPostAdvanceHook(bootstrap.getPostAdvanceHooks());
571 setPostDescribeHook(bootstrap.getPostDescribeHooks());
561 } 572 }
562 573
563 protected void setupBackendListeners(FactoryBootstrap bootstrap) { 574 protected void setupBackendListeners(FactoryBootstrap bootstrap) {
564 logger.debug("setupBackendListeners"); 575 logger.debug("setupBackendListeners");
565 List<BackendListener> bls = bootstrap.getBackendListeners(); 576 List<BackendListener> bls = bootstrap.getBackendListeners();
845 CallContext.TOUCH, 856 CallContext.TOUCH,
846 callMeta, 857 callMeta,
847 artifact); 858 artifact);
848 859
849 try { 860 try {
850 return artifact.getArtifact().describe(data, cc); 861 Artifact art = artifact.getArtifact();
862 Document res = art.describe(data, cc);
863
864 if (postDescribeHooks != null) {
865 for (Hook hook: postDescribeHooks) {
866 hook.execute(art, cc, res);
867 }
868 }
869
870 return res;
851 } 871 }
852 finally { 872 finally {
853 cc.postCall(); 873 cc.postCall();
854 } 874 }
855 } 875 }

http://dive4elements.wald.intevation.org