diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/AnnotationFacet.java @ 2144:a4bdf7d8527e

Use FastAnnotations for LocationProvider. flys-artifacts/trunk@3723 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 19 Jan 2012 13:43:58 +0000
parents 59622ba800c8
children df70f14af981
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/AnnotationFacet.java	Thu Jan 19 13:09:00 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/AnnotationFacet.java	Thu Jan 19 13:43:58 2012 +0000
@@ -1,6 +1,7 @@
 package de.intevation.flys.artifacts.model;
 
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 
 import org.apache.log4j.Logger;
@@ -11,14 +12,21 @@
 import de.intevation.artifacts.CallContext;
 
 import de.intevation.flys.artifacts.AnnotationArtifact;
+
 import de.intevation.flys.jfree.FLYSAnnotation;
 import de.intevation.flys.jfree.StickyAxisAnnotation;
 
 import de.intevation.flys.model.Annotation;
+import de.intevation.flys.model.FastAnnotations;
 
 import de.intevation.artifactdatabase.state.DefaultFacet;
 import de.intevation.artifactdatabase.state.Facet;
 
+import de.intevation.flys.utils.FLYSUtils;
+
+import de.intevation.flys.artifacts.FLYSArtifact;
+
+
 /**
  * Facet to access Annotations (landmarks, POIs) of a river.
  */
@@ -58,13 +66,20 @@
     public Object getData(Artifact artifact, CallContext context) {
         AnnotationArtifact annotationArtifact = (AnnotationArtifact) artifact;
 
-        List<Annotation>       as = annotationArtifact.getAnnotations();
-        List<XYTextAnnotation> xy = new ArrayList<XYTextAnnotation>();
+        String riverName = FLYSUtils.getRivername((FLYSArtifact)artifact);
 
-        for (Annotation a: as) {
+        FastAnnotations fas = LocationProvider.getAnnotations(riverName);
+
+        List<XYTextAnnotation> xy =
+            new ArrayList<XYTextAnnotation>(fas.size());
+
+        for (Iterator<FastAnnotations.Annotation> iter =
+                fas.filter(FastAnnotations.IS_POINT); iter.hasNext();) {
+            FastAnnotations.Annotation fa = iter.next();
+
             xy.add(new StickyAxisAnnotation(
-                a.getPosition().getValue(),
-                (float) a.getRange().getA().doubleValue(),
+                fa.getPosition(),
+                (float)fa.getA(),
                 StickyAxisAnnotation.SimpleAxis.X_AXIS));
         }
 

http://dive4elements.wald.intevation.org