Author: reto
Date: Sat Mar 19 13:40:34 2011
New Revision: 1083179

URL: http://svn.apache.org/viewvc?rev=1083179&view=rev
Log:
CLEREZZA-460: creating TypeRenderletRenedererImpl when BundleContext is 
guaranteed to be avaibalbe

Modified:
    
incubator/clerezza/trunk/parent/platform.typerendering/platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RendererFactory.java
    
incubator/clerezza/trunk/parent/platform.typerendering/platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/TypeRenderletRendererImpl.java

Modified: 
incubator/clerezza/trunk/parent/platform.typerendering/platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RendererFactory.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/parent/platform.typerendering/platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RendererFactory.java?rev=1083179&r1=1083178&r2=1083179&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/parent/platform.typerendering/platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RendererFactory.java
 (original)
+++ 
incubator/clerezza/trunk/parent/platform.typerendering/platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RendererFactory.java
 Sat Mar 19 13:40:34 2011
@@ -65,8 +65,8 @@ public class RendererFactory {
        @Reference
        private TypePrioritizer typePrioritizer;
 
-       private Map<UriRef, RegexMap<MediaTypeMap<Renderer>>> typeRenderletMap =
-                       new HashMap<UriRef, RegexMap<MediaTypeMap<Renderer>>>();
+       private Map<UriRef, RegexMap<MediaTypeMap<TypeRenderlet>>> 
typeRenderletMap =
+                       new HashMap<UriRef, 
RegexMap<MediaTypeMap<TypeRenderlet>>>();
 
        private BundleContext bundleContext;
 
@@ -114,15 +114,21 @@ public class RendererFactory {
                Iterator<UriRef> sortedTypes = typePrioritizer.iterate(types);
                while (sortedTypes.hasNext()) {
                        final UriRef currentType = sortedTypes.next();
-                       final RegexMap<MediaTypeMap<Renderer>> regexMap = 
typeRenderletMap.get(currentType);
+                       final RegexMap<MediaTypeMap<TypeRenderlet>> regexMap = 
typeRenderletMap.get(currentType);
                        if (regexMap != null) {
-                               Iterator<MediaTypeMap<Renderer>> 
mediaTypeMapIter = regexMap.getMatching(mode);
+                               Iterator<MediaTypeMap<TypeRenderlet>> 
mediaTypeMapIter = regexMap.getMatching(mode);
                                while (mediaTypeMapIter.hasNext()) {
-                                       MediaTypeMap<Renderer> mediaTypeMap = 
mediaTypeMapIter.next();
+                                       MediaTypeMap<TypeRenderlet> 
mediaTypeMap = mediaTypeMapIter.next();
                                        for (MediaType acceptableType : 
acceptableMediaTypes) {
-                                               Iterator<Renderer> renderlets = 
mediaTypeMap.getMatching(acceptableType);
+                                               Iterator<TypeRenderlet> 
renderlets = mediaTypeMap.getMatching(acceptableType);
                                                if (renderlets.hasNext()) {
-                                                       return 
renderlets.next();
+                                                       TypeRenderlet 
typeRenderlet = renderlets.next();
+                                                       //TODO is this the most 
convrete type
+                                                       return new 
TypeRenderletRendererImpl(
+                                                               typeRenderlet,
+                                                               acceptableType,
+                                                               this,
+                                                               bundleContext);
                                                }
                                        }
                                }
@@ -133,23 +139,19 @@ public class RendererFactory {
 
        protected void bindTypeRenderlet(TypeRenderlet typeRenderlet) {
                final UriRef rdfType = typeRenderlet.getRdfType();
-               RegexMap<MediaTypeMap<Renderer>> regexMap = 
typeRenderletMap.get(rdfType);
+               RegexMap<MediaTypeMap<TypeRenderlet>> regexMap = 
typeRenderletMap.get(rdfType);
                if (regexMap == null) {
-                       regexMap = new RegexMap<MediaTypeMap<Renderer>>();
+                       regexMap = new RegexMap<MediaTypeMap<TypeRenderlet>>();
                        typeRenderletMap.put(rdfType, regexMap);
                }
                final String mode = typeRenderlet.getModePattern();
-               MediaTypeMap<Renderer> mediaTypeMap = 
regexMap.getFirstExactMatch(mode);
+               MediaTypeMap<TypeRenderlet> mediaTypeMap = 
regexMap.getFirstExactMatch(mode);
                if (mediaTypeMap == null) {
-                       mediaTypeMap = new MediaTypeMap<Renderer>();
+                       mediaTypeMap = new MediaTypeMap<TypeRenderlet>();
                        regexMap.addEntry(mode, mediaTypeMap);
                }
                final MediaType mediaType = typeRenderlet.getMediaType();
-               final Renderer renderer = new TypeRenderletRendererImpl(null,
-                       typeRenderlet, mediaType,
-                       this,
-                       bundleContext);
-               mediaTypeMap.addEntry(mediaType, renderer);
+               mediaTypeMap.addEntry(mediaType, typeRenderlet);
        }
 
        protected void unbindTypeRenderlet(TypeRenderlet typeRenderlet) {

Modified: 
incubator/clerezza/trunk/parent/platform.typerendering/platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/TypeRenderletRendererImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/parent/platform.typerendering/platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/TypeRenderletRendererImpl.java?rev=1083179&r1=1083178&r2=1083179&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/parent/platform.typerendering/platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/TypeRenderletRendererImpl.java
 (original)
+++ 
incubator/clerezza/trunk/parent/platform.typerendering/platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/TypeRenderletRendererImpl.java
 Sat Mar 19 13:40:34 2011
@@ -39,26 +39,17 @@ import org.osgi.framework.BundleContext;
  */
 class TypeRenderletRendererImpl implements Renderer {
 
-       private URI renderSpecUri = null;
        private TypeRenderlet renderlet = null;
        private MediaType mediaType = null;
        private final RendererFactory rendererFactory;
        private final BundleContext bundleContext;
 
-       TypeRenderletRendererImpl(UriRef renderingSpecification,
-                       TypeRenderlet renderlet, MediaType mediaType,
+       TypeRenderletRendererImpl(TypeRenderlet renderlet, MediaType mediaType,
                        RendererFactory rendererFactory,
                        BundleContext bundleContext) {
                this.renderlet = renderlet;
                this.mediaType = mediaType;
                this.rendererFactory = rendererFactory;
-               if (renderingSpecification != null) {
-                       try {
-                               renderSpecUri = new 
URI(renderingSpecification.getUnicodeString());
-                       } catch (URISyntaxException ex) {
-                               throw new WebApplicationException(ex);
-                       }
-               }
                this.bundleContext = bundleContext;
        }
 


Reply via email to