Mercurial > dive4elements > framework
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 } |