Skip to content

Commit ce37e5a

Browse files
Add Link.getTitle() method (#38)
1 parent d17d2e3 commit ce37e5a

4 files changed

Lines changed: 37 additions & 2 deletions

File tree

changes.xml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@
2424
xsi:schemaLocation="http://maven.apache.org/changes/2.0.0 https://maven.apache.org/xsd/changes-2.0.0.xsd">
2525
<body>
2626

27-
<release version="2.2.12" date="not released">
27+
<release version="2.3.0" date="not released">
28+
<action type="add" dev="sseifert" issue="38">
29+
Add Link.getTitle() method.
30+
</action>
2831
<action type="update" dev="sseifert" issue="36">
2932
ResourceLink: Allow adapting from Resource, additional to from SlingHttpServletRequest.
3033
</action>

src/main/java/io/wcm/handler/link/Link.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,14 @@ public void setUrl(@Nullable String url) {
175175
this.url = url;
176176
}
177177

178+
/**
179+
* Get link title. This is only supported, if the link was build from a resource with link properties,
180+
* and in this resource a property {@link LinkNameConstants#PN_LINK_TITLE} is set.
181+
*/
182+
public @Nullable String getTitle() {
183+
return linkRequest.getResourceProperties().get(LinkNameConstants.PN_LINK_TITLE, String.class);
184+
}
185+
178186
/**
179187
* @return Target page referenced by the link (applies only for internal links)
180188
*/

src/main/java/io/wcm/handler/link/package-info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,5 @@
2020
/**
2121
* Link Handler API.
2222
*/
23-
@org.osgi.annotation.versioning.Version("2.1.0")
23+
@org.osgi.annotation.versioning.Version("2.2.0")
2424
package io.wcm.handler.link;

src/test/java/io/wcm/handler/link/impl/LinkHandlerImplTest.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,13 @@
2121

2222
import static io.wcm.handler.link.LinkNameConstants.PN_COMPONENT_LINK_TARGET_URL_FALLBACK_PROPERTY;
2323
import static io.wcm.handler.link.LinkNameConstants.PN_COMPONENT_LINK_TARGET_WINDOW_TARGET_FALLBACK_PROPERTY;
24+
import static io.wcm.handler.link.LinkNameConstants.PN_LINK_EXTERNAL_REF;
25+
import static io.wcm.handler.link.LinkNameConstants.PN_LINK_TITLE;
2426
import static io.wcm.handler.link.LinkNameConstants.PN_LINK_TYPE;
2527
import static org.junit.jupiter.api.Assertions.assertEquals;
2628
import static org.junit.jupiter.api.Assertions.assertFalse;
2729
import static org.junit.jupiter.api.Assertions.assertNotNull;
30+
import static org.junit.jupiter.api.Assertions.assertNull;
2831

2932
import java.util.List;
3033
import java.util.Map;
@@ -48,6 +51,7 @@
4851
import io.wcm.handler.link.spi.LinkProcessor;
4952
import io.wcm.handler.link.spi.LinkType;
5053
import io.wcm.handler.link.testcontext.AppAemContext;
54+
import io.wcm.handler.link.type.ExternalLinkType;
5155
import io.wcm.handler.url.UrlModes;
5256
import io.wcm.sling.commons.adapter.AdaptTo;
5357
import io.wcm.sling.commons.resource.ImmutableValueMap;
@@ -189,6 +193,26 @@ void testLinkHandlerCustomProperty() {
189193
assertEquals("value1", link.getLinkRequest().getLinkArgs().getProperties().get("prop1"));
190194
}
191195

196+
@Test
197+
void testLinkGetTitle() {
198+
LinkHandler linkHandler = AdaptTo.notNull(adaptable(), LinkHandler.class);
199+
200+
Resource linkResource = context.create().resource("/content/dummy-path",
201+
PN_LINK_TYPE, ExternalLinkType.ID,
202+
PN_LINK_EXTERNAL_REF, "http://dummy",
203+
PN_LINK_TITLE, "My Link Title");
204+
205+
Link link = linkHandler.get(linkResource).build();
206+
assertEquals("My Link Title", link.getTitle());
207+
}
208+
209+
@Test
210+
void testLinkGetTitleWithoutResourceProperties() {
211+
LinkHandler linkHandler = AdaptTo.notNull(adaptable(), LinkHandler.class);
212+
213+
Link link = linkHandler.get("http://dummy").build();
214+
assertNull(link.getTitle());
215+
}
192216

193217
public static class TestLinkHandlerConfig extends LinkHandlerConfig {
194218

0 commit comments

Comments
 (0)