KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > eclipse > emf > codegen > ecore > templates > edit > PluginXML


1 package org.eclipse.emf.codegen.ecore.templates.edit;
2
3 import java.util.*;
4 import org.eclipse.emf.codegen.ecore.genmodel.*;
5
6 public class PluginXML
7 {
8   protected static String JavaDoc nl;
9   public static synchronized PluginXML create(String JavaDoc lineSeparator)
10   {
11     nl = lineSeparator;
12     PluginXML result = new PluginXML();
13     nl = null;
14     return result;
15   }
16
17   protected final String JavaDoc NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl;
18   protected final String JavaDoc TEXT_1 = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + NL + "<?eclipse version=\"3.0\"?>" + NL;
19   protected final String JavaDoc TEXT_2 = NL;
20   protected final String JavaDoc TEXT_3 = "<!--" + NL + " <copyright>" + NL + " </copyright>" + NL;
21   protected final String JavaDoc TEXT_4 = NL + " ";
22   protected final String JavaDoc TEXT_5 = "Id";
23   protected final String JavaDoc TEXT_6 = NL + "-->" + NL + "" + NL + "<plugin";
24   protected final String JavaDoc TEXT_7 = ">";
25   protected final String JavaDoc TEXT_8 = NL + " name = \"%pluginName\"" + NL + " id = \"";
26   protected final String JavaDoc TEXT_9 = "\"" + NL + " version = \"1.0.0\"" + NL + " provider-name = \"%providerName\"" + NL + " class = \"";
27   protected final String JavaDoc TEXT_10 = "$Implementation\">" + NL + "" + NL + " <requires>";
28   protected final String JavaDoc TEXT_11 = NL + " <import plugin=\"";
29   protected final String JavaDoc TEXT_12 = "\" ";
30   protected final String JavaDoc TEXT_13 = "export=\"true\"";
31   protected final String JavaDoc TEXT_14 = "/>";
32   protected final String JavaDoc TEXT_15 = NL + " </requires>" + NL + "" + NL + " <runtime>";
33   protected final String JavaDoc TEXT_16 = NL + " <library name=\"";
34   protected final String JavaDoc TEXT_17 = ".jar\">";
35   protected final String JavaDoc TEXT_18 = NL + " <library name=\".\">";
36   protected final String JavaDoc TEXT_19 = NL + " <export name=\"*\"/>" + NL + " </library>" + NL + " </runtime>";
37   protected final String JavaDoc TEXT_20 = NL + " " + NL + " <extension point=\"org.eclipse.emf.edit.itemProviderAdapterFactories\">" + NL + " <factory " + NL + " uri = \"";
38   protected final String JavaDoc TEXT_21 = "\" " + NL + " class = \"";
39   protected final String JavaDoc TEXT_22 = "\" " + NL + " supportedTypes = ";
40   protected final String JavaDoc TEXT_23 = NL + " ";
41   protected final String JavaDoc TEXT_24 = " />" + NL + " </extension>";
42   protected final String JavaDoc TEXT_25 = NL + NL + " <extension point=\"org.eclipse.emf.ecore.generated_package\">" + NL + " <package" + NL + " uri = \"";
43   protected final String JavaDoc TEXT_26 = "\"" + NL + " class = \"";
44   protected final String JavaDoc TEXT_27 = "\"";
45   protected final String JavaDoc TEXT_28 = " />";
46   protected final String JavaDoc TEXT_29 = NL + " genModel = \"";
47   protected final String JavaDoc TEXT_30 = "\" /> ";
48   protected final String JavaDoc TEXT_31 = NL + " </extension>";
49   protected final String JavaDoc TEXT_32 = NL + NL + " <extension point=\"org.eclipse.emf.ecore.extension_parser\">" + NL + " <parser" + NL + " type=\"";
50   protected final String JavaDoc TEXT_33 = "\"" + NL + " class=\"";
51   protected final String JavaDoc TEXT_34 = "\" />" + NL + " </extension>";
52   protected final String JavaDoc TEXT_35 = NL + NL + "</plugin>" + NL;
53   protected final String JavaDoc TEXT_36 = NL;
54
55   public String JavaDoc generate(Object JavaDoc argument)
56   {
57     StringBuffer JavaDoc stringBuffer = new StringBuffer JavaDoc();
58     
59 /**
60  * <copyright>
61  *
62  * Copyright (c) 2002-2005 IBM Corporation and others.
63  * All rights reserved. This program and the accompanying materials
64  * are made available under the terms of the Eclipse Public License v1.0
65  * which accompanies this distribution, and is available at
66  * http://www.eclipse.org/legal/epl-v10.html
67  *
68  * Contributors:
69  * IBM - Initial API and implementation
70  *
71  * </copyright>
72  */

73
74     GenModel genModel = (GenModel)argument;
75     stringBuffer.append(TEXT_1);
76     stringBuffer.append(TEXT_2);
77     stringBuffer.append(TEXT_3);
78     stringBuffer.append(TEXT_4);
79     stringBuffer.append("$");
80     stringBuffer.append(TEXT_5);
81     stringBuffer.append("$");
82     stringBuffer.append(TEXT_6);
83     if (genModel.isBundleManifest()) {
84     stringBuffer.append(TEXT_7);
85     } else {
86     stringBuffer.append(TEXT_8);
87     stringBuffer.append(genModel.getEditPluginID());
88     stringBuffer.append(TEXT_9);
89     stringBuffer.append(genModel.getQualifiedEditPluginClassName());
90     stringBuffer.append(TEXT_10);
91     for (Iterator j=genModel.getEditRequiredPlugins().iterator(); j.hasNext();) { String JavaDoc pluginID = (String JavaDoc)j.next();
92     stringBuffer.append(TEXT_11);
93     stringBuffer.append(pluginID);
94     stringBuffer.append(TEXT_12);
95     if (!pluginID.startsWith("org.eclipse.core.runtime")) {
96     stringBuffer.append(TEXT_13);
97     }
98     stringBuffer.append(TEXT_14);
99     }
100     stringBuffer.append(TEXT_15);
101     if (genModel.isRuntimeJar()) {
102     stringBuffer.append(TEXT_16);
103     stringBuffer.append(genModel.getEditPluginID());
104     stringBuffer.append(TEXT_17);
105     } else {
106     stringBuffer.append(TEXT_18);
107     }
108     stringBuffer.append(TEXT_19);
109     }
110      for (Iterator i = genModel.getAllGenPackagesWithClassifiers().iterator(); i.hasNext(); ) { GenPackage genPackage = (GenPackage)i.next();
111     stringBuffer.append(TEXT_20);
112     stringBuffer.append(genPackage.getNSURI());
113     stringBuffer.append(TEXT_21);
114     stringBuffer.append(genPackage.getQualifiedItemProviderAdapterFactoryClassName());
115     stringBuffer.append(TEXT_22);
116     for (ListIterator j = genPackage.getProviderSupportedTypes().listIterator(); j.hasNext(); ) {
117     stringBuffer.append(TEXT_23);
118     stringBuffer.append((j.hasPrevious()? " " : "\"") + j.next() + (j.hasNext() ? "" : "\""));
119     }
120     stringBuffer.append(TEXT_24);
121     }
122     if (genModel.sameModelEditProject()) {
123      for (Iterator i = genModel.getAllGenPackagesWithClassifiers().iterator(); i.hasNext(); ) { GenPackage genPackage = (GenPackage)i.next();
124     stringBuffer.append(TEXT_25);
125     stringBuffer.append(genPackage.getNSURI());
126     stringBuffer.append(TEXT_26);
127     stringBuffer.append(genPackage.getQualifiedPackageInterfaceName());
128     stringBuffer.append(TEXT_27);
129     if (!genModel.hasLocalGenModel()) {
130     stringBuffer.append(TEXT_28);
131     } else {
132     stringBuffer.append(TEXT_29);
133     stringBuffer.append(genModel.getRelativeGenModelLocation());
134     stringBuffer.append(TEXT_30);
135     }
136     stringBuffer.append(TEXT_31);
137     if (genPackage.getResource() != GenResourceKind.NONE_LITERAL) {
138     stringBuffer.append(TEXT_32);
139     stringBuffer.append(genPackage.getPrefix().toLowerCase());
140     stringBuffer.append(TEXT_33);
141     stringBuffer.append(genPackage.getQualifiedResourceFactoryClassName());
142     stringBuffer.append(TEXT_34);
143     }
144     }
145     }
146     stringBuffer.append(TEXT_35);
147     stringBuffer.append(TEXT_36);
148     return stringBuffer.toString();
149   }
150 }
151
Popular Tags