01: /*******************************************************************************
02: * Copyright (c) 2005, 2006 IBM Corporation and others.
03: * All rights reserved. This program and the accompanying materials
04: * are made available under the terms of the Eclipse Public License v1.0
05: * which accompanies this distribution, and is available at
06: * http://www.eclipse.org/legal/epl-v10.html
07: *
08: * Contributors:
09: * IBM Corporation - initial API and implementation
10: *******************************************************************************/package org.eclipse.pde.internal.core.target;
11:
12: import org.eclipse.pde.internal.core.itarget.IArgumentsInfo;
13: import org.eclipse.pde.internal.core.itarget.ITargetModel;
14: import org.w3c.dom.Node;
15: import org.w3c.dom.NodeList;
16:
17: public class ArgumentsInfo extends TargetObject implements
18: IArgumentsInfo {
19:
20: private static final long serialVersionUID = 1L;
21: private String fProgramArgs = ""; //$NON-NLS-1$
22: private String fVMArgs = ""; //$NON-NLS-1$
23:
24: public ArgumentsInfo(ITargetModel model) {
25: super (model);
26: }
27:
28: public String getProgramArguments() {
29: return fProgramArgs;
30: }
31:
32: public String getVMArguments() {
33: return fVMArgs;
34: }
35:
36: public void setProgramArguments(String args) {
37: String oldValue = fProgramArgs;
38: fProgramArgs = args;
39: if (isEditable())
40: firePropertyChanged(P_PROG_ARGS, oldValue, fProgramArgs);
41: }
42:
43: public void setVMArguments(String args) {
44: String oldValue = fVMArgs;
45: fVMArgs = args;
46: if (isEditable())
47: firePropertyChanged(P_VM_ARGS, oldValue, fVMArgs);
48: }
49:
50: public void parse(Node node) {
51: NodeList list = node.getChildNodes();
52: for (int i = 0; i < list.getLength(); i++) {
53: Node child = list.item(i);
54: if (child.getNodeType() == Node.ELEMENT_NODE) {
55: if (child.getNodeName().equals(P_PROG_ARGS)) {
56: fProgramArgs = getText(child);
57: } else if (child.getNodeName().equals(P_VM_ARGS)) {
58: fVMArgs = getText(child);
59: }
60: }
61: }
62: }
63:
64: private String getText(Node node) {
65: node.normalize();
66: Node text = node.getFirstChild();
67: if (text != null && text.getNodeType() == Node.TEXT_NODE) {
68: return text.getNodeValue();
69: }
70: return ""; //$NON-NLS-1$
71: }
72:
73: public void write(String indent, java.io.PrintWriter writer) {
74: if ((fProgramArgs == null || fProgramArgs.length() == 0)
75: && (fVMArgs == null || fVMArgs.length() == 0))
76: return;
77: writer.println();
78: writer.println(indent + "<launcherArgs>"); //$NON-NLS-1$
79: if (fProgramArgs.length() > 0) {
80: writer
81: .println(indent
82: + " " + "<" + P_PROG_ARGS + ">" + getWritableString(fProgramArgs) + "</" + P_PROG_ARGS + ">"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
83: }
84: if (fVMArgs.length() > 0) {
85: writer
86: .println(indent
87: + " " + "<" + P_VM_ARGS + ">" + getWritableString(fVMArgs) + "</" + P_VM_ARGS + ">"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
88: }
89: writer.println(indent + "</launcherArgs>"); //$NON-NLS-1$
90: }
91:
92: }
|