private Link getLinkForFeedItem() { if (link != null) { return link; } if (media != null) { Link result = new Link(); result.setUrl(media.getUrl()); return result; } return null; } }
@Override public void readFromXhtmlElement(Node xhtmlElement) { super.readFromXhtmlElement(xhtmlElement); this.alternateText = xhtmlElement.getAttributes().getNamedItem("alt").getNodeValue(); this.setMvcData(getMvcData()); }
/** * {@inheritDoc} */ @Override protected HtmlElement generateElement() throws DxaException { if (media == null) { return null; } return media.toHtmlElement(this.widthFactor, this.aspect, this.cssClass, this.containerSize, this.getContextPath()); }
private <T extends EntityModel> void _processMediaItem(EntityModelData modelData, T entityModel) throws DxaException { if (entityModel instanceof MediaItem) { MediaItem mediaItem = (MediaItem) entityModel; BinaryContentData binaryContent = modelData.getBinaryContent(); if (binaryContent == null) { throw new DxaException("Unable to create Media Item ('" + mediaItem.getClass() + "') " + "because the Data Model '" + mediaItem.getId() + "') \"' does not contain Binary Content Data."); } mediaItem.setUrl(binaryContent.getUrl()); mediaItem.setFileName(binaryContent.getFileName()); mediaItem.setMimeType(binaryContent.getMimeType()); mediaItem.setFileSize(binaryContent.getFileSize()); if (mediaItem instanceof EclItem) { EclItem eclItem = (EclItem) mediaItem; ExternalContentData externalContent = modelData.getExternalContent(); if (externalContent == null) { throw new DxaException("Unable to create ECL Item ('" + eclItem.getClass() + "') " + "because the Data Model '" + eclItem.getId() + "') \"' does not contain External Content Data."); } eclItem.setDisplayTypeId(externalContent.getDisplayTypeId()); eclItem.setTemplateFragment(externalContent.getTemplateFragment()); eclItem.setExternalMetadata(externalContent.getMetadata()); eclItem.setUri(externalContent.getId()); } } }
@Override public Object convert(RichTextData toConvert, TypeInformation targetType, SemanticField semanticField, ModelBuilderPipeline pipeline, DefaultSemanticFieldDataProvider dataProvider) throws FieldConverterException { Class<?> objectType = targetType.getObjectType(); List<RichTextFragment> fragments = new ArrayList<>(); for (Object fragment : toConvert.getValues()) { if (fragment instanceof String) { fragments.add(new RichTextFragmentImpl((String) fragment)); } else { log.debug("Fragment {} is a not a string but perhaps EntityModelData, skipping link resolving"); MediaItem mediaItem; EntityModelData entityModelData = (EntityModelData) fragment; try { mediaItem = pipeline.createEntityModel(entityModelData, MediaItem.class); } catch (DxaException e) { throw new FieldConverterException("Cannot create an instance of Media Item in RichText, model id " + entityModelData.getId(), e); } mediaItem.setEmbedded(true); fragments.add(mediaItem); } } RichText richText = new RichText(fragments); return convertToCollectionIfNeeded(objectType == String.class ? richText.toString() : richText, targetType); }
private <T extends EntityModel> void _processMediaItem(EntityModelData modelData, T entityModel) throws DxaException { if (entityModel instanceof MediaItem) { MediaItem mediaItem = (MediaItem) entityModel; BinaryContentData binaryContent = modelData.getBinaryContent(); if (binaryContent == null) { throw new DxaException("Unable to create Media Item ('" + mediaItem.getClass() + "') " + "because the Data Model '" + mediaItem.getId() + "') \"' does not contain Binary Content Data."); } mediaItem.setUrl(binaryContent.getUrl()); mediaItem.setFileName(binaryContent.getFileName()); mediaItem.setMimeType(binaryContent.getMimeType()); mediaItem.setFileSize(binaryContent.getFileSize()); if (mediaItem instanceof EclItem) { EclItem eclItem = (EclItem) mediaItem; ExternalContentData externalContent = modelData.getExternalContent(); if (externalContent == null) { throw new DxaException("Unable to create ECL Item ('" + eclItem.getClass() + "') " + "because the Data Model '" + eclItem.getId() + "') \"' does not contain External Content Data."); } eclItem.setDisplayTypeId(externalContent.getDisplayTypeId()); eclItem.setTemplateFragment(externalContent.getTemplateFragment()); eclItem.setExternalMetadata(externalContent.getMetadata()); eclItem.setUri(externalContent.getId()); } } }
@Override public Object convert(RichTextData toConvert, TypeInformation targetType, SemanticField semanticField, ModelBuilderPipeline pipeline, DefaultSemanticFieldDataProvider dataProvider) throws FieldConverterException { Class<?> objectType = targetType.getObjectType(); List<RichTextFragment> fragments = new ArrayList<>(); for (Object fragment : toConvert.getValues()) { if (fragment instanceof String) { fragments.add(new RichTextFragmentImpl((String) fragment)); } else { log.debug("Fragment {} is a not a string but perhaps EntityModelData, skipping link resolving"); MediaItem mediaItem; EntityModelData entityModelData = (EntityModelData) fragment; try { mediaItem = pipeline.createEntityModel(entityModelData, MediaItem.class); } catch (DxaException e) { throw new FieldConverterException("Cannot create an instance of Media Item in RichText, model id " + entityModelData.getId(), e); } mediaItem.setEmbedded(true); fragments.add(mediaItem); } } RichText richText = new RichText(fragments); return wrapIfNeeded(objectType == String.class ? richText.toString() : richText, targetType); } }
@Override public void readFromXhtmlElement(Node xhtmlElement) { super.readFromXhtmlElement(xhtmlElement); this.setYouTubeId(xhtmlElement.getAttributes().getNamedItem("data-youTubeId").getNodeValue()); this.setHeadline(xhtmlElement.getAttributes().getNamedItem("data-headline").getNodeValue()); this.setMvcData(getMvcData()); }
@Override public void readFromXhtmlElement(Node xhtmlElement) { super.readFromXhtmlElement(xhtmlElement); this.setMvcData(getMvcData()); }