private XDOMOfficeDocument createXDOM(DocumentReference ownerDocument, ResourceReference resourceReference, Map<String, ?> parameters) throws Exception { InputStream officeFileStream; String officeFileName; if (resourceReference.getType().equals(ResourceType.URL)) { URL url = new URL(resourceReference.getReference()); officeFileStream = url.openStream(); officeFileName = StringUtils.substringAfterLast(url.getPath(), "/"); } else { throw new Exception(String.format("Unsupported resource type [%s].", resourceReference.getType())); } return createXDOM(ownerDocument, officeFileStream, officeFileName, parameters); }
@Override public String serialize(ResourceReference reference) { StringBuffer result = new StringBuffer(); if (reference.isTyped() && isSupportedType(reference.getType())) { result.append(reference.getType().getScheme()); result.append(DefaultResourceReferenceParser.TYPE_SEPARATOR); } result.append(reference.getReference()); return result.toString(); }
/** * {@inheritDoc} * * @see AbstractXHTMLLinkTypeRenderer#beginLinkExtraAttributes(ResourceReference, java.util.Map, java.util.Map) */ @Override protected void beginLinkExtraAttributes(ResourceReference reference, Map<String, String> spanAttributes, Map<String, String> anchorAttributes) { anchorAttributes.put(XHTMLLinkRenderer.HREF, reference.getType().getScheme() + ':' + reference.getReference()); } }
@Override protected String getImageSrcAttributeValue(ResourceReference reference, Map<String, String> parameters) { return String.format("%s:%s", reference.getType().getScheme(), reference.getReference()); } }
@Override protected void beginLinkExtraAttributes(ResourceReference reference, Map<String, String> spanAttributes, Map<String, String> anchorAttributes) { anchorAttributes.put(XHTMLLinkRenderer.HREF, reference.getType().getScheme() + ':' + reference.getReference()); } }
/** * {@inheritDoc} * @see Object#hashCode() */ @Override public int hashCode() { return new HashCodeBuilder(1, 9) .append(getType()) .append(isTyped()) .append(getReference()) .append(getParameters()) .toHashCode(); }
@Override public String serialize(ResourceReference reference) { StringBuilder result = new StringBuilder(); result.append(reference.getType().getScheme()); result.append(DefaultResourceReferenceParser.TYPE_SEPARATOR); String interWikiAlias = reference.getParameter(InterWikiResourceReference.INTERWIKI_ALIAS); if (interWikiAlias != null) { result.append(interWikiAlias); result.append(InterWikiResourceReferenceTypeParser.INTERWIKI_ALIAS_SEPARATOR); } result.append(reference.getReference()); return result.toString(); } }
@Override public String serialize(ResourceReference reference) { StringBuilder result = new StringBuilder(); result.append(reference.getType().getScheme()); result.append(DefaultResourceReferenceParser.TYPE_SEPARATOR); String interWikiAlias = reference.getParameter(InterWikiResourceReference.INTERWIKI_ALIAS); if (interWikiAlias != null) { result.append(interWikiAlias); result.append(InterWikiResourceReferenceTypeParser.INTERWIKI_ALIAS_SEPARATOR); } result.append(reference.getReference()); return result.toString(); } }
@Override protected String getImageSrcAttributeValue(ResourceReference reference, Map<String, String> parameters) { String imageSrcAttributeValue; if (this.wikiModel != null) { imageSrcAttributeValue = this.wikiModel.getImageURL(reference, parameters); } else { imageSrcAttributeValue = String.format("%s:%s", reference.getType().getScheme(), reference.getReference()); } return imageSrcAttributeValue; } }
@Override protected void onImage(ResourceReference reference, boolean freestanding, Map<String, String> parameters) { // Since 2.5M2, handle the special case when the image syntax used for an image has a query string specified. if (ResourceType.ATTACHMENT.equals(reference.getType())) { String queryString = parameters.remove(QUERY_STRING); if (queryString != null) { reference.setParameter(DocumentResourceReference.QUERY_STRING, queryString); } } super.onImage(reference, freestanding, parameters); } }
@Override public boolean isDocumentAvailable(ResourceReference documentReference) { ResourceType resourceType = documentReference.getType(); String resourceValue = documentReference.getReference(); if (ResourceType.DOCUMENT.equals(resourceType)) { return "Space.ExistingPage".equals(resourceValue); } else if (ResourceType.SPACE.equals(resourceType)) { return "ExistingSpace".equals(resourceValue); } else if (ResourceType.PAGE.equals(resourceType)) { return "ExistingPage".equals(resourceValue); } return false; } }
@Override protected void onImage(ResourceReference reference, boolean isFreeStandingURI, Map<String, String> parameters) { // Since 2.5M2, handle the special case when the image syntax used for an image has a query string specified. if (reference.getType().equals(ResourceType.ATTACHMENT)) { String queryString = parameters.remove(QUERY_STRING); if (queryString != null) { reference.setParameter(DocumentResourceReference.QUERY_STRING, queryString); } } super.onImage(reference, isFreeStandingURI, parameters); } }
/** * {@inheritDoc} * @see ResourceReferenceParser#parse(String) */ public ResourceReference parse(String rawReference) { ResourceReference reference = this.defaultResourceReferenceParser.parse(rawReference); if (reference.getType().equals(ResourceType.UNKNOWN)) { reference = this.untypedImageReferenceParser.parse(rawReference); } return reference; } }
/** * {@inheritDoc} * @see ResourceReferenceParser#parse(String) */ public ResourceReference parse(String rawReference) { ResourceReference reference = this.defaultResourceReferenceParser.parse(rawReference); if (reference.getType().equals(ResourceType.UNKNOWN)) { reference = this.untypedLinkReferenceParser.parse(rawReference); } return reference; } }
private String computeAltAttributeValue(ResourceReference reference) { String label; try { URILabelGenerator uriLabelGenerator = this.componentManager.getInstance(URILabelGenerator.class, reference.getType().getScheme()); label = uriLabelGenerator.generateLabel(reference); } catch (ComponentLookupException e) { label = reference.getReference(); } return label; } }
private String computeAltAttributeValue(ResourceReference reference) { String label; try { URILabelGenerator uriLabelGenerator = this.componentManager.getInstance(URILabelGenerator.class, reference.getType().getScheme()); label = uriLabelGenerator.generateLabel(reference); } catch (ComponentLookupException e) { label = reference.getReference(); } return label; } }
private String computeAltAttributeValue(ResourceReference reference) { String label; try { URILabelGenerator uriLabelGenerator = this.componentManager.lookup(URILabelGenerator.class, reference.getType().getScheme()); label = uriLabelGenerator.generateLabel(reference); } catch (ComponentLookupException e) { label = reference.getReference(); } return label; } }
private String computeAltAttributeValue(ResourceReference reference) { String label; try { URILabelGenerator uriLabelGenerator = this.componentManager.lookup(URILabelGenerator.class, reference.getType().getScheme()); label = uriLabelGenerator.generateLabel(reference); } catch (ComponentLookupException e) { label = reference.getReference(); } return label; } }
@Override public XDOM createView(ResourceReference reference, Map<String, ?> parameters) throws Exception { OfficeDocumentView view; if (reference.getType().equals(ResourceType.ATTACHMENT) || reference.getType().equals(ResourceType.UNKNOWN)) { AttachmentReference attachmentReference = this.attachmentResolver.resolve(reference.getReference()); view = getView(reference, attachmentReference, parameters); } else { view = getView(reference, parameters); } // We have to clone the cached XDOM to protect it from the rendering transformations. For instance, macro // transformations must be executed even when the XDOM is taken from the cache. return view.getXDOM().clone(); }
private XHTMLLinkTypeRenderer getXHTMLLinkTypeRenderer(ResourceReference reference) { XHTMLLinkTypeRenderer renderer; // TODO: This is probably not very performant since it's called at each begin/endLink. try { renderer = this.componentManager.lookup(XHTMLLinkTypeRenderer.class, reference.getType().getScheme()); } catch (ComponentLookupException e) { // There's no specific XHTML Link Type Renderer for the passed link type, use the default renderer. renderer = this.defaultLinkTypeRenderer; } renderer.setHasLabel(this.hasLabel); renderer.setXHTMLWikiPrinter(getXHTMLWikiPrinter()); return renderer; } }