/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.link; public abstract class LinkTransformer { private final LinkScanner scanner = new LinkScanner(); public final String transform( String value ) { int pos = 0; StringBuffer str = new StringBuffer(); for ( LinkMatch match : this.scanner.scan( value ) ) { str.append( value.substring( pos, match.getStart() ) ); str.append( transformLink( match.getLink() ) ); pos = match.getEnd(); } str.append( value.substring( pos ) ); return str.toString(); } protected abstract String transformLink( String link ); }