001    package org.apache.myfaces.tobago.example.demo.jsp;
002    
003    /*
004     * Licensed to the Apache Software Foundation (ASF) under one or more
005     * contributor license agreements.  See the NOTICE file distributed with
006     * this work for additional information regarding copyright ownership.
007     * The ASF licenses this file to You under the Apache License, Version 2.0
008     * (the "License"); you may not use this file except in compliance with
009     * the License.  You may obtain a copy of the License at
010     *
011     *      http://www.apache.org/licenses/LICENSE-2.0
012     *
013     * Unless required by applicable law or agreed to in writing, software
014     * distributed under the License is distributed on an "AS IS" BASIS,
015     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
016     * See the License for the specific language governing permissions and
017     * limitations under the License.
018     */
019    
020    /*
021     * Created on: 02.09.2002, 23:40:26
022     * $Id: TagConverter.java 578592 2007-09-23 18:51:32Z bommel $
023     */
024    
025    import org.apache.oro.text.regex.MalformedPatternException;
026    import org.apache.oro.text.regex.Pattern;
027    
028    public class TagConverter extends AbstractConverter {
029    
030      public Pattern initPattern() throws MalformedPatternException {
031        return getCompiler().compile("(?s)<.*?>");
032      }
033    
034      public String convertMatch(String fragment) {
035        // String escaped = XmlUtils.escape(fragment);
036    
037        String withLinks = getUtil().substitute("s/^<jsp:include page=\\\"([\\-\\.\\/\\w]+)"
038                + "/<jsp:include page=\\\"<a href='viewSource.jsp?jsp=$1'>$1<\\/a>/", fragment);
039    
040        String escaped = getUtil().substitute("s/^(<\\/?)(\\w+):/$1<b>$2<\\/b>:/", withLinks);
041        escaped = highlightStrings(escaped);
042        return "<span class=\"html-tag\">&lt;" + escaped.substring(1, escaped.length()-1) + "></span>";
043      }
044    
045    }