comparison artifact-database/src/main/java/de/intevation/artifactdatabase/ArtifactDatabaseImpl.java @ 246:a8a06bbe306c

Added calls to call init/close for call contextes. artifacts/trunk@1686 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 14 Apr 2011 11:18:10 +0000
parents 16cd059945e5
children 3a1209f214f5
comparison
equal deleted inserted replaced
245:def3daabc5b5 246:a8a06bbe306c
271 271
272 ArtifactCallContext cc = new ArtifactCallContext( 272 ArtifactCallContext cc = new ArtifactCallContext(
273 ArtifactDatabaseImpl.this, 273 ArtifactDatabaseImpl.this,
274 CallContext.TOUCH, 274 CallContext.TOUCH,
275 callMeta, 275 callMeta,
276 context,
277 artifact); 276 artifact);
278 277
279 try { 278 try {
280 artifact.getArtifact().out(format, output, cc); 279 artifact.getArtifact().out(format, output, cc);
281 } 280 }
334 333
335 CollectionCallContext cc = new CollectionCallContext( 334 CollectionCallContext cc = new CollectionCallContext(
336 ArtifactDatabaseImpl.this, 335 ArtifactDatabaseImpl.this,
337 CallContext.TOUCH, 336 CallContext.TOUCH,
338 callMeta, 337 callMeta,
339 context,
340 collection); 338 collection);
341 339
342 try { 340 try {
343 collection.out(format, output, cc); 341 collection.out(format, output, cc);
344 } 342 }
636 634
637 ArtifactCallContext cc = new ArtifactCallContext( 635 ArtifactCallContext cc = new ArtifactCallContext(
638 ArtifactDatabaseImpl.this, 636 ArtifactDatabaseImpl.this,
639 CallContext.NOTHING, 637 CallContext.NOTHING,
640 callMeta, 638 callMeta,
641 context,
642 persistentArtifact); 639 persistentArtifact);
643 640
644 try { 641 try {
645 return artifact.describe(null, cc); 642 return artifact.describe(null, cc);
646 } 643 }
665 662
666 ArtifactCallContext cc = new ArtifactCallContext( 663 ArtifactCallContext cc = new ArtifactCallContext(
667 ArtifactDatabaseImpl.this, 664 ArtifactDatabaseImpl.this,
668 CallContext.TOUCH, 665 CallContext.TOUCH,
669 callMeta, 666 callMeta,
670 context,
671 artifact); 667 artifact);
672 668
673 try { 669 try {
674 return artifact.getArtifact().describe(data, cc); 670 return artifact.getArtifact().describe(data, cc);
675 } 671 }
694 690
695 ArtifactCallContext cc = new ArtifactCallContext( 691 ArtifactCallContext cc = new ArtifactCallContext(
696 ArtifactDatabaseImpl.this, 692 ArtifactDatabaseImpl.this,
697 CallContext.STORE, 693 CallContext.STORE,
698 callMeta, 694 callMeta,
699 context,
700 artifact); 695 artifact);
701 696
702 try { 697 try {
703 return artifact.getArtifact().advance(target, cc); 698 return artifact.getArtifact().advance(target, cc);
704 } 699 }
719 714
720 ArtifactCallContext cc = new ArtifactCallContext( 715 ArtifactCallContext cc = new ArtifactCallContext(
721 ArtifactDatabaseImpl.this, 716 ArtifactDatabaseImpl.this,
722 CallContext.STORE, 717 CallContext.STORE,
723 callMeta, 718 callMeta,
724 context,
725 artifact); 719 artifact);
726 720
721 initCallContext(cc);
727 try { 722 try {
728 return artifact.getArtifact().feed(data, cc); 723 return artifact.getArtifact().feed(data, cc);
729 } 724 }
730 finally { 725 finally {
731 cc.postCall(); 726 cc.postCall();
727 closeCallContext(cc);
732 } 728 }
733 } 729 }
734 730
735 public DeferredOutput out( 731 public DeferredOutput out(
736 String identifier, 732 String identifier,
924 920
925 ArtifactCallContext cc = new ArtifactCallContext( 921 ArtifactCallContext cc = new ArtifactCallContext(
926 ArtifactDatabaseImpl.this, 922 ArtifactDatabaseImpl.this,
927 CallContext.NOTHING, 923 CallContext.NOTHING,
928 callMeta, 924 callMeta,
929 context,
930 persistentArtifact); 925 persistentArtifact);
931 926
932 try { 927 try {
933 return artifact.describe(input, cc); 928 return artifact.describe(input, cc);
934 } 929 }
1237 if (c == null) { 1232 if (c == null) {
1238 logger.warn("No collection found with identifier: " + collectionId); 1233 logger.warn("No collection found with identifier: " + collectionId);
1239 throw new ArtifactDatabaseException(NO_SUCH_COLLECTION); 1234 throw new ArtifactDatabaseException(NO_SUCH_COLLECTION);
1240 } 1235 }
1241 1236
1242 CallContext cc = new CollectionCallContext( 1237 CollectionCallContext cc = new CollectionCallContext(
1243 ArtifactDatabaseImpl.this, 1238 ArtifactDatabaseImpl.this,
1244 CallContext.NOTHING, 1239 CallContext.NOTHING,
1245 callMeta, 1240 callMeta,
1246 context,
1247 c); 1241 c);
1248 1242
1249 return c.describe(cc); 1243 try {
1244 return c.describe(cc);
1245 }
1246 finally {
1247 cc.postCall();
1248 }
1249
1250 } 1250 }
1251 1251
1252 public Document getCollectionAttribute(String collectionId, String artifactId, 1252 public Document getCollectionAttribute(String collectionId, String artifactId,
1253 CallMeta callMeta) throws ArtifactDatabaseException 1253 CallMeta callMeta) throws ArtifactDatabaseException
1254 { 1254 {
1428 if (c == null) { 1428 if (c == null) {
1429 logger.warn("No collection found with identifier: " + collectionId); 1429 logger.warn("No collection found with identifier: " + collectionId);
1430 throw new ArtifactDatabaseException(NO_SUCH_COLLECTION); 1430 throw new ArtifactDatabaseException(NO_SUCH_COLLECTION);
1431 } 1431 }
1432 1432
1433 CallContext cc = new CollectionCallContext( 1433 CollectionCallContext cc = new CollectionCallContext(
1434 ArtifactDatabaseImpl.this, 1434 ArtifactDatabaseImpl.this,
1435 CallContext.NOTHING, 1435 CallContext.NOTHING,
1436 callMeta, 1436 callMeta,
1437 context,
1438 c); 1437 c);
1439 1438
1440 return new DeferredCollectionOutputImpl(c, format, callMeta); 1439 try {
1440 return new DeferredCollectionOutputImpl(c, format, callMeta);
1441 }
1442 finally {
1443 cc.postCall();
1444 }
1445 }
1446
1447 protected void initCallContext(CallContext cc) {
1448 logger.info("Implement me!");
1449 }
1450
1451 protected void closeCallContext(CallContext cc) {
1452 logger.info("Implement me!");
1441 } 1453 }
1442 } 1454 }
1443 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : 1455 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org