01: /*
02: * This file is part of "SnipSnap Radeox Rendering Engine".
03: *
04: * Copyright (c) 2002 Stephan J. Schmidt, Matthias L. Jugel
05: * All Rights Reserved.
06: *
07: * Please visit http://radeox.org/ for updates and contact.
08: *
09: * --LICENSE NOTICE--
10: * Licensed under the Apache License, Version 2.0 (the "License");
11: * you may not use this file except in compliance with the License.
12: * You may obtain a copy of the License at
13: *
14: * http://www.apache.org/licenses/LICENSE-2.0
15: *
16: * Unless required by applicable law or agreed to in writing, software
17: * distributed under the License is distributed on an "AS IS" BASIS,
18: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19: * See the License for the specific language governing permissions and
20: * limitations under the License.
21: * --LICENSE NOTICE--
22: */
23:
24: package org.radeox.macro;
25:
26: import java.io.IOException;
27: import java.io.Writer;
28:
29: import org.radeox.Messages;
30: import org.radeox.api.macro.MacroParameter;
31: import org.radeox.macro.xref.XrefMapper;
32:
33: /*
34: * Macro that replaces {xref} with external URLS to xref source code @author
35: * stephan @team sonicteam
36: *
37: * @version $Id: XrefMacro.java 29159 2007-04-19 01:46:15Z ajpoland@iupui.edu $
38: */
39:
40: public class XrefMacro extends BaseLocaleMacro {
41: private String[] paramDescription = {
42: Messages.getString("XrefMacro.0"), //$NON-NLS-1$
43: Messages.getString("XrefMacro.1") }; //$NON-NLS-1$
44:
45: public String[] getParamDescription() {
46: return paramDescription;
47: }
48:
49: public String getLocaleKey() {
50: return "macro.xref"; //$NON-NLS-1$
51: }
52:
53: public void execute(Writer writer, MacroParameter params)
54: throws IllegalArgumentException, IOException {
55: String project;
56: String klass;
57: int lineNumber = 0;
58:
59: if (params.getLength() >= 1) {
60: klass = params.get("0"); //$NON-NLS-1$
61:
62: int index = klass.indexOf("@"); //$NON-NLS-1$
63: if (index > 0) {
64: project = klass.substring(index + 1);
65: klass = klass.substring(0, index);
66: } else {
67: project = "SnipSnap"; //$NON-NLS-1$
68: }
69: if (params.getLength() == 2) {
70: lineNumber = Integer.parseInt(params.get("1")); //$NON-NLS-1$
71: }
72: } else {
73: throw new IllegalArgumentException(Messages
74: .getString("XrefMacro.7")); //$NON-NLS-1$
75: }
76:
77: XrefMapper.getInstance().expand(writer, klass, project,
78: lineNumber);
79: return;
80: }
81: }
|