protected void unbindTypeRenderlet(TypeRenderlet typeRenderlet) { TypeRenderletStartLevel typeRenderletStartLevel = new TypeRenderletStartLevel(typeRenderlet, 0); for (Map.Entry<IRI, RegexMap<MediaTypeMap<TypeRenderletStartLevel>>> typeEntry: typeRenderletMap.entrySet()) { final RegexMap<MediaTypeMap<TypeRenderletStartLevel>> regexMap = typeEntry.getValue(); for (Map.Entry<String, MediaTypeMap<TypeRenderletStartLevel>> regexEntry: regexMap.entrySet()) { final MediaTypeMap<TypeRenderletStartLevel> mediaTypeMap = regexEntry.getValue(); if (mediaTypeMap.remove(typeRenderletStartLevel)) { //for now we just leave the potentially empty mediaTypeMap there //IMPROVEMENT remove without entries return; } } } }
private void registerRenderlet(TypeRenderlet typeRenderlet, int startLevel) { final IRI rdfType = typeRenderlet.getRdfType(); RegexMap<MediaTypeMap<TypeRenderletStartLevel>> regexMap = typeRenderletMap.get(rdfType); if (regexMap == null) { regexMap = new RegexMap<MediaTypeMap<TypeRenderletStartLevel>>(); typeRenderletMap.put(rdfType, regexMap); } final String modePattern = typeRenderlet.getModePattern(); MediaTypeMap<TypeRenderletStartLevel> mediaTypeMap = regexMap.getFirstExactMatch(modePattern); if (mediaTypeMap == null) { mediaTypeMap = new MediaTypeMap<TypeRenderletStartLevel>(); regexMap.addEntry(modePattern, mediaTypeMap); } final MediaType mediaType = typeRenderlet.getMediaType(); mediaTypeMap.addEntry(mediaType, new TypeRenderletStartLevel(typeRenderlet, startLevel)); }