private static Link linkForItem(SitemapItem item) { Link link = new Link(); link.setUrl(item.getUrl()); link.setLinkText(item.getTitle()); return link; }
@Override public Object convert(EntityModelData toConvert, TypeInformation targetType, SemanticField semanticField, ModelBuilderPipeline pipeline, DefaultSemanticFieldDataProvider dataProvider) throws FieldConverterException { Class<?> objectType = targetType.getObjectType(); Object result; if (String.class.isAssignableFrom(objectType)) { result = toConvert.getLinkUrl(); } else if (Link.class.isAssignableFrom(objectType)) { Link link = new Link(); link.setId(toConvert.getId()); link.setUrl(toConvert.getLinkUrl()); result = link; } else { try { if (EntityModel.class.isAssignableFrom(objectType)) { result = pipeline.createEntityModel(toConvert, objectType.asSubclass(EntityModel.class)); } else { throw new FieldConverterException("Object type " + objectType + " is not supported by EntityModelDataConverter"); } } catch (DxaException e) { throw new FieldConverterException("Cannot convert a entity model " + toConvert.getId() + " to " + objectType + " for semantic field " + semanticField.getName(), e); } } return convertToCollectionIfNeeded(result, targetType); }
/** * {@inheritDoc} */ @Override public HtmlElement generateElement() { String linkText = link.getLinkText(); if (Strings.isNullOrEmpty(linkText)) { linkText = getLocalization().getResource("core.readMoreLinkText"); } return HtmlBuilders.a(link.getUrl()) .withTitle(link.getAlternateText()) .withClass(cssClass) .withTextualContent(linkText) .build(); }
@Override public Object convert(EntityModelData toConvert, TypeInformation targetType, SemanticField semanticField, ModelBuilderPipeline pipeline, DefaultSemanticFieldDataProvider dataProvider) throws FieldConverterException { Class<?> objectType = targetType.getObjectType(); Object result; if (String.class.isAssignableFrom(objectType)) { result = toConvert.getLinkUrl(); } else if (Link.class.isAssignableFrom(objectType)) { Link link = new Link(); link.setId(toConvert.getId()); link.setUrl(toConvert.getLinkUrl()); result = link; } else { try { if (EntityModel.class.isAssignableFrom(objectType)) { result = pipeline.createEntityModel(toConvert, objectType.asSubclass(EntityModel.class)); } else { throw new FieldConverterException("Object type " + objectType + " is not supported by EntityModelDataConverter"); } } catch (DxaException e) { throw new FieldConverterException("Cannot convert a entity model " + toConvert.getId() + " to " + objectType + " for semantic field " + semanticField.getName(), e); } } return wrapIfNeeded(result, targetType); } }
@Override public Object convert(String toConvert, TypeInformation targetType, SemanticField semanticField, ModelBuilderPipeline pipeline, DefaultSemanticFieldDataProvider dataProvider) throws FieldConverterException { Class<?> objectType = targetType.getObjectType(); Object result; if (Date.class.isAssignableFrom(objectType)) { try { result = DateFormat.getInstance().parse(toConvert); } catch (ParseException e) { throw new FieldConverterException("Cannot parse a date string " + toConvert + " to a date of class Date"); } } else if (DateTime.class == objectType) { result = DateTime.parse(toConvert); } else if (Number.class.isAssignableFrom(objectType)) { result = toSpecificNumber(new BigDecimal(toConvert), objectType); } else if (Boolean.class == objectType) { result = Boolean.parseBoolean(toConvert); } else if (String.class == objectType) { result = toConvert; } else if (Link.class.isAssignableFrom(objectType)) { Link link = new Link(); link.setUrl(toConvert); result = link; } else if (RichText.class.isAssignableFrom(objectType)) { result = new RichText(toConvert); } else { throw new FieldConverterException("The type " + objectType + " is not supported by String Converter"); } return convertToCollectionIfNeeded(result, targetType); }
public Object selfLink(Object toLink, TypeDescriptor targetType, ModelBuilderPipeline pipeline) throws DxaException { Class<?> objectType = getClassForSelfLinking(toLink, targetType); String itemId = toLink instanceof EntityModelData ? ((EntityModelData) toLink).getId() : ((PageModelData) toLink).getId(); String url = resolveLink(itemId, webRequestContext, linkResolver); if (objectType == String.class) { return url; } else if (Link.class.isAssignableFrom(objectType)) { Link link = new Link(); link.setUrl(url); return link; } else if (toLink instanceof EntityModelData && EntityModel.class.isAssignableFrom(objectType)) { //type safety is guaranteed by if condition //noinspection unchecked return pipeline.createEntityModel((EntityModelData) toLink, (Class<EntityModel>) objectType); } throw new UnsupportedTargetTypeException(objectType); }
public Object selfLink(Object toLink, TypeDescriptor targetType, ModelBuilderPipeline pipeline) throws DxaException { Class<?> objectType = getClassForSelfLinking(toLink, targetType); String itemId = toLink instanceof EntityModelData ? ((EntityModelData) toLink).getId() : ((PageModelData) toLink).getId(); String url = resolveLink(itemId, webRequestContext, linkResolver); if (objectType == String.class) { return url; } else if (Link.class.isAssignableFrom(objectType)) { Link link = new Link(); link.setUrl(url); return link; } else if (toLink instanceof EntityModelData && EntityModel.class.isAssignableFrom(objectType)) { //type safety is guaranteed by if condition //noinspection unchecked return pipeline.createEntityModel((EntityModelData) toLink, (Class<EntityModel>) objectType); } throw new UnsupportedTargetTypeException(objectType); }