1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17 package org.apache.jetspeed.rewriter;
18
19 import java.io.Reader;
20 import java.io.Writer;
21 import java.net.URL;
22
23 import org.apache.commons.logging.Log;
24 import org.apache.commons.logging.LogFactory;
25 /***
26 * AbstractRewriter
27 *
28 * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
29 * @version $Id: AbstractRewriter.java 516448 2007-03-09 16:25:47Z ate $
30 */
31 public abstract class AbstractRewriter implements Rewriter
32 {
33 protected final static Log log = LogFactory.getLog(AbstractRewriter.class);
34
35 private String baseUrl = null;
36 private boolean useProxy = false;
37
38 /* (non-Javadoc)
39 * @see org.apache.jetspeed.syndication.services.crawler.rewriter.Rewriter#rewrite(ParserAdaptor, java.io.Reader)
40 */
41 public void parse(ParserAdaptor adaptor, Reader reader) throws RewriterException
42 {
43 adaptor.parse(this, reader);
44 }
45
46 /* (non-Javadoc)
47 * @see org.apache.jetspeed.syndication.services.crawler.rewriter.Rewriter#rewrite(ParserAdaptor, java.io.Reader, java.io.Writer)
48 */
49 public void rewrite(ParserAdaptor adaptor, Reader reader, Writer writer) throws RewriterException
50 {
51 adaptor.rewrite(this, reader, writer);
52 }
53
54 /* (non-Javadoc)
55 * @see org.apache.jetspeed.syndication.services.crawler.rewriter.Rewriter#rewriteUrl(java.lang.String, java.lang.String, java.lang.String)
56 */
57 public abstract String rewriteUrl(String url, String tag, String attribute);
58
59 /* (non-Javadoc)
60 * @see org.apache.jetspeed.syndication.services.crawler.rewriter.Rewriter#setBaseUrl(java.lang.String)
61 */
62 public void setBaseUrl(String base)
63 {
64 this.baseUrl = base;
65 }
66
67 /* (non-Javadoc)
68 * @see org.apache.jetspeed.syndication.services.crawler.rewriter.Rewriter#getBaseUrl()
69 */
70 public String getBaseUrl()
71 {
72 return baseUrl;
73 }
74 public String getBaseRelativeUrl(String relativeUrl)
75 {
76 try
77 {
78 String baseUrl = getBaseUrl();
79 if (baseUrl != null)
80 {
81 URL xlate = new URL(new URL(baseUrl), relativeUrl);
82 return xlate.toString();
83 }
84 }
85 catch (Exception e)
86 {
87 log.error("Unable to translate URL relative to base URL", e);
88 }
89 return relativeUrl;
90 }
91
92 /* (non-Javadoc)
93 * @see org.apache.jetspeed.syndication.services.crawler.rewriter.Rewriter#getUseProxy()
94 */
95 public boolean getUseProxy()
96 {
97 return useProxy;
98 }
99
100 /* (non-Javadoc)
101 * @see org.apache.jetspeed.syndication.services.crawler.rewriter.Rewriter#setUseProxy(boolean)
102 */
103 public void setUseProxy(boolean useProxy)
104 {
105 this.useProxy = useProxy;
106 }
107
108 /* (non-Javadoc)
109 * @see org.apache.jetspeed.syndication.services.crawler.rewriter.Rewriter#enterSimpleTagEvent(java.lang.String, MutableAttributes)
110 */
111 public boolean enterSimpleTagEvent(String tag, MutableAttributes attrs)
112 {
113 return true;
114 }
115
116 /* (non-Javadoc)
117 * @see org.apache.jetspeed.syndication.services.crawler.rewriter.Rewriter#exitSimpleTagEvent(java.lang.String, MutableAttributes)
118 */
119 public String exitSimpleTagEvent(String tag, MutableAttributes attrs)
120 {
121 return null;
122 }
123
124 /* (non-Javadoc)
125 * @see org.apache.jetspeed.syndication.services.crawler.rewriter.Rewriter#enterStartTagEvent(java.lang.String, MutableAttributes)
126 */
127 public boolean enterStartTagEvent(String tag, MutableAttributes attrs)
128 {
129 return true;
130 }
131
132 /* (non-Javadoc)
133 * @see org.apache.jetspeed.syndication.services.crawler.rewriter.Rewriter#exitStartTagEvent(java.lang.String, MutableAttributes)
134 */
135 public String exitStartTagEvent(String tag, MutableAttributes attrs)
136 {
137 return null;
138 }
139
140 /* (non-Javadoc)
141 * @see org.apache.jetspeed.syndication.services.crawler.rewriter.Rewriter#enterEndTagEvent(java.lang.String)
142 */
143 public boolean enterEndTagEvent(String tag)
144 {
145 return true;
146 }
147
148 /* (non-Javadoc)
149 * @see org.apache.jetspeed.syndication.services.crawler.rewriter.Rewriter#exitEndTagEvent(java.lang.String)
150 */
151 public String exitEndTagEvent(String tag)
152 {
153 return null;
154 }
155
156 /* (non-Javadoc)
157 * @see org.apache.jetspeed.syndication.services.crawler.rewriter.Rewriter#enterText(char[], int)
158 */
159 public boolean enterText(char[] values, int param)
160 {
161 return true;
162 }
163 /* (non-Javadoc)
164 * @see org.apache.jetspeed.syndication.services.crawler.rewriter.Rewriter#convertTagEvent(java.lang.String, MutableAttributes)
165 */
166 public void enterConvertTagEvent(String tag, MutableAttributes attrs)
167 {
168 }
169 }