Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse')
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/AssembleScripts.java137
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/TestCDODocumentation.java56
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Article.java82
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/ArticleDoclet.java85
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/ArticleFactory.java161
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/ArticlePackage.java2590
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Body.java75
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/BodyElement.java100
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Callout.java75
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Category.java72
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Chapter.java39
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Context.java106
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Diagram.java50
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Documentation.java252
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/EmbeddableElement.java63
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Embedding.java51
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/ExternalTarget.java18
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Factory.java18
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Identifiable.java40
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/JavaElement.java18
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Link.java50
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/LinkTarget.java46
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Snippet.java44
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/SourceCode.java18
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/StructuralElement.java183
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Text.java50
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ArticleDoclet.java208
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ArticleFactoryImpl.java369
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ArticleImpl.java52
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ArticlePackageImpl.java1169
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/BodyElementImpl.java351
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/BodyImpl.java346
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/CalloutImpl.java268
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/CategoryImpl.java62
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ChapterImpl.java114
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ContextImpl.java372
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/DelegatingTag.java (renamed from plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/DelegatingTag.java)2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/DiagramImpl.java176
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/DocumentationImpl.java529
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/EmbeddableElementImpl.java253
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/EmbeddingImpl.java150
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ExternalTargetImpl.java67
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/FactoryImpl.java69
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/JavaElementImpl.java66
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/LinkImpl.java150
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/LinkTargetImpl.java127
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/SnippetImpl.java207
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/SourceCodeImpl.java44
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/StructuralElementImpl.java596
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/TextImpl.java186
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/TextTag.java45
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/UnresolvedBodyElementImpl.java34
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/Article.java78
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/ArticleDoclet.java147
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/ArticleElement.java (renamed from plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/ArticleElement.java)7
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/Category.java67
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/CategoryElement.java (renamed from plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/CategoryElement.java)3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/Documentation.java163
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/DocumentationElement.java (renamed from plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/DocumentationElement.java)3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/DocumentationGenerator.java (renamed from plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/DocumentationGenerator.java)8
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/DocumentationResolver.java (renamed from plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/DocumentationResolver.java)9
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/Section.java (renamed from plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Section.java)3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/Test.java (renamed from plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Test.java)2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/util/DelegatingTag.java74
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/util/HtmlWriter.java (renamed from plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/HtmlWriter.java)2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/util/JavaDoc.java (renamed from plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/JavaDoc.java)44
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/util/RefTag.java (renamed from plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/RefTag.java)4
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/util/SnippetTag.java (renamed from plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/SnippetTag.java)8
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/util/TextTag.java (renamed from plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/TextTag.java)3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/ArticleAdapterFactory.java550
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/ArticleException.java (renamed from plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/ArticleException.java)2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/ArticleSwitch.java673
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/ArticleUtil.java160
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/java/MovePackageDescriptions.java12
74 files changed, 12048 insertions, 465 deletions
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/AssembleScripts.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/AssembleScripts.java
index 5807fb2119..a3af60b168 100644
--- a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/AssembleScripts.java
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/AssembleScripts.java
@@ -73,7 +73,7 @@ public class AssembleScripts
if (plugin.isDirectory())
{
Properties buildProperties = getProperties(new File(plugin, "build.properties"));
- String javadocProject = buildProperties.getProperty("org.eclipse.emf.cdo.releng.javadoc.project");
+ String javadocProject = buildProperties.getProperty("doc.project");
if (javadocProject != null)
{
Set<String> excludedPackages = getExcludedPackages(buildProperties);
@@ -84,6 +84,8 @@ public class AssembleScripts
for (JavaDoc javaDoc : ANTLIB.getJavaDocs())
{
+ assembleArticleOptions(javaDoc);
+
javaDoc.generateAnt();
javaDoc.generateToc();
}
@@ -113,6 +115,7 @@ public class AssembleScripts
throws IOException, BundleException
{
SourcePlugin sourcePlugin = ANTLIB.getSourcePlugin(plugin.getName());
+ Set<String> packageNames = sourcePlugin.getPackageNames();
JavaDoc javaDoc = ANTLIB.getJavaDoc(javadocProject);
javaDoc.getSourcePlugins().add(sourcePlugin);
@@ -125,7 +128,7 @@ public class AssembleScripts
{
javaDoc.getSourceFolders().add(plugin.getName() + "/src/" + packageName.replace('.', '/'));
javaDoc.getPackageNames().add(packageName);
- sourcePlugin.getPackageNames().add(packageName);
+ packageNames.add(packageName);
}
else
{
@@ -134,6 +137,29 @@ public class AssembleScripts
}
}
+ private static void assembleArticleOptions(JavaDoc javaDoc) throws IOException, BundleException
+ {
+ File plugin = javaDoc.getProject();
+ Manifest manifest = getManifest(plugin);
+
+ ManifestElement[] manifestElements = getManifestElements(manifest);
+ if (manifestElements == null || manifestElements.length == 0)
+ {
+ System.err.println("Warning: No public packages in " + plugin.getName());
+ }
+ else
+ {
+ for (ManifestElement manifestElement : manifestElements)
+ {
+ if (isPublic(manifestElement))
+ {
+ String packageName = manifestElement.getValue().trim();
+ javaDoc.getArticlePackages().add(packageName);
+ }
+ }
+ }
+ }
+
private static boolean isPublic(ManifestElement manifestElement)
{
return manifestElement.getDirective("x-internal") == null && manifestElement.getDirective("x-friends") == null;
@@ -162,8 +188,7 @@ public class AssembleScripts
{
Attributes attributes = manifest.getMainAttributes();
String exportPackage = attributes.getValue(EXPORT_PACKAGE);
- ManifestElement[] manifestElements = ManifestElement.parseHeader(EXPORT_PACKAGE, exportPackage);
- return manifestElements;
+ return ManifestElement.parseHeader(EXPORT_PACKAGE, exportPackage);
}
private static Manifest getManifest(File plugin) throws IOException
@@ -186,7 +211,7 @@ public class AssembleScripts
}
}
- private static Properties getProperties(File file) throws IOException
+ public static Properties getProperties(File file)
{
Properties properties = new Properties();
@@ -199,11 +224,22 @@ public class AssembleScripts
in = new FileInputStream(file);
properties.load(in);
}
+ catch (IOException ex)
+ {
+ throw new RuntimeException(ex);
+ }
finally
{
if (in != null)
{
- in.close();
+ try
+ {
+ in.close();
+ }
+ catch (IOException ex)
+ {
+ ex.printStackTrace();
+ }
}
}
}
@@ -211,6 +247,37 @@ public class AssembleScripts
return properties;
}
+ public static List<String> getDependencies(File projectFolder)
+ {
+ List<String> result = new ArrayList<String>();
+
+ Properties buildProperties = getProperties(new File(projectFolder, "build.properties"));
+ String depends = buildProperties.getProperty("doc.depends");
+ if (depends != null)
+ {
+ StringTokenizer tokenizer = new StringTokenizer(depends, ",");
+ while (tokenizer.hasMoreTokens())
+ {
+ String depend = tokenizer.nextToken().trim();
+ result.add(depend);
+ }
+ }
+
+ return result;
+ }
+
+ public static String getPluginName(File projectFolder)
+ {
+ Properties pluginProperties = getProperties(new File(projectFolder, "plugin.properties"));
+ String pluginName = pluginProperties.getProperty("pluginName");
+ if (pluginName == null)
+ {
+ pluginName = "Plugin " + projectFolder.getName();
+ }
+
+ return pluginName;
+ }
+
private static List<String> sort(Collection<String> collection)
{
List<String> result = new ArrayList<String>(collection);
@@ -289,17 +356,7 @@ public class AssembleScripts
javaDoc = new JavaDoc(projectName);
javaDocs.put(projectName, javaDoc);
- Properties buildProperties = getProperties(new File(javaDoc.getProject(), "build.properties"));
- String depends = buildProperties.getProperty("org.eclipse.emf.cdo.releng.javadoc.depends");
- if (depends != null)
- {
- StringTokenizer tokenizer = new StringTokenizer(depends, ",");
- while (tokenizer.hasMoreTokens())
- {
- String depend = tokenizer.nextToken().trim();
- javaDoc.getDependencies().add(depend);
- }
- }
+ javaDoc.getDependencies().addAll(getDependencies(javaDoc.getProject()));
}
return javaDoc;
@@ -419,12 +476,7 @@ public class AssembleScripts
public SourcePlugin(String projectName) throws IOException
{
this.projectName = projectName;
- Properties pluginProperties = getProperties(new File(getProject(), "plugin.properties"));
- label = pluginProperties.getProperty("pluginName");
- if (label == null)
- {
- label = "Plugin " + projectName;
- }
+ label = getPluginName(getProject());
}
@Override
@@ -575,6 +627,8 @@ public class AssembleScripts
private Set<String> packageExcludes = new HashSet<String>();
+ private Set<String> articlePackages = new HashSet<String>();
+
public JavaDoc(String projectName)
{
this.projectName = projectName;
@@ -642,6 +696,11 @@ public class AssembleScripts
return packageExcludes;
}
+ public Set<String> getArticlePackages()
+ {
+ return articlePackages;
+ }
+
public void generateAnt() throws IOException
{
File project = getProject();
@@ -671,6 +730,13 @@ public class AssembleScripts
{
writeGenerationWarning(writer);
}
+ else if ("<!-- ARTICLE SKIP -->".equals(id))
+ {
+ if (articlePackages.isEmpty())
+ {
+ writer.write("\t<property name=\"article.skip\" value=\"true\" />\n");
+ }
+ }
else if ("<!-- SOURCE FOLDERS -->".equals(id))
{
for (String sourceFolder : sort(sourceFolders))
@@ -718,7 +784,23 @@ public class AssembleScripts
writer.write("\t\t\t<excludepackage name=\"" + packageExclude + "\" />\n");
}
}
- else if ("<!-- DEPENDENCIES -->".equals(id))
+ else if ("<!-- ARTICLE PACKAGES -->".equals(id))
+ {
+ for (String articlePackage : sort(articlePackages))
+ {
+ writer.write("\t\t\t<package name=\"" + articlePackage + "\" />\n");
+ }
+
+ for (String dependency : sort(getAllDependencies()))
+ {
+ JavaDoc javaDoc = ANTLIB.getJavaDoc(dependency);
+ for (String articlePackage : sort(javaDoc.getArticlePackages()))
+ {
+ writer.write("\t\t\t<package name=\"" + articlePackage + "\" />\n");
+ }
+ }
+ }
+ else if ("<!-- JAVADOC DEPENDENCIES -->".equals(id))
{
for (String dependency : sort(getAllDependencies()))
{
@@ -726,6 +808,13 @@ public class AssembleScripts
+ "/javadoc\" offline=\"true\" packagelistloc=\"plugins/" + dependency + "/javadoc\" />\n");
}
}
+ else if ("<!-- ARTICLE DEPENDENCIES -->".equals(id))
+ {
+ for (String dependency : sort(getAllDependencies()))
+ {
+ writer.write("\t\t\t\t<include name=\"" + dependency + "/src/**/*.java\" />\n");
+ }
+ }
else if ("<!-- GROUPS -->".equals(id))
{
for (SourcePlugin sourcePlugin : getSortedSourcePlugins())
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/TestCDODocumentation.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/TestCDODocumentation.java
new file mode 100644
index 0000000000..faa0357f75
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/TestCDODocumentation.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.doc;
+
+import org.eclipse.emf.cdo.releng.doc.article.impl.ArticleDoclet;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Eike Stepper
+ */
+public class TestCDODocumentation
+{
+ private static List<String> arguments = new ArrayList<String>();
+
+ private static void add(String argument)
+ {
+ int space = argument.trim().indexOf(' ');
+ if (space == -1)
+ {
+ arguments.add(argument);
+ }
+ else
+ {
+ arguments.add(argument.substring(0, space));
+ add(argument.substring(space + 1).trim());
+ }
+ }
+
+ public static void main(String[] args)
+ {
+ add("-sourcepath /develop/ws/cdo/plugins/org.eclipse.net4j.util.doc/src;/develop/ws/cdo/plugins/org.eclipse.net4j.db.doc/src;/develop/ws/cdo/plugins/org.eclipse.net4j.doc/src;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.doc/src");
+ add("-subpackages org.eclipse.net4j.util.doc:org.eclipse.emf.cdo.doc.connectors:org.eclipse.emf.cdo.doc.sessions");
+ add("-doclet org.eclipse.emf.cdo.releng.doc.article.impl.ArticleDoclet");
+ add("-docletpath /develop/ws/cdo/plugins/org.eclipse.emf.cdo.releng.doc/bin;/develop/bin/org.eclipse.emf.cdo.releng.doc.supplemental/bin;/develop/ws/cdo/_target/plugins/org.eclipse.emf.ecore_2.7.0.v20110605-0747.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.common_2.7.0.v20110605-0747.jar");
+ add("-encoding ISO-8859-1");
+ add("-private");
+ add("-classpath /develop/ws/cdo/_target/plugins/com.db4o_7.4.155.v20110215-0651.jar;/develop/ws/cdo/_target/plugins/com.google.collect.source_1.0.0.v201105210816.jar;/develop/ws/cdo/_target/plugins/com.google.collect_1.0.0.v201105210816.jar;/develop/ws/cdo/_target/plugins/com.google.inject.source_2.0.0.v201105231817.jar;/develop/ws/cdo/_target/plugins/com.google.inject_2.0.0.v201105231817.jar;/develop/ws/cdo/_target/plugins/com.ibm.icu.source_4.4.2.v20110208.jar;/develop/ws/cdo/_target/plugins/com.ibm.icu_4.4.2.v20110208.jar;/develop/ws/cdo/_target/plugins/com.jcraft.jsch.source_0.1.41.v201101211617.jar;/develop/ws/cdo/_target/plugins/com.jcraft.jsch_0.1.41.v201101211617.jar;/develop/ws/cdo/_target/plugins/com.mysql.jdbc_5.1.11.jar;/develop/ws/cdo/_target/plugins/javax.persistence_2.0.1.jar;/develop/ws/cdo/_target/plugins/javax.servlet.jsp.source_2.0.0.v201101211617.jar;/develop/ws/cdo/_target/plugins/javax.servlet.jsp_2.0.0.v201101211617.jar;/develop/ws/cdo/_target/plugins/javax.servlet.source_2.5.0.v201103041518.jar;/develop/ws/cdo/_target/plugins/javax.servlet_2.5.0.v201103041518.jar;/develop/ws/cdo/_target/plugins/javax.xml_1.3.4.v201005080400.jar;/develop/ws/cdo/_target/plugins/lpg.runtime.java.source_2.0.17.v201004271640.jar;/develop/ws/cdo/_target/plugins/lpg.runtime.java_2.0.17.v201004271640.jar;/develop/ws/cdo/_target/plugins/org.antlr.runtime.source_3.2.0.v201101311130.jar;/develop/ws/cdo/_target/plugins/org.antlr.runtime_3.2.0.v201101311130.jar;/develop/ws/cdo/_target/plugins/org.aopalliance_1.0.0.v201105210816.jar;/develop/ws/cdo/_target/plugins/org.apache.ant.source_1.8.2.v20110505-1300.jar;/develop/ws/cdo/_target/plugins/org.apache.ant_1.8.2.v20110505-1300/etc/ant-bootstrap.jar;/develop/ws/cdo/_target/plugins/org.apache.ant_1.8.2.v20110505-1300/lib/ant-antlr.jar;/develop/ws/cdo/_target/plugins/org.apache.ant_1.8.2.v20110505-1300/lib/ant-apache-bcel.jar;/develop/ws/cdo/_target/plugins/org.apache.ant_1.8.2.v20110505-1300/lib/ant-apache-bsf.jar;/develop/ws/cdo/_target/plugins/org.apache.ant_1.8.2.v20110505-1300/lib/ant-apache-log4j.jar;/develop/ws/cdo/_target/plugins/org.apache.ant_1.8.2.v20110505-1300/lib/ant-apache-oro.jar;/develop/ws/cdo/_target/plugins/org.apache.ant_1.8.2.v20110505-1300/lib/ant-apache-regexp.jar;/develop/ws/cdo/_target/plugins/org.apache.ant_1.8.2.v20110505-1300/lib/ant-apache-resolver.jar;/develop/ws/cdo/_target/plugins/org.apache.ant_1.8.2.v20110505-1300/lib/ant-apache-xalan2.jar;/develop/ws/cdo/_target/plugins/org.apache.ant_1.8.2.v20110505-1300/lib/ant-commons-logging.jar;/develop/ws/cdo/_target/plugins/org.apache.ant_1.8.2.v20110505-1300/lib/ant-commons-net.jar;/develop/ws/cdo/_target/plugins/org.apache.ant_1.8.2.v20110505-1300/lib/ant-jai.jar;/develop/ws/cdo/_target/plugins/org.apache.ant_1.8.2.v20110505-1300/lib/ant-javamail.jar;/develop/ws/cdo/_target/plugins/org.apache.ant_1.8.2.v20110505-1300/lib/ant-jdepend.jar;/develop/ws/cdo/_target/plugins/org.apache.ant_1.8.2.v20110505-1300/lib/ant-jmf.jar;/develop/ws/cdo/_target/plugins/org.apache.ant_1.8.2.v20110505-1300/lib/ant-jsch.jar;/develop/ws/cdo/_target/plugins/org.apache.ant_1.8.2.v20110505-1300/lib/ant-junit.jar;/develop/ws/cdo/_target/plugins/org.apache.ant_1.8.2.v20110505-1300/lib/ant-junit4.jar;/develop/ws/cdo/_target/plugins/org.apache.ant_1.8.2.v20110505-1300/lib/ant-launcher.jar;/develop/ws/cdo/_target/plugins/org.apache.ant_1.8.2.v20110505-1300/lib/ant-netrexx.jar;/develop/ws/cdo/_target/plugins/org.apache.ant_1.8.2.v20110505-1300/lib/ant-swing.jar;/develop/ws/cdo/_target/plugins/org.apache.ant_1.8.2.v20110505-1300/lib/ant-testutil.jar;/develop/ws/cdo/_target/plugins/org.apache.ant_1.8.2.v20110505-1300/lib/ant.jar;/develop/ws/cdo/_target/plugins/org.apache.batik.bridge.source_1.6.0.v201011041432.jar;/develop/ws/cdo/_target/plugins/org.apache.batik.bridge_1.6.0.v201011041432.jar;/develop/ws/cdo/_target/plugins/org.apache.batik.css.source_1.6.0.v201011041432.jar;/develop/ws/cdo/_target/plugins/org.apache.batik.css_1.6.0.v201011041432.jar;/develop/ws/cdo/_target/plugins/org.apache.batik.dom.source_1.6.0.v201011041432.jar;/develop/ws/cdo/_target/plugins/org.apache.batik.dom.svg.source_1.6.0.v201011041432.jar;/develop/ws/cdo/_target/plugins/org.apache.batik.dom.svg_1.6.0.v201011041432.jar;/develop/ws/cdo/_target/plugins/org.apache.batik.dom_1.6.0.v201011041432.jar;/develop/ws/cdo/_target/plugins/org.apache.batik.ext.awt.source_1.6.0.v201011041432.jar;/develop/ws/cdo/_target/plugins/org.apache.batik.ext.awt_1.6.0.v201011041432.jar;/develop/ws/cdo/_target/plugins/org.apache.batik.parser.source_1.6.0.v201011041432.jar;/develop/ws/cdo/_target/plugins/org.apache.batik.parser_1.6.0.v201011041432.jar;/develop/ws/cdo/_target/plugins/org.apache.batik.pdf_1.6.0.v201105071520.jar;/develop/ws/cdo/_target/plugins/org.apache.batik.svggen.source_1.6.0.v201011041432.jar;/develop/ws/cdo/_target/plugins/org.apache.batik.svggen_1.6.0.v201011041432.jar;/develop/ws/cdo/_target/plugins/org.apache.batik.transcoder.source_1.6.0.v201011041432.jar;/develop/ws/cdo/_target/plugins/org.apache.batik.transcoder_1.6.0.v201011041432.jar;/develop/ws/cdo/_target/plugins/org.apache.batik.util.gui.source_1.6.0.v201011041432.jar;/develop/ws/cdo/_target/plugins/org.apache.batik.util.gui_1.6.0.v201011041432.jar;/develop/ws/cdo/_target/plugins/org.apache.batik.util.source_1.6.0.v201011041432.jar;/develop/ws/cdo/_target/plugins/org.apache.batik.util_1.6.0.v201011041432.jar;/develop/ws/cdo/_target/plugins/org.apache.batik.xml.source_1.6.0.v201011041432.jar;/develop/ws/cdo/_target/plugins/org.apache.batik.xml_1.6.0.v201011041432.jar;/develop/ws/cdo/_target/plugins/org.apache.commons.cli.source_1.2.0.v201105210650.jar;/develop/ws/cdo/_target/plugins/org.apache.commons.cli_1.2.0.v201105210650.jar;/develop/ws/cdo/_target/plugins/org.apache.commons.codec.source_1.3.0.v201101211617.jar;/develop/ws/cdo/_target/plugins/org.apache.commons.codec_1.3.0.v201101211617.jar;/develop/ws/cdo/_target/plugins/org.apache.commons.el.source_1.0.0.v201101211617.jar;/develop/ws/cdo/_target/plugins/org.apache.commons.el_1.0.0.v201101211617.jar;/develop/ws/cdo/_target/plugins/org.apache.commons.httpclient.source_3.1.0.v201012070820.jar;/develop/ws/cdo/_target/plugins/org.apache.commons.httpclient_3.1.0.v201012070820.jar;/develop/ws/cdo/_target/plugins/org.apache.commons.lang.source_2.4.0.v201005080502.jar;/develop/ws/cdo/_target/plugins/org.apache.commons.lang_2.4.0.v201005080502.jar;/develop/ws/cdo/_target/plugins/org.apache.commons.logging_1.0.4.v201101211617.jar;/develop/ws/cdo/_target/plugins/org.apache.commons.logging_1.1.1.v201101211721.jar;/develop/ws/cdo/_target/plugins/org.apache.derby.source_10.5.1.1_201105231903.jar;/develop/ws/cdo/_target/plugins/org.apache.derby_10.5.1.1_201105231903.jar;/develop/ws/cdo/_target/plugins/org.apache.jasper.source_5.5.17.v201101211617.jar;/develop/ws/cdo/_target/plugins/org.apache.jasper_5.5.17.v201101211617.jar;/develop/ws/cdo/_target/plugins/org.apache.log4j.source_1.2.15.v201012070815.jar;/develop/ws/cdo/_target/plugins/org.apache.log4j_1.2.13.v200903072027.jar;/develop/ws/cdo/_target/plugins/org.apache.log4j_1.2.15.v201012070815.jar;/develop/ws/cdo/_target/plugins/org.apache.lucene.analysis.source_2.9.1.v201101211721.jar;/develop/ws/cdo/_target/plugins/org.apache.lucene.analysis_2.9.1.v201101211721.jar;/develop/ws/cdo/_target/plugins/org.apache.lucene.core.source_2.9.1.v201101211721.jar;/develop/ws/cdo/_target/plugins/org.apache.lucene.core_2.9.1.v201101211721.jar;/develop/ws/cdo/_target/plugins/org.apache.lucene.highlighter.source_2.9.1.v20100421-0704.jar;/develop/ws/cdo/_target/plugins/org.apache.lucene.highlighter_2.9.1.v20100421-0704.jar;/develop/ws/cdo/_target/plugins/org.apache.lucene.memory.source_2.9.1.v20100421-0704.jar;/develop/ws/cdo/_target/plugins/org.apache.lucene.memory_2.9.1.v20100421-0704.jar;/develop/ws/cdo/_target/plugins/org.apache.lucene.misc.source_2.9.1.v20100421-0704.jar;/develop/ws/cdo/_target/plugins/org.apache.lucene.misc_2.9.1.v20100421-0704.jar;/develop/ws/cdo/_target/plugins/org.apache.lucene.queries.source_2.9.1.v20100421-0704.jar;/develop/ws/cdo/_target/plugins/org.apache.lucene.queries_2.9.1.v20100421-0704.jar;/develop/ws/cdo/_target/plugins/org.apache.lucene.snowball.source_2.9.1.v20100421-0704.jar;/develop/ws/cdo/_target/plugins/org.apache.lucene.snowball_2.9.1.v20100421-0704.jar;/develop/ws/cdo/_target/plugins/org.apache.lucene.source_2.9.1.v201101211721.jar;/develop/ws/cdo/_target/plugins/org.apache.lucene.spellchecker.source_2.9.1.v20100421-0704.jar;/develop/ws/cdo/_target/plugins/org.apache.lucene.spellchecker_2.9.1.v20100421-0704.jar;/develop/ws/cdo/_target/plugins/org.apache.lucene_2.9.1.v201101211721.jar;/develop/ws/cdo/_target/plugins/org.apache.xerces_2.9.0.v201101211617.jar;/develop/ws/cdo/_target/plugins/org.apache.xml.resolver_1.2.0.v201005080400.jar;/develop/ws/cdo/_target/plugins/org.apache.xml.serializer_2.7.1.v201005080400.jar;/develop/ws/cdo/_target/plugins/org.dom4j_1.6.1.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ant.core.source_3.2.300.v20110511.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ant.core_3.2.300.v20110511.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ant.launching.source_1.0.100.v20110506.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ant.launching_1.0.100.v20110506.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ant.ui.source_3.5.100.v20110510.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ant.ui_3.5.100.v20110510.jar;/develop/ws/cdo/_target/plugins/org.eclipse.compare.core.source_3.5.200.I20110208-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.compare.core_3.5.200.I20110208-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.compare.source_3.5.200.I20110525-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.compare.win32.source_1.0.200.I20110510-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.compare.win32_1.0.200.I20110510-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.compare_3.5.200.I20110525-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.boot_3.1.200.v20100505.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.commands.source_3.6.0.I20110111-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.commands_3.6.0.I20110111-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.contenttype.source_3.4.100.v20110423-0524.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.contenttype_3.4.100.v20110423-0524.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.databinding.beans.source_1.2.100.I20100824-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.databinding.beans_1.2.100.I20100824-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.databinding.observable.source_1.4.0.I20110222-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.databinding.observable_1.4.0.I20110222-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.databinding.property.source_1.4.0.I20110222-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.databinding.property_1.4.0.I20110222-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.databinding.source_1.4.0.I20110111-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.databinding_1.4.0.I20110111-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.expressions.source_3.4.300.v20110228.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.expressions_3.4.300.v20110228.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.externaltools.source_1.0.100.v20110506.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.externaltools_1.0.100.v20110506.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.filebuffers.source_3.5.200.v20110505-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.filebuffers_3.5.200.v20110505-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.filesystem.aix.ppc_1.1.0.v20110423-0524.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.filesystem.hpux.ia64_32_1.0.100.v20110423-0524.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.filesystem.linux.x86_1.4.0.v20110423-0524.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.filesystem.linux.x86_64_1.2.0.v20110423-0524.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.filesystem.macosx_1.3.0.v20110423-0524.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.filesystem.solaris.sparc_1.2.0.v20110423-0524.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.filesystem.source_1.3.100.v20110423-0524.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.filesystem.win32.x86_1.1.300.v20110423-0524.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.filesystem.win32.x86_64_1.1.300.v20110423-0524.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.filesystem_1.3.100.v20110423-0524.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.jobs.source_3.5.100.v20110404.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.jobs_3.5.100.v20110404.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.net.linux.x86_1.1.200.I20110419-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.net.linux.x86_64_1.1.0.I20110331-0827.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.net.source_1.2.100.I20110511-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.net.win32.x86_1.0.100.I20110331-0827.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.net.win32.x86_64_1.0.100.I20110331-0827.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.net_1.2.100.I20110511-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.resources.source_3.7.100.v20110510-0712.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.resources.win32.x86_3.5.100.v20110423-0524.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.resources_3.7.100.v20110510-0712.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.runtime.compatibility.auth.source_3.2.200.v20110110.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.runtime.compatibility.auth_3.2.200.v20110110.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.runtime.compatibility.registry.source_3.5.0.v20110505.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.runtime.compatibility.registry_3.5.0.v20110505/runtime_registry_compatibility.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.runtime.compatibility.source_3.2.100.v20100505.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.runtime.compatibility_3.2.100.v20100505.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.runtime.source_3.7.0.v20110110.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.runtime_3.7.0.v20110110.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.variables.source_3.2.500.v20110511.jar;/develop/ws/cdo/_target/plugins/org.eclipse.core.variables_3.2.500.v20110511.jar;/develop/ws/cdo/_target/plugins/org.eclipse.debug.core.source_3.7.0.v20110518.jar;/develop/ws/cdo/_target/plugins/org.eclipse.debug.core_3.7.0.v20110518.jar;/develop/ws/cdo/_target/plugins/org.eclipse.debug.ui.source_3.7.0.v20110518.jar;/develop/ws/cdo/_target/plugins/org.eclipse.debug.ui_3.7.0.v20110518.jar;/develop/ws/cdo/_target/plugins/org.eclipse.draw2d.source_3.7.0.v20110425-2050.jar;/develop/ws/cdo/_target/plugins/org.eclipse.draw2d_3.7.0.v20110425-2050.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ecf.filetransfer.source_5.0.0.v20110531-2218.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ecf.filetransfer_5.0.0.v20110531-2218.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ecf.identity.source_3.1.100.v20110531-2218.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ecf.identity_3.1.100.v20110531-2218.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ecf.provider.filetransfer.httpclient.source_4.0.0.v20110531-2218.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ecf.provider.filetransfer.httpclient.ssl.source_1.0.0.v20110531-2218.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ecf.provider.filetransfer.httpclient.ssl_1.0.0.v20110531-2218.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ecf.provider.filetransfer.httpclient_4.0.0.v20110531-2218.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ecf.provider.filetransfer.source_3.2.0.v20110531-2218.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ecf.provider.filetransfer.ssl.source_1.0.0.v20110531-2218.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ecf.provider.filetransfer.ssl_1.0.0.v20110531-2218.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ecf.provider.filetransfer_3.2.0.v20110531-2218.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ecf.source_3.1.300.v20110531-2218.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ecf.ssl.source_1.0.100.v20110531-2218.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ecf.ssl_1.0.100.v20110531-2218.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ecf_3.1.300.v20110531-2218.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.ant.source_2.7.0.v20100905-1633.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.ant_2.7.0.v20100905-1633.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.codegen.ecore.source_2.7.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.codegen.ecore.ui.source_2.7.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.codegen.ecore.ui_2.7.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.codegen.ecore_2.7.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.codegen.source_2.6.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.codegen.ui.source_2.6.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.codegen.ui_2.6.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.codegen_2.6.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.common.source_2.7.0.v20110605-0747.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.common.ui.source_2.7.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.common.ui_2.7.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.common_2.7.0.v20110605-0747.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.converter.source_2.5.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.converter_2.5.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.databinding.edit.source_1.2.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.databinding.edit_1.2.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.databinding.source_1.2.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.databinding_1.2.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.ecore.change.edit.source_2.5.0.v20100521-1846.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.ecore.change.edit_2.5.0.v20100521-1846.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.ecore.change.source_2.7.0.v20110408-2116.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.ecore.change_2.7.0.v20110408-2116.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.ecore.edit.source_2.7.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.ecore.edit_2.7.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.ecore.editor.source_2.7.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.ecore.editor_2.7.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.ecore.source_2.7.0.v20110605-0747.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.ecore.xmi.source_2.7.0.v20110520-1406.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.ecore.xmi_2.7.0.v20110520-1406.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.ecore_2.7.0.v20110605-0747.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.ecoretools.diagram.source_1.0.0.v20110601-1615.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.ecoretools.diagram.ui.outline.source_1.0.0.v20110601-1615.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.ecoretools.diagram.ui.outline_1.0.0.v20110601-1615.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.ecoretools.diagram_1.0.0.v20110601-1615.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.ecoretools.filters.source_1.0.0.v20110601-1615.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.ecoretools.filters_1.0.0.v20110601-1615.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.ecoretools.properties.source_1.0.0.v20110601-1615.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.ecoretools.properties_1.0.0.v20110601-1615.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.ecoretools.source_1.0.0.v20110608-1236.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.ecoretools.tabbedproperties.source_1.0.0.v20110601-1614.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.ecoretools.tabbedproperties_1.0.0.v20110601-1614.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.ecoretools_1.0.0.v20110608-1236.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.edit.source_2.7.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.edit.ui.source_2.7.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.edit.ui_2.7.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.edit_2.7.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.exporter.source_2.6.0.v20100521-1846.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.exporter_2.6.0.v20100521-1846.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.importer.ecore.source_2.6.0.v20100521-1846.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.importer.ecore_2.6.0.v20100521-1846.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.importer.java.source_2.6.0.v20100521-1846.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.importer.java_2.6.0.v20100521-1846.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.importer.rose.source_2.6.0.v20100521-1846.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.importer.rose_2.6.0.v20100521-1846.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.importer.source_2.6.0.v20100521-1846.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.importer_2.6.0.v20100521-1846.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.mapping.ecore.editor_2.6.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.mapping.ecore2ecore.editor.source_2.5.0.v20110120-0110.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.mapping.ecore2ecore.editor_2.5.0.v20110120-0110.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.mapping.ecore2ecore.source_2.7.0.v20110331-2022.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.mapping.ecore2ecore_2.7.0.v20110331-2022.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.mapping.ecore2xml.source_2.7.0.v20110331-2022.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.mapping.ecore2xml.ui.source_2.6.0.v20110120-0109.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.mapping.ecore2xml.ui_2.6.0.v20110120-0109.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.mapping.ecore2xml_2.7.0.v20110331-2022.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.mapping.ecore_2.6.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.mapping.source_2.7.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.mapping.ui.source_2.6.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.mapping.ui_2.6.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.mapping_2.7.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.mwe.core.source_1.1.0.v201106060409.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.mwe.core_1.1.0.v201106060409.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.mwe.utils.source_1.1.0.v201106060409.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.mwe.utils_1.1.0.v201106060409.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.mwe2.lib.source_2.0.0.v201106060409.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.mwe2.lib_2.0.0.v201106060409.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.mwe2.runtime.source_2.0.0.v201106060409.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.mwe2.runtime_2.0.0.v201106060409.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.teneo.annotations.source_1.2.0.v201107080556.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.teneo.annotations_1.2.0.v201107080556.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.teneo.eclipse.source_1.1.2.v201107080556.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.teneo.eclipse_1.1.2.v201107080556.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.teneo.hibernate.eclipse.source_1.1.2.v201107080556.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.teneo.hibernate.eclipse_1.1.2.v201107080556.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.teneo.hibernate.mapper.source_1.2.0.v201107080556.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.teneo.hibernate.mapper_1.2.0.v201107080556.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.teneo.hibernate.source_1.2.0.v201107080556.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.teneo.hibernate_1.2.0.v201107080556.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.teneo.source_1.2.0.v201107080556.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.teneo_1.2.0.v201107080556.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.transaction.source_1.4.0.v20100331-1738.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.transaction.ui.source_1.4.0.v20090819-1300.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.transaction.ui_1.4.0.v20090819-1300.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.transaction_1.4.0.v20100331-1738.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.validation.source_1.4.0.v20100428-2315.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.validation.ui.ide.source_1.3.0.v200901271722.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.validation.ui.ide_1.3.0.v200901271722.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.validation.ui.source_1.3.0.v200901271722.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.validation.ui_1.3.0.v200901271722.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.validation_1.4.0.v20100428-2315.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.workspace.source_1.4.0.v20100224-1706.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.workspace.ui.source_1.3.0.v200901271819.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.workspace.ui_1.3.0.v200901271819.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf.workspace_1.4.0.v20100224-1706.jar;/develop/ws/cdo/_target/plugins/org.eclipse.emf_2.6.0.v20110606-0949.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.app.source_1.3.100.v20110321.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.app_1.3.100.v20110321.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.common.source_3.6.0.v20110523.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.common_3.6.0.v20110523.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.ds.source_1.3.0.v20110502.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.ds_1.3.0.v20110502.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.event.source_1.2.100.v20110502.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.event_1.2.100.v20110502.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.frameworkadmin.equinox.source_1.0.300.v20110506.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.frameworkadmin.equinox_1.0.300.v20110506.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.frameworkadmin.source_2.0.0.v20110502-1955.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.frameworkadmin_2.0.0.v20110502-1955.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.http.jetty.source_2.0.100.v20110502.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.http.jetty_2.0.100.v20110502.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.http.registry.source_1.1.100.v20110502.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.http.registry_1.1.100.v20110502.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.http.servlet.source_1.1.200.v20110502.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.http.servlet_1.1.200.v20110502.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.jsp.jasper.registry.source_1.0.200.v20100503.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.jsp.jasper.registry_1.0.200.v20100503.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.jsp.jasper.source_1.0.300.v20110502.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.jsp.jasper_1.0.300.v20110502.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.launcher.source_1.2.0.v20110502.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.artifact.repository.source_1.1.100.v20110519.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.artifact.repository_1.1.100.v20110519.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.console.source_1.0.300.v20110502-1955.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.console_1.0.300.v20110502-1955.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.core.source_2.1.0.v20110502-1955.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.core_2.1.0.v20110502-1955.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.director.app.source_1.0.300.v20110505.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.director.app_1.0.300.v20110505.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.director.source_2.1.0.v20110504-1715.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.director_2.1.0.v20110504-1715.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.directorywatcher.source_1.0.300.v20110502-1955.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.directorywatcher_1.0.300.v20110502-1955.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.engine.source_2.1.0.v20110511.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.engine_2.1.0.v20110511.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.extensionlocation.source_1.2.100.v20110510.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.extensionlocation_1.2.100.v20110510.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.garbagecollector.source_1.0.200.v20110510.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.garbagecollector_1.0.200.v20110510.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.jarprocessor.source_1.0.200.v20110502-1955.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.jarprocessor_1.0.200.v20110502-1955.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.metadata.repository.source_1.2.0.v20110511-1359.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.metadata.repository_1.2.0.v20110511-1359.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.metadata.source_2.1.0.v20110510.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.metadata_2.1.0.v20110510.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.operations.source_2.1.0.v20110511-1821.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.operations_2.1.0.v20110511-1821.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.publisher.eclipse.source_1.0.0.v20110511.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.publisher.eclipse_1.0.0.v20110511/ant_tasks/pdepublishing-ant.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.publisher.eclipse_1.0.0.v20110511/pdepublishing.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.publisher.source_1.2.0.v20110511.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.publisher_1.2.0.v20110511.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.ql.source_2.0.100.v20110510.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.ql_2.0.100.v20110510.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.reconciler.dropins.source_1.1.100.v20110510.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.reconciler.dropins_1.1.100.v20110510.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.repository.source_2.1.0.v20110601.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.repository.tools.source_2.0.100.v20110512-1320.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.repository.tools_2.0.100.v20110512-1320.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.repository_2.1.0.v20110601.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.touchpoint.eclipse.source_2.1.0.v20110511.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.touchpoint.eclipse_2.1.0.v20110511.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.touchpoint.natives.source_1.0.300.v20110502-1955.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.touchpoint.natives_1.0.300.v20110502-1955.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.transport.ecf.source_1.0.0.v20110510.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.transport.ecf_1.0.0.v20110510.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.ui.importexport.source_1.0.0.v20110511.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.ui.importexport_1.0.0.v20110511.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.ui.sdk.scheduler.source_1.0.100.v20110502-1955.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.ui.sdk.scheduler_1.0.100.v20110502-1955.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.ui.sdk.source_1.0.200.v20110502-1955.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.ui.sdk_1.0.200.v20110502-1955.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.ui.source_2.1.0.v20110601.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.ui_2.1.0.v20110601.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.updatechecker.source_1.1.200.v20110502-1955.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.updatechecker_1.1.200.v20110502-1955.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.updatesite.source_1.0.300.v20110510.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.p2.updatesite_1.0.300.v20110510.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.preferences.source_3.4.0.v20110502.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.preferences_3.4.0.v20110502.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.registry.source_3.5.100.v20110502.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.registry_3.5.100.v20110502.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.security.macosx.source_1.100.100.v20100503.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.security.macosx_1.100.100.v20100503.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.security.source_1.1.0.v20110502.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.security.ui.source_1.1.0.v20101004.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.security.ui_1.1.0.v20101004.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.security.win32.x86.source_1.0.200.v20100503.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.security.win32.x86_1.0.200.v20100503.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.security.win32.x86_64.source_1.0.0.v20110502.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.security.win32.x86_64_1.0.0.v20110502.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.security_1.1.0.v20110502.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.simpleconfigurator.manipulator.source_2.0.0.v20110502-1955.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.simpleconfigurator.manipulator_2.0.0.v20110502-1955.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.simpleconfigurator.source_1.0.200.v20110502-1955.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.simpleconfigurator_1.0.200.v20110502-1955.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.util.source_1.0.300.v20110502.jar;/develop/ws/cdo/_target/plugins/org.eclipse.equinox.util_1.0.300.v20110502.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gef.source_3.7.0.v20110407-2050.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gef_3.7.0.v20110407-2050.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.codegen.edit.source_2.2.100.v20100309-2359.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.codegen.edit_2.2.100.v20100309-2359.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.codegen.source_2.2.200.v20101209-2359.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.codegen_2.2.200.v20101209-2359.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.common.source_1.2.0.v20101217-1532.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.common_1.2.0.v20101217-1532.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.graphdef.codegen.source_2.0.101.v20100901-2359.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.graphdef.codegen_2.0.101.v20100901-2359.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.graphdef.source_2.0.100.v20101215-2359.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.graphdef_2.0.100.v20101215-2359.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.common.core.source_1.4.1.v20101119-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.common.core_1.4.1.v20101119-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.common.ui.action.ide.source_1.5.0.v20101221-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.common.ui.action.ide_1.5.0.v20101221-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.common.ui.action.source_1.5.0.v20110607-1200.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.common.ui.action_1.5.0.v20110607-1200.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.common.ui.printing.source_1.4.0.v20100223-2359.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.common.ui.printing.win32.source_1.4.0.v20100223-2359.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.common.ui.printing.win32_1.4.0.v20100223-2359.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.common.ui.printing_1.4.0.v20100223-2359.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.common.ui.services.action.source_1.4.0.v20100430-1518.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.common.ui.services.action_1.4.0.v20100430-1518.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.common.ui.services.dnd.ide.source_1.5.0.v20101221-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.common.ui.services.dnd.ide_1.5.0.v20101221-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.common.ui.services.dnd.source_1.5.0.v20101221-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.common.ui.services.dnd_1.5.0.v20101221-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.common.ui.services.properties.source_1.3.1.v20101221-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.common.ui.services.properties_1.3.1.v20101221-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.common.ui.services.source_1.3.1.v20101118-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.common.ui.services_1.3.1.v20101118-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.common.ui.source_1.5.0.v20101221-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.common.ui_1.5.0.v20101221-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.diagram.core.source_1.4.1.v20101221-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.diagram.core_1.4.1.v20101221-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.diagram.ui.actions.source_1.4.1.v20101221-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.diagram.ui.actions_1.4.1.v20101221-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.diagram.ui.dnd.source_1.2.0.v20090403-1720.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.diagram.ui.dnd_1.2.0.v20090403-1720.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.diagram.ui.geoshapes.source_1.4.1.v20101119-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.diagram.ui.geoshapes_1.4.1.v20101119-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.diagram.ui.printing.render.source_1.4.1.v20101119-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.diagram.ui.printing.render_1.4.1.v20101119-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.diagram.ui.printing.source_1.4.1.v20101119-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.diagram.ui.printing_1.4.1.v20101119-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.diagram.ui.properties.source_1.4.2.v20101129-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.diagram.ui.properties_1.4.2.v20101129-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.diagram.ui.providers.ide.source_1.2.0.v20090403-1720.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.diagram.ui.providers.ide_1.2.0.v20090403-1720.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.diagram.ui.providers.source_1.5.0.v20110216-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.diagram.ui.providers_1.5.0.v20110216-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.diagram.ui.render.source_1.4.1.v20101119-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.diagram.ui.render_1.4.1.v20101119-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.source_1.2.1.v20101119-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide_1.2.1.v20101119-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.diagram.ui.resources.editor.source_1.4.1.v20101119-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.diagram.ui.resources.editor_1.4.1.v20101119-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.diagram.ui.source_1.5.0.v20110309-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.diagram.ui_1.5.0.v20110309-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.draw2d.ui.render.awt.source_1.4.1.v20101222-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.draw2d.ui.render.awt_1.4.1.v20101222-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.draw2d.ui.render.source_1.4.1.v20101119-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.draw2d.ui.render_1.4.1.v20101119-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.draw2d.ui.source_1.5.0.v20110505-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.draw2d.ui_1.5.0.v20110505-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.emf.clipboard.core.source_1.5.0.v20110529-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.emf.clipboard.core_1.5.0.v20110529-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.emf.commands.core.source_1.4.0.v20100423-2359.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.emf.commands.core_1.4.0.v20100423-2359.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.emf.core.source_1.4.1.v20101222-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.emf.core_1.4.1.v20101222-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.emf.type.core.source_1.4.0.v20100423-2359.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.emf.type.core_1.4.0.v20100423-2359.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.emf.type.ui.source_1.2.0.v20090403-1720.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.emf.type.ui_1.2.0.v20090403-1720.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.emf.ui.properties.source_1.5.0.v20101222-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.emf.ui.properties_1.5.0.v20101222-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.emf.ui.source_1.2.0.v20090403-1720.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.emf.ui_1.2.0.v20090403-1720.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.gef.ui.source_1.4.1.v20101222-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.gef.ui_1.4.1.v20101222-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.notation.edit.source_1.4.0.v20100512-1416.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.notation.edit_1.4.0.v20100512-1416.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.notation.providers.source_1.3.0.v20100115-2350.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.notation.providers_1.3.0.v20100115-2350.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.notation.source_1.5.0.v20110309-2159.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.runtime.notation_1.5.0.v20110309-2159.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.source_1.4.1.v20100716-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.validate.source_1.2.0.v20100302-2359.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.validate_1.2.0.v20100302-2359.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.xpand.qvtlibrary.source_1.1.0.v20100309-2359.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.xpand.qvtlibrary_1.1.0.v20100309-2359.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.xpand.source_2.1.0.v20101217-1532.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf.xpand_2.1.0.v20101217-1532.jar;/develop/ws/cdo/_target/plugins/org.eclipse.gmf_1.4.1.v20100716-2230.jar;/develop/ws/cdo/_target/plugins/org.eclipse.help.appserver.source_3.1.400.v20110425.jar;/develop/ws/cdo/_target/plugins/org.eclipse.help.appserver_3.1.400.v20110425.jar;/develop/ws/cdo/_target/plugins/org.eclipse.help.base.source_3.6.0.v201106131736.jar;/develop/ws/cdo/_target/plugins/org.eclipse.help.base_3.6.0.v201106131736.jar;/develop/ws/cdo/_target/plugins/org.eclipse.help.source_3.5.100.v20110426.jar;/develop/ws/cdo/_target/plugins/org.eclipse.help.ui.source_3.5.100.v20110425.jar;/develop/ws/cdo/_target/plugins/org.eclipse.help.ui_3.5.100.v20110425.jar;/develop/ws/cdo/_target/plugins/org.eclipse.help.webapp.source_3.6.0.v20110518.jar;/develop/ws/cdo/_target/plugins/org.eclipse.help.webapp_3.6.0.v20110518.jar;/develop/ws/cdo/_target/plugins/org.eclipse.help_3.5.100.v20110426.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.apt.core.source_3.3.500.v20110420-1015.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.apt.core_3.3.500.v20110420-1015.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.apt.pluggable.core.source_1.0.400.v20110305-1450.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.apt.pluggable.core_1.0.400.v20110305-1450.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.apt.ui.source_3.3.300.v20110305-1450.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.apt.ui_3.3.300.v20110305-1450.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.compiler.apt.source_1.0.400.v0110509-1300.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.compiler.apt_1.0.400.v0110509-1300.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.compiler.tool.source_1.0.100.v_B61.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.compiler.tool_1.0.100.v_B61.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.core.manipulation.source_1.4.0.v20110505-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.core.manipulation_1.4.0.v20110505-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.core.source_3.7.0.v_B61.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.core_3.7.0.v_B61.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.debug.source_3.7.0.v20110509.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.debug.ui.source_3.6.0.v20110512.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.debug.ui_3.6.0.v20110512.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.debug_3.7.0.v20110509/jdi.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.debug_3.7.0.v20110509/jdimodel.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.junit.core.source_3.7.0.v20110518-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.junit.core_3.7.0.v20110518-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.junit.runtime.source_3.4.300.v20110505-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.junit.runtime_3.4.300.v20110505-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.junit.source_3.7.0.v20110505-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.junit4.runtime.source_1.1.200.v20110505-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.junit4.runtime_1.1.200.v20110505-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.junit_3.7.0.v20110505-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.launching.macosx.source_3.2.100.v20110509.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.launching.macosx_3.2.100.v20110509.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.launching.source_3.6.0.v20110509.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.launching.ui.macosx.source_1.0.100.v20110509.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.launching.ui.macosx_1.0.100.v20110509.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.launching_3.6.0.v20110509.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.source_3.7.0.v201106131736.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.ui.source_3.7.0.v20110531-1200.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt.ui_3.7.0.v20110531-1200.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jdt_3.7.0.v201106131736.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jface.databinding.source_1.5.0.I20100907-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jface.databinding_1.5.0.I20100907-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jface.source_3.7.0.I20110522-1430.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jface.text.source_3.7.0.v20110505-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jface.text_3.7.0.v20110505-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jface_3.7.0.I20110522-1430.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jsch.core.source_1.1.300.I20110514-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jsch.core_1.1.300.I20110514-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jsch.ui.source_1.1.300.I20110511-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.jsch.ui_1.1.300.I20110511-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ltk.core.refactoring.source_3.5.200.v20110505-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ltk.core.refactoring_3.5.200.v20110505-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ltk.ui.refactoring.source_3.6.0.v20110505-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ltk.ui.refactoring_3.6.0.v20110505-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.m2m.qvt.oml.common.source_2.1.0.v20100524-1530.jar;/develop/ws/cdo/_target/plugins/org.eclipse.m2m.qvt.oml.common_2.1.0.v20100524-1530.jar;/develop/ws/cdo/_target/plugins/org.eclipse.m2m.qvt.oml.cst.parser.source_2.1.0.v20100524-1530.jar;/develop/ws/cdo/_target/plugins/org.eclipse.m2m.qvt.oml.cst.parser_2.1.0.v20100524-1530.jar;/develop/ws/cdo/_target/plugins/org.eclipse.m2m.qvt.oml.ecore.imperativeocl.source_3.0.0.v20091209-1553.jar;/develop/ws/cdo/_target/plugins/org.eclipse.m2m.qvt.oml.ecore.imperativeocl_3.0.0.v20091209-1553.jar;/develop/ws/cdo/_target/plugins/org.eclipse.m2m.qvt.oml.emf.util.source_2.0.100.v20100122-1411.jar;/develop/ws/cdo/_target/plugins/org.eclipse.m2m.qvt.oml.emf.util_2.0.100.v20100122-1411.jar;/develop/ws/cdo/_target/plugins/org.eclipse.m2m.qvt.oml.project.source_2.1.0.v20100524-1530.jar;/develop/ws/cdo/_target/plugins/org.eclipse.m2m.qvt.oml.project_2.1.0.v20100524-1530.jar;/develop/ws/cdo/_target/plugins/org.eclipse.m2m.qvt.oml.runtime.source_2.1.0.v20100606-1530.jar;/develop/ws/cdo/_target/plugins/org.eclipse.m2m.qvt.oml.runtime_2.1.0.v20100606-1530.jar;/develop/ws/cdo/_target/plugins/org.eclipse.m2m.qvt.oml.source_3.0.0.v20100606-1530.jar;/develop/ws/cdo/_target/plugins/org.eclipse.m2m.qvt.oml_3.0.0.v20100606-1530.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ocl.ecore.source_3.1.0.v20110510-2118.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ocl.ecore_3.1.0.v20110510-2118.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ocl.source_3.1.0.v20110606-1427.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ocl_3.1.0.v20110606-1427.jar;/develop/ws/cdo/_target/plugins/org.eclipse.osgi.services.source_3.3.0.v20110513.jar;/develop/ws/cdo/_target/plugins/org.eclipse.osgi.services_3.3.0.v20110513.jar;/develop/ws/cdo/_target/plugins/org.eclipse.osgi.source_3.7.0.v20110613.jar;/develop/ws/cdo/_target/plugins/org.eclipse.osgi.util.source_3.2.200.v20110110.jar;/develop/ws/cdo/_target/plugins/org.eclipse.osgi.util_3.2.200.v20110110.jar;/develop/ws/cdo/_target/plugins/org.eclipse.osgi_3.7.0.v20110613.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.api.tools.source_1.0.300.v20110523-1600.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.api.tools.ui.source_1.0.300.v20110523-1600.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.api.tools.ui_1.0.300.v20110523-1600.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.api.tools_1.0.300.v20110523-1600.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.build.source_3.7.0.v20110512-1320.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.build_3.7.0.v20110512-1320/lib/pdebuild-ant.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.build_3.7.0.v20110512-1320/pdebuild.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.core.source_3.7.0.v20110603.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.core_3.7.0.v20110603.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.ds.core.source_1.0.100.v20100601.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.ds.core_1.0.100.v20100601.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.ds.ui.source_1.0.100.v20110516.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.ds.ui_1.0.100.v20110516.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.junit.runtime.source_3.4.100.v20110406.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.junit.runtime_3.4.100.v20110406.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.launching.source_3.6.0.v20110506.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.launching_3.6.0.v20110506.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.runtime.source_3.4.200.v20110508.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.runtime_3.4.200.v20110508.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.source_3.6.100.v201106131736.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.ua.core.source_1.0.100.v20110516.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.ua.core_1.0.100.v20110516.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.ua.ui.source_1.0.100.v20110516.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.ua.ui_1.0.100.v20110516.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.ui.source_3.6.100.v20110603.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.ui.templates.source_3.4.400.v20110516.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.ui.templates_3.4.400.v20110516.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde.ui_3.6.100.v20110603.jar;/develop/ws/cdo/_target/plugins/org.eclipse.pde_3.6.100.v201106131736.jar;/develop/ws/cdo/_target/plugins/org.eclipse.platform.source_3.7.0.v201106131736.jar;/develop/ws/cdo/_target/plugins/org.eclipse.platform_3.7.0.v201106131736/platform.jar;/develop/ws/cdo/_target/plugins/org.eclipse.rcp.source_3.7.0.v201106131736.jar;/develop/ws/cdo/_target/plugins/org.eclipse.rcp_3.7.0.v201106131736.jar;/develop/ws/cdo/_target/plugins/org.eclipse.search.source_3.7.0.v20110505-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.search_3.7.0.v20110505-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swt.cocoa.macosx.source_3.7.0.v3735b.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swt.cocoa.macosx.x86_64.source_3.7.0.v3735b.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swt.cocoa.macosx.x86_64_3.7.0.v3735b.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swt.cocoa.macosx_3.7.0.v3735b.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swt.gtk.hpux.ia64_32.source_3.7.0.v3735b.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swt.gtk.hpux.ia64_32_3.7.0.v3735b.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swt.gtk.linux.ppc64.source_3.7.0.v3735b.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swt.gtk.linux.ppc64_3.7.0.v3735b.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swt.gtk.linux.s390.source_3.7.0.v3735b.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swt.gtk.linux.s390_3.7.0.v3735b.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swt.gtk.linux.s390x_3.7.0.v3735b.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swt.gtk.linux.x86.source_3.7.0.v3735b.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swt.gtk.linux.x86_3.7.0.v3735b.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swt.gtk.linux.x86_64.source_3.7.0.v3735b.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swt.gtk.linux.x86_64_3.7.0.v3735b.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swt.gtk.solaris.sparc.source_3.7.0.v3735b.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swt.gtk.solaris.sparc_3.7.0.v3735b.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swt.gtk.solaris.x86.source_3.7.0.v3735b.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swt.gtk.solaris.x86_3.7.0.v3735b.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swt.win32.win32.x86.source_3.7.0.v3735b.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swt.win32.win32.x86_3.7.0.v3735b.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swt.win32.win32.x86_64.source_3.7.0.v3735b.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swt.win32.win32.x86_64_3.7.0.v3735b.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swt_3.7.0.v3735b.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swtbot.eclipse.core_2.0.4.20110304_0338-e5aff47-dev-e36.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swtbot.eclipse.finder_2.0.4.20110304_0338-e5aff47-dev-e36.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swtbot.eclipse.gef.finder_2.0.4.20110304_0338-e5aff47-dev-e36.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swtbot.eclipse.spy_2.0.4.20110304_0338-e5aff47-dev-e36.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swtbot.forms.finder_2.0.4.20110304_0338-e5aff47-dev-e36.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swtbot.go_2.0.4.20110304_0338-e5aff47-dev-e36.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swtbot.junit4_x_2.0.4.20110304_0338-e5aff47-dev-e36.jar;/develop/ws/cdo/_target/plugins/org.eclipse.swtbot.swt.finder_2.0.4.20110304_0338-e5aff47-dev-e36.jar;/develop/ws/cdo/_target/plugins/org.eclipse.team.core.source_3.6.0.I20110525-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.team.core_3.6.0.I20110525-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.team.ui.source_3.6.100.I20110525-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.team.ui_3.6.100.I20110525-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.text.source_3.5.100.v20110505-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.text_3.5.100.v20110505-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.browser.source_3.3.100.v20110426.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.browser_3.3.100.v20110426.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.cheatsheets.source_3.4.100.v20110425.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.cheatsheets_3.4.100.v20110425.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.cocoa.source_1.1.0.I20101109-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.cocoa_1.1.0.I20101109-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.console.source_3.5.100.v20110511.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.console_3.5.100.v20110511.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.editors.source_3.7.0.v20110517-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.editors_3.7.0.v20110517-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.externaltools.source_3.2.0.v20110506.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.externaltools_3.2.0.v20110506.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.forms.source_3.5.100.v20110425.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.forms_3.5.100.v20110425.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.ide.application.source_1.0.300.I20110306-2000.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.ide.application_1.0.300.I20110306-2000.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.ide.source_3.7.0.I20110519-0100.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.ide_3.7.0.I20110519-0100.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.intro.source_3.4.100.v20110425.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.intro.universal.source_3.2.500.v20110510.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.intro.universal_3.2.500.v20110510/universal.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.intro_3.4.100.v20110425.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.navigator.resources.source_3.4.300.I20110421-1800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.navigator.resources_3.4.300.I20110421-1800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.navigator.source_3.5.100.I20110524-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.navigator_3.5.100.I20110524-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.net.source_1.2.100.I20110511-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.net_1.2.100.I20110511-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.presentations.r21.source_3.2.200.I20100517-1500.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.presentations.r21_3.2.200.I20100517-1500.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.source_3.7.0.I20110602-0100.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.views.log.source_1.0.200.v20110404.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.views.log_1.0.200.v20110404.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.views.properties.tabbed.source_3.5.200.I20110201-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.views.properties.tabbed_3.5.200.I20110201-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.views.source_3.6.0.I20110412-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.views_3.6.0.I20110412-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.win32.source_3.2.200.I20100509-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.win32_3.2.200.I20100509-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.workbench.compatibility.source_3.2.100.I20110413-1600.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.workbench.compatibility_3.2.100.I20110413-1600/compatibility.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.workbench.source_3.7.0.I20110519-0100.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.workbench.texteditor.source_3.7.0.v20110505-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.workbench.texteditor_3.7.0.v20110505-0800.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui.workbench_3.7.0.I20110519-0100.jar;/develop/ws/cdo/_target/plugins/org.eclipse.ui_3.7.0.I20110602-0100.jar;/develop/ws/cdo/_target/plugins/org.eclipse.update.configurator.source_3.3.100.v20100512.jar;/develop/ws/cdo/_target/plugins/org.eclipse.update.configurator_3.3.100.v20100512.jar;/develop/ws/cdo/_target/plugins/org.eclipse.update.core.linux.source_3.2.200.v20100512.jar;/develop/ws/cdo/_target/plugins/org.eclipse.update.core.linux_3.2.200.v20100512.jar;/develop/ws/cdo/_target/plugins/org.eclipse.update.core.source_3.2.500.v20110330.jar;/develop/ws/cdo/_target/plugins/org.eclipse.update.core.win32.source_3.2.200.v20100512.jar;/develop/ws/cdo/_target/plugins/org.eclipse.update.core.win32_3.2.200.v20100512.jar;/develop/ws/cdo/_target/plugins/org.eclipse.update.core_3.2.500.v20110330.jar;/develop/ws/cdo/_target/plugins/org.eclipse.update.scheduler.source_3.2.300.v20100512.jar;/develop/ws/cdo/_target/plugins/org.eclipse.update.scheduler_3.2.300.v20100512.jar;/develop/ws/cdo/_target/plugins/org.eclipse.update.ui.source_3.2.300.v20100512.jar;/develop/ws/cdo/_target/plugins/org.eclipse.update.ui_3.2.300.v20100512.jar;/develop/ws/cdo/_target/plugins/org.eclipse.xpand.source_1.1.0.v201106060417.jar;/develop/ws/cdo/_target/plugins/org.eclipse.xpand_1.1.0.v201106060417.jar;/develop/ws/cdo/_target/plugins/org.eclipse.xtend.source_1.1.0.v201106060417.jar;/develop/ws/cdo/_target/plugins/org.eclipse.xtend.typesystem.emf.source_1.0.1.v201106060417.jar;/develop/ws/cdo/_target/plugins/org.eclipse.xtend.typesystem.emf_1.0.1.v201106060417.jar;/develop/ws/cdo/_target/plugins/org.eclipse.xtend_1.1.0.v201106060417.jar;/develop/ws/cdo/_target/plugins/org.eclipse.zest.core.source_1.3.0.v20110221-2050.jar;/develop/ws/cdo/_target/plugins/org.eclipse.zest.core_1.3.0.v20110221-2050.jar;/develop/ws/cdo/_target/plugins/org.eclipse.zest.layouts.source_1.1.0.v20110425-2050.jar;/develop/ws/cdo/_target/plugins/org.eclipse.zest.layouts_1.1.0.v20110425-2050.jar;/develop/ws/cdo/_target/plugins/org.h2.source_1.1.117.v201105142352.jar;/develop/ws/cdo/_target/plugins/org.h2_1.1.117.v201105142352.jar;/develop/ws/cdo/_target/plugins/org.hamcrest.core.source_1.1.0.v20090501071000.jar;/develop/ws/cdo/_target/plugins/org.hamcrest.core_1.1.0.v20090501071000.jar;/develop/ws/cdo/_target/plugins/org.hamcrest.generator.source_1.1.0.v20090501071000.jar;/develop/ws/cdo/_target/plugins/org.hamcrest.generator_1.1.0.v20090501071000.jar;/develop/ws/cdo/_target/plugins/org.hamcrest.integration.source_1.1.0.v20090501071000.jar;/develop/ws/cdo/_target/plugins/org.hamcrest.integration_1.1.0.v20090501071000.jar;/develop/ws/cdo/_target/plugins/org.hamcrest.library.source_1.1.0.v20090501071000.jar;/develop/ws/cdo/_target/plugins/org.hamcrest.library_1.1.0.v20090501071000.jar;/develop/ws/cdo/_target/plugins/org.hamcrest.text.source_1.1.0.v20090501071000.jar;/develop/ws/cdo/_target/plugins/org.hamcrest.text_1.1.0.v20090501071000.jar;/develop/ws/cdo/_target/plugins/org.hamcrest_1.1.0.v20090501071000.jar;/develop/ws/cdo/_target/plugins/org.hibernate_3.6.0.201107071603/antlr-2.7.6.jar;/develop/ws/cdo/_target/plugins/org.hibernate_3.6.0.201107071603/c3p0-0.9.1.jar;/develop/ws/cdo/_target/plugins/org.hibernate_3.6.0.201107071603/commons-collections-3.1.jar;/develop/ws/cdo/_target/plugins/org.hibernate_3.6.0.201107071603/ehcache-1.5.0.jar;/develop/ws/cdo/_target/plugins/org.hibernate_3.6.0.201107071603/hibernate3.6-src.jar;/develop/ws/cdo/_target/plugins/org.hibernate_3.6.0.201107071603/hibernate3.jar;/develop/ws/cdo/_target/plugins/org.hibernate_3.6.0.201107071603/javassist-3.12.0.GA.jar;/develop/ws/cdo/_target/plugins/org.hibernate_3.6.0.201107071603/jta-1.1.jar;/develop/ws/cdo/_target/plugins/org.hibernate_3.6.0.201107071603/slf4j-api-1.6.1.jar;/develop/ws/cdo/_target/plugins/org.hibernate_3.6.0.201107071603/slf4j-log4j12-1.6.1.jar;/develop/ws/cdo/_target/plugins/org.hsqldb_1.8.1.jar;/develop/ws/cdo/_target/plugins/org.junit.source_3.8.2.v3_8_2_v20100427-1100.jar;/develop/ws/cdo/_target/plugins/org.junit.source_4.8.2.v4_8_2_v20110321-1705.jar;/develop/ws/cdo/_target/plugins/org.junit_3.8.2.v3_8_2_v20100427-1100/junit.jar;/develop/ws/cdo/_target/plugins/org.junit_4.8.2.v4_8_2_v20110321-1705/junit.jar;/develop/ws/cdo/_target/plugins/org.mortbay.jetty.server.source_6.1.23.v201012071420.jar;/develop/ws/cdo/_target/plugins/org.mortbay.jetty.server_6.1.23.v201012071420.jar;/develop/ws/cdo/_target/plugins/org.mortbay.jetty.util.source_6.1.23.v201012071420.jar;/develop/ws/cdo/_target/plugins/org.mortbay.jetty.util_6.1.23.v201012071420.jar;/develop/ws/cdo/_target/plugins/org.objectweb.asm.source_3.3.1.v201105211655.jar;/develop/ws/cdo/_target/plugins/org.objectweb.asm_3.3.1.v201105211655.jar;/develop/ws/cdo/_target/plugins/org.postgresql.jdbc3_8.4.701.v20110215-0651.jar;/develop/ws/cdo/_target/plugins/org.sat4j.core_2.3.0.v20110329.jar;/develop/ws/cdo/_target/plugins/org.sat4j.pb_2.3.0.v20110329.jar;/develop/ws/cdo/_target/plugins/org.w3c.css.sac.source_1.3.1.v200903091627.jar;/develop/ws/cdo/_target/plugins/org.w3c.css.sac_1.3.1.v200903091627.jar;/develop/ws/cdo/_target/plugins/org.w3c.dom.events.source_3.0.0.draft20060413_v201105210656.jar;/develop/ws/cdo/_target/plugins/org.w3c.dom.events_3.0.0.draft20060413_v201105210656.jar;/develop/ws/cdo/_target/plugins/org.w3c.dom.smil.source_1.0.1.v200903091627.jar;/develop/ws/cdo/_target/plugins/org.w3c.dom.smil_1.0.1.v200903091627.jar;/develop/ws/cdo/_target/plugins/org.w3c.dom.svg.source_1.1.0.v201011041433.jar;/develop/ws/cdo/_target/plugins/org.w3c.dom.svg_1.1.0.v201011041433.jar;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.server.objectivity.stub/oojava_epl.jar;/develop/ws/cdo/plugins/org.gastro.rcp/org.eclipse.nebula.widgets.gallery_0.5.2.R_0_20090418.jar;/develop/ws/cdo/plugins/org.gastro.rcp/org.eclipse.nebula.widgets.pshelf_1.0.0.HEAD.jar;/develop/ws/cdo/plugins/com.mongodb/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.common.db/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.common/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.dawn.codegen.dawngenmodel.edit/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.dawn.codegen.dawngenmodel.editor/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.dawn.codegen.dawngenmodel.emf.edit/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.dawn.codegen.dawngenmodel.emf.ui/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.dawn.codegen.dawngenmodel.emf/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.dawn.codegen.dawngenmodel.gmf.edit/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.dawn.codegen.dawngenmodel.gmf.ui/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.dawn.codegen.dawngenmodel.gmf/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.dawn.codegen.dawngenmodel/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.dawn.codegen/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.dawn.ecore.editor.dawn/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.dawn.ecoretools.diagram.dawn/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.dawn.emf/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram.dawn/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.dawn.examples.acore.diagram/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.dawn.examples.acore.edit/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.dawn.examples.acore.editor.dawn/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.dawn.examples.acore.editor/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.dawn.examples.acore/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.dawn.gmf/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.dawn.tests/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.dawn.ui/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.dawn.util/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.dawn/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.defs/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.doc.tutorial/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.doc/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.edit/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.efs/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.examples.company.edit/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.examples.company/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.examples.hibernate.client/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.examples.hibernate.log4j/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.examples.hibernate.server/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.examples.server/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.examples/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.explorer/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.location/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.migrator/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.net4j/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.releng.doc/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.releng.version.digest.ui/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.releng.version.digest/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.releng.version/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.releng/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.server.db4o/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.server.db/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.server.hibernate/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.server.mongodb/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.server.net4j/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.server.objectivity/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.server.ocl/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.server.product/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.server/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.team/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.tests.db4o/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.tests.db/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.tests.hibernate/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.tests.mango/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.tests.model1/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.tests.model2/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.tests.model3/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.tests.model4/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.tests.model4interfaces/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.tests.model5/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.tests.model6/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.tests.mongodb/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.tests.objectivity/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.tests.ui/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.tests/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.ui.defs/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.ui.efs/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.ui.ide/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.ui.location/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.ui.shared/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.ui.workspace/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.ui/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.workspace.efs/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo.workspace/bin;/develop/ws/cdo/plugins/org.eclipse.emf.cdo/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.buddies.chat.ui/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.buddies.chat/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.buddies.common/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.buddies.server/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.buddies.ui/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.buddies/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.db.db2/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.db.derby/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.db.doc/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.db.h2/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.db.hsqldb/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.db.mysql/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.db.postgresql/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.db.tests/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.db/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.debug/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.defs/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.doc/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.examples/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.http.common/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.http.server/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.http.tests/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.http/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.jms.admin/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.jms.api/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.jms.server.jdbc/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.jms.server/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.jms.tests/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.jms/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.jvm/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.tcp/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.tests/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.ui.defs/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.ui.shared/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.ui/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.util.defs/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.util.doc/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.util.ui/bin;/develop/ws/cdo/plugins/org.eclipse.net4j.util/bin;/develop/ws/cdo/plugins/org.eclipse.net4j/bin;/develop/ws/cdo/plugins/org.gastro.business.edit/bin;/develop/ws/cdo/plugins/org.gastro.business/bin;/develop/ws/cdo/plugins/org.gastro.inventory.edit/bin;/develop/ws/cdo/plugins/org.gastro.inventory/bin;/develop/ws/cdo/plugins/org.gastro.rcp.department/bin;/develop/ws/cdo/plugins/org.gastro.rcp.table/bin;/develop/ws/cdo/plugins/org.gastro.rcp/bin;/develop/ws/cdo/plugins/org.gastro.server.web/bin;/develop/ws/cdo/plugins/org.gastro.server/bin;/develop/bin/org.eclipse.emf.cdo.releng.doc.supplemental/cglib-2.2.2.jar;/develop/bin/org.eclipse.emf.cdo.releng.doc.supplemental/javax.security.jacc.jar;/develop/bin/org.eclipse.emf.cdo.releng.doc.supplemental/org.apache.xalan_2.7.1.v201005080400.jar;/develop/bin/org.eclipse.emf.cdo.releng.doc.supplemental/bin");
+ add("-basefolder /develop/ws/cdo");
+ add("-project org.eclipse.emf.cdo.doc");
+ add("-source 1.5");
+
+ String[] array = arguments.toArray(new String[arguments.size()]);
+ com.sun.tools.javadoc.Main
+ .execute(TestCDODocumentation.class.getSimpleName(), ArticleDoclet.class.getName(), array);
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Article.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Article.java
index cb625363ed..a09909ec85 100644
--- a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Article.java
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Article.java
@@ -1,79 +1,19 @@
/**
- * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
*/
package org.eclipse.emf.cdo.releng.doc.article;
-import com.sun.javadoc.ClassDoc;
-
-
/**
- * @author Eike Stepper
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Article</b></em>'. <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getArticle()
+ * @model
+ * @generated
*/
-public class Article extends ArticleElement
+public interface Article extends Chapter
{
- private final CategoryElement parent;
-
- Article(Documentation documentation, ClassDoc classDoc)
- {
- super(classDoc);
- parent = documentation;
- getDocumentation().registerArticleElement(this);
- }
-
- Article(Category category, ClassDoc classDoc)
- {
- super(classDoc);
- parent = category;
- getDocumentation().registerArticleElement(this);
- }
-
- public final Documentation getDocumentation()
- {
- if (parent instanceof Documentation)
- {
- return (Documentation)parent;
- }
-
- return ((Category)parent).getDocumentation();
- }
-
- public final Category getCategory()
- {
- if (parent instanceof Category)
- {
- return (Category)parent;
- }
-
- return null;
- }
-
- public int getLevel()
- {
- return parent.getLevel() + 1;
- }
-
- public void accept(Visitor visitor) throws Exception
- {
- visitor.visit(this);
- }
-
- public String getPath()
- {
- String name = getClassDoc().typeName();
-
- String path = parent.getPath();
- if (path.length() == 0)
- {
- return name;
- }
- return path + "/" + name;
- }
-}
+} // Article
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/ArticleDoclet.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/ArticleDoclet.java
deleted file mode 100644
index bb33d385be..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/ArticleDoclet.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/**
- * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.releng.doc.article;
-
-import org.eclipse.emf.cdo.releng.doc.article.util.JavaDoc;
-
-import com.sun.javadoc.RootDoc;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author Eike Stepper
- */
-public class ArticleDoclet // extends JavaDoc
-{
- private final List<String> javaDocPaths = new ArrayList<String>();
-
- public ArticleDoclet()
- {
- // super(ArticleDoclet.class);
- }
-
- public final ArticleDoclet javaDocPath(String javaDocPath)
- {
- javaDocPaths.add(javaDocPath);
- return this;
- }
-
- public static int optionLength(String option)
- {
- if (JavaDoc.OPTION_BASE_FOLDER.equals(option))
- {
- return 2;
- }
-
- if (JavaDoc.OPTION_OUTPUT_PATH.equals(option))
- {
- return 2;
- }
-
- // Indicate we don't know about it
- return -1;
- }
-
- public static boolean start(RootDoc root)
- {
- long startTime = System.currentTimeMillis();
- String base = JavaDoc.getOption(root, JavaDoc.OPTION_BASE_FOLDER);
- String output = JavaDoc.getOption(root, JavaDoc.OPTION_OUTPUT_PATH);
-
- try
- {
- Documentation documentation = Documentation.create(root, base, output);
- documentation.accept(new DocumentationGenerator());
- }
- catch (Error ex)
- {
- ex.printStackTrace();
- throw ex;
- }
- catch (RuntimeException ex)
- {
- ex.printStackTrace();
- throw ex;
- }
- catch (Exception ex)
- {
- ex.printStackTrace();
- throw new RuntimeException(ex);
- }
-
- long duration = (System.currentTimeMillis() - startTime) / 1000;
- System.out.println("Finished: " + duration + " seconds");
- return true;
- }
-}
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/ArticleFactory.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/ArticleFactory.java
new file mode 100644
index 0000000000..7de983686a
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/ArticleFactory.java
@@ -0,0 +1,161 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article;
+
+import org.eclipse.emf.ecore.EFactory;
+
+import com.sun.javadoc.RootDoc;
+
+import java.io.File;
+
+/**
+ * <!-- begin-user-doc --> The <b>Factory</b> for the model. It provides a create method for each non-abstract class of
+ * the model. <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage
+ * @generated
+ */
+public interface ArticleFactory extends EFactory
+{
+ /**
+ * The singleton instance of the factory. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ ArticleFactory eINSTANCE = org.eclipse.emf.cdo.releng.doc.article.impl.ArticleFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Documentation</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Documentation</em>'.
+ * @generated
+ */
+ Documentation createDocumentation();
+
+ /**
+ * Returns a new object of class '<em>Context</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Context</em>'.
+ * @generated
+ */
+ Context createContext();
+
+ Context createContext(RootDoc root, File baseFolder, String project);
+
+ /**
+ * Returns a new object of class '<em>Category</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Category</em>'.
+ * @generated
+ */
+ Category createCategory();
+
+ /**
+ * Returns a new object of class '<em>Article</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Article</em>'.
+ * @generated
+ */
+ Article createArticle();
+
+ /**
+ * Returns a new object of class '<em>Chapter</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Chapter</em>'.
+ * @generated
+ */
+ Chapter createChapter();
+
+ /**
+ * Returns a new object of class '<em>Snippet</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Snippet</em>'.
+ * @generated
+ */
+ Snippet createSnippet();
+
+ /**
+ * Returns a new object of class '<em>Diagram</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Diagram</em>'.
+ * @generated
+ */
+ Diagram createDiagram();
+
+ /**
+ * Returns a new object of class '<em>Factory</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Factory</em>'.
+ * @generated
+ */
+ Factory createFactory();
+
+ /**
+ * Returns a new object of class '<em>Java Element</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Java Element</em>'.
+ * @generated
+ */
+ JavaElement createJavaElement();
+
+ /**
+ * Returns a new object of class '<em>Callout</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Callout</em>'.
+ * @generated
+ */
+ Callout createCallout();
+
+ /**
+ * Returns a new object of class '<em>External Target</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>External Target</em>'.
+ * @generated
+ */
+ ExternalTarget createExternalTarget();
+
+ /**
+ * Returns a new object of class '<em>Text</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Text</em>'.
+ * @generated
+ */
+ Text createText();
+
+ /**
+ * Returns a new object of class '<em>Link</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Link</em>'.
+ * @generated
+ */
+ Link createLink();
+
+ /**
+ * Returns a new object of class '<em>Embedding</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Embedding</em>'.
+ * @generated
+ */
+ Embedding createEmbedding();
+
+ /**
+ * Returns a new object of class '<em>Source Code</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Source Code</em>'.
+ * @generated
+ */
+ SourceCode createSourceCode();
+
+ /**
+ * Returns the package supported by this factory. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the package supported by this factory.
+ * @generated
+ */
+ ArticlePackage getArticlePackage();
+
+} // ArticleFactory
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/ArticlePackage.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/ArticlePackage.java
new file mode 100644
index 0000000000..65a612e9bd
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/ArticlePackage.java
@@ -0,0 +1,2590 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc --> The <b>Package</b> for the model. It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticleFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface ArticlePackage extends EPackage
+{
+ /**
+ * The package name. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String eNAME = "article";
+
+ /**
+ * The package namespace URI. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/ARTICLE/1.0";
+
+ /**
+ * The package namespace name. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String eNS_PREFIX = "article";
+
+ /**
+ * The singleton instance of the package. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ ArticlePackage eINSTANCE = org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.doc.article.Identifiable <em>Identifiable</em>}'
+ * class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.Identifiable
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getIdentifiable()
+ * @generated
+ */
+ int IDENTIFIABLE = 14;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int IDENTIFIABLE__ID = 0;
+
+ /**
+ * The number of structural features of the '<em>Identifiable</em>' class. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @generated
+ * @ordered
+ */
+ int IDENTIFIABLE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.LinkTargetImpl <em>Link Target</em>}
+ * ' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.LinkTargetImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getLinkTarget()
+ * @generated
+ */
+ int LINK_TARGET = 10;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int LINK_TARGET__ID = IDENTIFIABLE__ID;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int LINK_TARGET__LABEL = IDENTIFIABLE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Link Target</em>' class. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @generated
+ * @ordered
+ */
+ int LINK_TARGET_FEATURE_COUNT = IDENTIFIABLE_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.StructuralElementImpl
+ * <em>Structural Element</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.StructuralElementImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getStructuralElement()
+ * @generated
+ */
+ int STRUCTURAL_ELEMENT = 9;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int STRUCTURAL_ELEMENT__ID = LINK_TARGET__ID;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int STRUCTURAL_ELEMENT__LABEL = LINK_TARGET__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Children</b></em>' containment reference list. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int STRUCTURAL_ELEMENT__CHILDREN = LINK_TARGET_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' container reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int STRUCTURAL_ELEMENT__PARENT = LINK_TARGET_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Title</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int STRUCTURAL_ELEMENT__TITLE = LINK_TARGET_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Path</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int STRUCTURAL_ELEMENT__PATH = LINK_TARGET_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Full Path</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int STRUCTURAL_ELEMENT__FULL_PATH = LINK_TARGET_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Output File</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int STRUCTURAL_ELEMENT__OUTPUT_FILE = LINK_TARGET_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Documentation</b></em>' reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int STRUCTURAL_ELEMENT__DOCUMENTATION = LINK_TARGET_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Doc</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int STRUCTURAL_ELEMENT__DOC = LINK_TARGET_FEATURE_COUNT + 7;
+
+ /**
+ * The number of structural features of the '<em>Structural Element</em>' class. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int STRUCTURAL_ELEMENT_FEATURE_COUNT = LINK_TARGET_FEATURE_COUNT + 8;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.DocumentationImpl
+ * <em>Documentation</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.DocumentationImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getDocumentation()
+ * @generated
+ */
+ int DOCUMENTATION = 0;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOCUMENTATION__ID = STRUCTURAL_ELEMENT__ID;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOCUMENTATION__LABEL = STRUCTURAL_ELEMENT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Children</b></em>' containment reference list. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOCUMENTATION__CHILDREN = STRUCTURAL_ELEMENT__CHILDREN;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' container reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOCUMENTATION__PARENT = STRUCTURAL_ELEMENT__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Title</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOCUMENTATION__TITLE = STRUCTURAL_ELEMENT__TITLE;
+
+ /**
+ * The feature id for the '<em><b>Path</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOCUMENTATION__PATH = STRUCTURAL_ELEMENT__PATH;
+
+ /**
+ * The feature id for the '<em><b>Full Path</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOCUMENTATION__FULL_PATH = STRUCTURAL_ELEMENT__FULL_PATH;
+
+ /**
+ * The feature id for the '<em><b>Output File</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOCUMENTATION__OUTPUT_FILE = STRUCTURAL_ELEMENT__OUTPUT_FILE;
+
+ /**
+ * The feature id for the '<em><b>Documentation</b></em>' reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOCUMENTATION__DOCUMENTATION = STRUCTURAL_ELEMENT__DOCUMENTATION;
+
+ /**
+ * The feature id for the '<em><b>Doc</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOCUMENTATION__DOC = STRUCTURAL_ELEMENT__DOC;
+
+ /**
+ * The feature id for the '<em><b>Context</b></em>' container reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOCUMENTATION__CONTEXT = STRUCTURAL_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Embeddable Elements</b></em>' containment reference list. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOCUMENTATION__EMBEDDABLE_ELEMENTS = STRUCTURAL_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' reference list. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOCUMENTATION__DEPENDENCIES = STRUCTURAL_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Project</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOCUMENTATION__PROJECT = STRUCTURAL_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Documentation</em>' class. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOCUMENTATION_FEATURE_COUNT = STRUCTURAL_ELEMENT_FEATURE_COUNT + 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.ContextImpl <em>Context</em>}'
+ * class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ContextImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getContext()
+ * @generated
+ */
+ int CONTEXT = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Folder</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CONTEXT__BASE_FOLDER = 0;
+
+ /**
+ * The feature id for the '<em><b>Project</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CONTEXT__PROJECT = 1;
+
+ /**
+ * The feature id for the '<em><b>Documentations</b></em>' containment reference list. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CONTEXT__DOCUMENTATIONS = 2;
+
+ /**
+ * The feature id for the '<em><b>Root</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CONTEXT__ROOT = 3;
+
+ /**
+ * The number of structural features of the '<em>Context</em>' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CONTEXT_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.BodyImpl <em>Body</em>}' class. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.BodyImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getBody()
+ * @generated
+ */
+ int BODY = 15;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int BODY__ID = STRUCTURAL_ELEMENT__ID;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int BODY__LABEL = STRUCTURAL_ELEMENT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Children</b></em>' containment reference list. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int BODY__CHILDREN = STRUCTURAL_ELEMENT__CHILDREN;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' container reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int BODY__PARENT = STRUCTURAL_ELEMENT__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Title</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int BODY__TITLE = STRUCTURAL_ELEMENT__TITLE;
+
+ /**
+ * The feature id for the '<em><b>Path</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int BODY__PATH = STRUCTURAL_ELEMENT__PATH;
+
+ /**
+ * The feature id for the '<em><b>Full Path</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int BODY__FULL_PATH = STRUCTURAL_ELEMENT__FULL_PATH;
+
+ /**
+ * The feature id for the '<em><b>Output File</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int BODY__OUTPUT_FILE = STRUCTURAL_ELEMENT__OUTPUT_FILE;
+
+ /**
+ * The feature id for the '<em><b>Documentation</b></em>' reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int BODY__DOCUMENTATION = STRUCTURAL_ELEMENT__DOCUMENTATION;
+
+ /**
+ * The feature id for the '<em><b>Doc</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int BODY__DOC = STRUCTURAL_ELEMENT__DOC;
+
+ /**
+ * The feature id for the '<em><b>Elements</b></em>' containment reference list. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int BODY__ELEMENTS = STRUCTURAL_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Html</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int BODY__HTML = STRUCTURAL_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Category</b></em>' reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int BODY__CATEGORY = STRUCTURAL_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Body</em>' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int BODY_FEATURE_COUNT = STRUCTURAL_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.CategoryImpl <em>Category</em>}'
+ * class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.CategoryImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getCategory()
+ * @generated
+ */
+ int CATEGORY = 2;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CATEGORY__ID = BODY__ID;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CATEGORY__LABEL = BODY__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Children</b></em>' containment reference list. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CATEGORY__CHILDREN = BODY__CHILDREN;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' container reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CATEGORY__PARENT = BODY__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Title</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CATEGORY__TITLE = BODY__TITLE;
+
+ /**
+ * The feature id for the '<em><b>Path</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CATEGORY__PATH = BODY__PATH;
+
+ /**
+ * The feature id for the '<em><b>Full Path</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CATEGORY__FULL_PATH = BODY__FULL_PATH;
+
+ /**
+ * The feature id for the '<em><b>Output File</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CATEGORY__OUTPUT_FILE = BODY__OUTPUT_FILE;
+
+ /**
+ * The feature id for the '<em><b>Documentation</b></em>' reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CATEGORY__DOCUMENTATION = BODY__DOCUMENTATION;
+
+ /**
+ * The feature id for the '<em><b>Doc</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CATEGORY__DOC = BODY__DOC;
+
+ /**
+ * The feature id for the '<em><b>Elements</b></em>' containment reference list. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CATEGORY__ELEMENTS = BODY__ELEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Html</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CATEGORY__HTML = BODY__HTML;
+
+ /**
+ * The feature id for the '<em><b>Category</b></em>' reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CATEGORY__CATEGORY = BODY__CATEGORY;
+
+ /**
+ * The number of structural features of the '<em>Category</em>' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CATEGORY_FEATURE_COUNT = BODY_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.ChapterImpl <em>Chapter</em>}'
+ * class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ChapterImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getChapter()
+ * @generated
+ */
+ int CHAPTER = 4;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CHAPTER__ID = BODY__ID;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CHAPTER__LABEL = BODY__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Children</b></em>' containment reference list. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CHAPTER__CHILDREN = BODY__CHILDREN;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' container reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CHAPTER__PARENT = BODY__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Title</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CHAPTER__TITLE = BODY__TITLE;
+
+ /**
+ * The feature id for the '<em><b>Path</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CHAPTER__PATH = BODY__PATH;
+
+ /**
+ * The feature id for the '<em><b>Full Path</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CHAPTER__FULL_PATH = BODY__FULL_PATH;
+
+ /**
+ * The feature id for the '<em><b>Output File</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CHAPTER__OUTPUT_FILE = BODY__OUTPUT_FILE;
+
+ /**
+ * The feature id for the '<em><b>Documentation</b></em>' reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CHAPTER__DOCUMENTATION = BODY__DOCUMENTATION;
+
+ /**
+ * The feature id for the '<em><b>Doc</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CHAPTER__DOC = BODY__DOC;
+
+ /**
+ * The feature id for the '<em><b>Elements</b></em>' containment reference list. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CHAPTER__ELEMENTS = BODY__ELEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Html</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CHAPTER__HTML = BODY__HTML;
+
+ /**
+ * The feature id for the '<em><b>Category</b></em>' reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CHAPTER__CATEGORY = BODY__CATEGORY;
+
+ /**
+ * The feature id for the '<em><b>Article</b></em>' reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CHAPTER__ARTICLE = BODY_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Chapter</em>' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CHAPTER_FEATURE_COUNT = BODY_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.ArticleImpl <em>Article</em>}'
+ * class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticleImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getArticle()
+ * @generated
+ */
+ int ARTICLE = 3;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ARTICLE__ID = CHAPTER__ID;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ARTICLE__LABEL = CHAPTER__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Children</b></em>' containment reference list. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ARTICLE__CHILDREN = CHAPTER__CHILDREN;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' container reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ARTICLE__PARENT = CHAPTER__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Title</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ARTICLE__TITLE = CHAPTER__TITLE;
+
+ /**
+ * The feature id for the '<em><b>Path</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ARTICLE__PATH = CHAPTER__PATH;
+
+ /**
+ * The feature id for the '<em><b>Full Path</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ARTICLE__FULL_PATH = CHAPTER__FULL_PATH;
+
+ /**
+ * The feature id for the '<em><b>Output File</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ARTICLE__OUTPUT_FILE = CHAPTER__OUTPUT_FILE;
+
+ /**
+ * The feature id for the '<em><b>Documentation</b></em>' reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ARTICLE__DOCUMENTATION = CHAPTER__DOCUMENTATION;
+
+ /**
+ * The feature id for the '<em><b>Doc</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ARTICLE__DOC = CHAPTER__DOC;
+
+ /**
+ * The feature id for the '<em><b>Elements</b></em>' containment reference list. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ARTICLE__ELEMENTS = CHAPTER__ELEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Html</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ARTICLE__HTML = CHAPTER__HTML;
+
+ /**
+ * The feature id for the '<em><b>Category</b></em>' reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ARTICLE__CATEGORY = CHAPTER__CATEGORY;
+
+ /**
+ * The feature id for the '<em><b>Article</b></em>' reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ARTICLE__ARTICLE = CHAPTER__ARTICLE;
+
+ /**
+ * The number of structural features of the '<em>Article</em>' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ARTICLE_FEATURE_COUNT = CHAPTER_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.EmbeddableElementImpl
+ * <em>Embeddable Element</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.EmbeddableElementImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getEmbeddableElement()
+ * @generated
+ */
+ int EMBEDDABLE_ELEMENT = 12;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EMBEDDABLE_ELEMENT__ID = IDENTIFIABLE__ID;
+
+ /**
+ * The feature id for the '<em><b>Documentation</b></em>' container reference. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EMBEDDABLE_ELEMENT__DOCUMENTATION = IDENTIFIABLE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Embeddable Element</em>' class. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EMBEDDABLE_ELEMENT_FEATURE_COUNT = IDENTIFIABLE_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.SnippetImpl <em>Snippet</em>}'
+ * class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.SnippetImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getSnippet()
+ * @generated
+ */
+ int SNIPPET = 5;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int SNIPPET__ID = EMBEDDABLE_ELEMENT__ID;
+
+ /**
+ * The feature id for the '<em><b>Documentation</b></em>' container reference. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int SNIPPET__DOCUMENTATION = EMBEDDABLE_ELEMENT__DOCUMENTATION;
+
+ /**
+ * The feature id for the '<em><b>Callouts</b></em>' containment reference list. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int SNIPPET__CALLOUTS = EMBEDDABLE_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Snippet</em>' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int SNIPPET_FEATURE_COUNT = EMBEDDABLE_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.BodyElementImpl
+ * <em>Body Element</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.BodyElementImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getBodyElement()
+ * @generated
+ */
+ int BODY_ELEMENT = 16;
+
+ /**
+ * The feature id for the '<em><b>Body</b></em>' container reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int BODY_ELEMENT__BODY = 0;
+
+ /**
+ * The feature id for the '<em><b>Html</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int BODY_ELEMENT__HTML = 1;
+
+ /**
+ * The feature id for the '<em><b>Callout</b></em>' container reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int BODY_ELEMENT__CALLOUT = 2;
+
+ /**
+ * The number of structural features of the '<em>Body Element</em>' class. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @generated
+ * @ordered
+ */
+ int BODY_ELEMENT_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.DiagramImpl <em>Diagram</em>}'
+ * class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.DiagramImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getDiagram()
+ * @generated
+ */
+ int DIAGRAM = 6;
+
+ /**
+ * The feature id for the '<em><b>Body</b></em>' container reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DIAGRAM__BODY = BODY_ELEMENT__BODY;
+
+ /**
+ * The feature id for the '<em><b>Html</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DIAGRAM__HTML = BODY_ELEMENT__HTML;
+
+ /**
+ * The feature id for the '<em><b>Callout</b></em>' container reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DIAGRAM__CALLOUT = BODY_ELEMENT__CALLOUT;
+
+ /**
+ * The feature id for the '<em><b>Code</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DIAGRAM__CODE = BODY_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Diagram</em>' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DIAGRAM_FEATURE_COUNT = BODY_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.FactoryImpl <em>Factory</em>}'
+ * class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.FactoryImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getFactory()
+ * @generated
+ */
+ int FACTORY = 7;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int FACTORY__ID = EMBEDDABLE_ELEMENT__ID;
+
+ /**
+ * The feature id for the '<em><b>Documentation</b></em>' container reference. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int FACTORY__DOCUMENTATION = EMBEDDABLE_ELEMENT__DOCUMENTATION;
+
+ /**
+ * The number of structural features of the '<em>Factory</em>' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int FACTORY_FEATURE_COUNT = EMBEDDABLE_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.JavaElementImpl
+ * <em>Java Element</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.JavaElementImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getJavaElement()
+ * @generated
+ */
+ int JAVA_ELEMENT = 8;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_ELEMENT__ID = LINK_TARGET__ID;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_ELEMENT__LABEL = LINK_TARGET__LABEL;
+
+ /**
+ * The number of structural features of the '<em>Java Element</em>' class. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @generated
+ * @ordered
+ */
+ int JAVA_ELEMENT_FEATURE_COUNT = LINK_TARGET_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.CalloutImpl <em>Callout</em>}'
+ * class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.CalloutImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getCallout()
+ * @generated
+ */
+ int CALLOUT = 11;
+
+ /**
+ * The feature id for the '<em><b>Snippet</b></em>' container reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CALLOUT__SNIPPET = 0;
+
+ /**
+ * The feature id for the '<em><b>Elements</b></em>' containment reference list. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CALLOUT__ELEMENTS = 1;
+
+ /**
+ * The number of structural features of the '<em>Callout</em>' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CALLOUT_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.ExternalTargetImpl
+ * <em>External Target</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ExternalTargetImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getExternalTarget()
+ * @generated
+ */
+ int EXTERNAL_TARGET = 13;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EXTERNAL_TARGET__ID = LINK_TARGET__ID;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EXTERNAL_TARGET__LABEL = LINK_TARGET__LABEL;
+
+ /**
+ * The number of structural features of the '<em>External Target</em>' class. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EXTERNAL_TARGET_FEATURE_COUNT = LINK_TARGET_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.TextImpl <em>Text</em>}' class. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.TextImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getText()
+ * @generated
+ */
+ int TEXT = 17;
+
+ /**
+ * The feature id for the '<em><b>Body</b></em>' container reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int TEXT__BODY = BODY_ELEMENT__BODY;
+
+ /**
+ * The feature id for the '<em><b>Html</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int TEXT__HTML = BODY_ELEMENT__HTML;
+
+ /**
+ * The feature id for the '<em><b>Callout</b></em>' container reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int TEXT__CALLOUT = BODY_ELEMENT__CALLOUT;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int TEXT__VALUE = BODY_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Text</em>' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int TEXT_FEATURE_COUNT = BODY_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.LinkImpl <em>Link</em>}' class. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.LinkImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getLink()
+ * @generated
+ */
+ int LINK = 18;
+
+ /**
+ * The feature id for the '<em><b>Body</b></em>' container reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int LINK__BODY = BODY_ELEMENT__BODY;
+
+ /**
+ * The feature id for the '<em><b>Html</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int LINK__HTML = BODY_ELEMENT__HTML;
+
+ /**
+ * The feature id for the '<em><b>Callout</b></em>' container reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int LINK__CALLOUT = BODY_ELEMENT__CALLOUT;
+
+ /**
+ * The feature id for the '<em><b>Target</b></em>' reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int LINK__TARGET = BODY_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Link</em>' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int LINK_FEATURE_COUNT = BODY_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.EmbeddingImpl <em>Embedding</em>}'
+ * class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.EmbeddingImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getEmbedding()
+ * @generated
+ */
+ int EMBEDDING = 19;
+
+ /**
+ * The feature id for the '<em><b>Body</b></em>' container reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING__BODY = BODY_ELEMENT__BODY;
+
+ /**
+ * The feature id for the '<em><b>Html</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING__HTML = BODY_ELEMENT__HTML;
+
+ /**
+ * The feature id for the '<em><b>Callout</b></em>' container reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING__CALLOUT = BODY_ELEMENT__CALLOUT;
+
+ /**
+ * The feature id for the '<em><b>Element</b></em>' reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING__ELEMENT = BODY_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Embedding</em>' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING_FEATURE_COUNT = BODY_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.SourceCodeImpl <em>Source Code</em>}
+ * ' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.SourceCodeImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getSourceCode()
+ * @generated
+ */
+ int SOURCE_CODE = 20;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int SOURCE_CODE__ID = EXTERNAL_TARGET__ID;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int SOURCE_CODE__LABEL = EXTERNAL_TARGET__LABEL;
+
+ /**
+ * The number of structural features of the '<em>Source Code</em>' class. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @generated
+ * @ordered
+ */
+ int SOURCE_CODE_FEATURE_COUNT = EXTERNAL_TARGET_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '<em>Root Doc</em>' data type. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see com.sun.javadoc.RootDoc
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getRootDoc()
+ * @generated
+ */
+ int ROOT_DOC = 21;
+
+ /**
+ * The meta object id for the '<em>File</em>' data type. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see java.io.File
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getFile()
+ * @generated
+ */
+ int FILE = 22;
+
+ /**
+ * The meta object id for the '<em>Doc</em>' data type. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see com.sun.javadoc.Doc
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getDoc()
+ * @generated
+ */
+ int DOC = 23;
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.doc.article.Documentation
+ * <em>Documentation</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Documentation</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Documentation
+ * @generated
+ */
+ EClass getDocumentation();
+
+ /**
+ * Returns the meta object for the container reference '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.Documentation#getContext <em>Context</em>}'. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the container reference '<em>Context</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Documentation#getContext()
+ * @see #getDocumentation()
+ * @generated
+ */
+ EReference getDocumentation_Context();
+
+ /**
+ * Returns the meta object for the containment reference list '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.Documentation#getEmbeddableElements <em>Embeddable Elements</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '<em>Embeddable Elements</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Documentation#getEmbeddableElements()
+ * @see #getDocumentation()
+ * @generated
+ */
+ EReference getDocumentation_EmbeddableElements();
+
+ /**
+ * Returns the meta object for the reference list '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.Documentation#getDependencies <em>Dependencies</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference list '<em>Dependencies</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Documentation#getDependencies()
+ * @see #getDocumentation()
+ * @generated
+ */
+ EReference getDocumentation_Dependencies();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.doc.article.Documentation#getProject
+ * <em>Project</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Project</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Documentation#getProject()
+ * @see #getDocumentation()
+ * @generated
+ */
+ EAttribute getDocumentation_Project();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.doc.article.Context <em>Context</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Context</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Context
+ * @generated
+ */
+ EClass getContext();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.doc.article.Context#getBaseFolder
+ * <em>Base Folder</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Base Folder</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Context#getBaseFolder()
+ * @see #getContext()
+ * @generated
+ */
+ EAttribute getContext_BaseFolder();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.doc.article.Context#getProject
+ * <em>Project</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Project</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Context#getProject()
+ * @see #getContext()
+ * @generated
+ */
+ EAttribute getContext_Project();
+
+ /**
+ * Returns the meta object for the containment reference list '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.Context#getDocumentations <em>Documentations</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '<em>Documentations</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Context#getDocumentations()
+ * @see #getContext()
+ * @generated
+ */
+ EReference getContext_Documentations();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.doc.article.Context#getRoot
+ * <em>Root</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Root</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Context#getRoot()
+ * @see #getContext()
+ * @generated
+ */
+ EAttribute getContext_Root();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.doc.article.Category <em>Category</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Category</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Category
+ * @generated
+ */
+ EClass getCategory();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.doc.article.Article <em>Article</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Article</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Article
+ * @generated
+ */
+ EClass getArticle();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.doc.article.Chapter <em>Chapter</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Chapter</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Chapter
+ * @generated
+ */
+ EClass getChapter();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.doc.article.Chapter#getArticle
+ * <em>Article</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference '<em>Article</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Chapter#getArticle()
+ * @see #getChapter()
+ * @generated
+ */
+ EReference getChapter_Article();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.doc.article.Snippet <em>Snippet</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Snippet</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Snippet
+ * @generated
+ */
+ EClass getSnippet();
+
+ /**
+ * Returns the meta object for the containment reference list '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.Snippet#getCallouts <em>Callouts</em>}'. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '<em>Callouts</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Snippet#getCallouts()
+ * @see #getSnippet()
+ * @generated
+ */
+ EReference getSnippet_Callouts();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.doc.article.Diagram <em>Diagram</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Diagram</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Diagram
+ * @generated
+ */
+ EClass getDiagram();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.doc.article.Diagram#getCode
+ * <em>Code</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Code</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Diagram#getCode()
+ * @see #getDiagram()
+ * @generated
+ */
+ EAttribute getDiagram_Code();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.doc.article.Factory <em>Factory</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Factory</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Factory
+ * @generated
+ */
+ EClass getFactory();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.doc.article.JavaElement <em>Java Element</em>}
+ * '. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Java Element</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.JavaElement
+ * @generated
+ */
+ EClass getJavaElement();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.doc.article.StructuralElement
+ * <em>Structural Element</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Structural Element</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.StructuralElement
+ * @generated
+ */
+ EClass getStructuralElement();
+
+ /**
+ * Returns the meta object for the containment reference list '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getChildren <em>Children</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '<em>Children</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getChildren()
+ * @see #getStructuralElement()
+ * @generated
+ */
+ EReference getStructuralElement_Children();
+
+ /**
+ * Returns the meta object for the container reference '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getParent <em>Parent</em>}'. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the container reference '<em>Parent</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getParent()
+ * @see #getStructuralElement()
+ * @generated
+ */
+ EReference getStructuralElement_Parent();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getTitle <em>Title</em>}'. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Title</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getTitle()
+ * @see #getStructuralElement()
+ * @generated
+ */
+ EAttribute getStructuralElement_Title();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getPath
+ * <em>Path</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Path</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getPath()
+ * @see #getStructuralElement()
+ * @generated
+ */
+ EAttribute getStructuralElement_Path();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getFullPath <em>Full Path</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Full Path</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getFullPath()
+ * @see #getStructuralElement()
+ * @generated
+ */
+ EAttribute getStructuralElement_FullPath();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getOutputFile <em>Output File</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Output File</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getOutputFile()
+ * @see #getStructuralElement()
+ * @generated
+ */
+ EAttribute getStructuralElement_OutputFile();
+
+ /**
+ * Returns the meta object for the reference '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getDocumentation <em>Documentation</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference '<em>Documentation</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getDocumentation()
+ * @see #getStructuralElement()
+ * @generated
+ */
+ EReference getStructuralElement_Documentation();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getDoc
+ * <em>Doc</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Doc</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getDoc()
+ * @see #getStructuralElement()
+ * @generated
+ */
+ EAttribute getStructuralElement_Doc();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.doc.article.LinkTarget <em>Link Target</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Link Target</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.LinkTarget
+ * @generated
+ */
+ EClass getLinkTarget();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.doc.article.LinkTarget#getLabel
+ * <em>Label</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Label</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.LinkTarget#getLabel()
+ * @see #getLinkTarget()
+ * @generated
+ */
+ EAttribute getLinkTarget_Label();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.doc.article.Callout <em>Callout</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Callout</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Callout
+ * @generated
+ */
+ EClass getCallout();
+
+ /**
+ * Returns the meta object for the container reference '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.Callout#getSnippet <em>Snippet</em>}'. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the meta object for the container reference '<em>Snippet</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Callout#getSnippet()
+ * @see #getCallout()
+ * @generated
+ */
+ EReference getCallout_Snippet();
+
+ /**
+ * Returns the meta object for the containment reference list '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.Callout#getElements <em>Elements</em>}'. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '<em>Elements</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Callout#getElements()
+ * @see #getCallout()
+ * @generated
+ */
+ EReference getCallout_Elements();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.doc.article.EmbeddableElement
+ * <em>Embeddable Element</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Embeddable Element</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.EmbeddableElement
+ * @generated
+ */
+ EClass getEmbeddableElement();
+
+ /**
+ * Returns the meta object for the container reference '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.EmbeddableElement#getDocumentation <em>Documentation</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the container reference '<em>Documentation</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.EmbeddableElement#getDocumentation()
+ * @see #getEmbeddableElement()
+ * @generated
+ */
+ EReference getEmbeddableElement_Documentation();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.doc.article.ExternalTarget
+ * <em>External Target</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>External Target</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.ExternalTarget
+ * @generated
+ */
+ EClass getExternalTarget();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.doc.article.Identifiable
+ * <em>Identifiable</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Identifiable</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Identifiable
+ * @generated
+ */
+ EClass getIdentifiable();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.doc.article.Identifiable#getId
+ * <em>Id</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Identifiable#getId()
+ * @see #getIdentifiable()
+ * @generated
+ */
+ EAttribute getIdentifiable_Id();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.doc.article.Body <em>Body</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Body</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Body
+ * @generated
+ */
+ EClass getBody();
+
+ /**
+ * Returns the meta object for the containment reference list '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.Body#getElements <em>Elements</em>}'. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '<em>Elements</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Body#getElements()
+ * @see #getBody()
+ * @generated
+ */
+ EReference getBody_Elements();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.doc.article.Body#getHtml
+ * <em>Html</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Html</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Body#getHtml()
+ * @see #getBody()
+ * @generated
+ */
+ EAttribute getBody_Html();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.doc.article.Body#getCategory
+ * <em>Category</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference '<em>Category</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Body#getCategory()
+ * @see #getBody()
+ * @generated
+ */
+ EReference getBody_Category();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.doc.article.BodyElement <em>Body Element</em>}
+ * '. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Body Element</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.BodyElement
+ * @generated
+ */
+ EClass getBodyElement();
+
+ /**
+ * Returns the meta object for the container reference '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.BodyElement#getBody <em>Body</em>}'. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the meta object for the container reference '<em>Body</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.BodyElement#getBody()
+ * @see #getBodyElement()
+ * @generated
+ */
+ EReference getBodyElement_Body();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.doc.article.BodyElement#getHtml
+ * <em>Html</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Html</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.BodyElement#getHtml()
+ * @see #getBodyElement()
+ * @generated
+ */
+ EAttribute getBodyElement_Html();
+
+ /**
+ * Returns the meta object for the container reference '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.BodyElement#getCallout <em>Callout</em>}'. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the container reference '<em>Callout</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.BodyElement#getCallout()
+ * @see #getBodyElement()
+ * @generated
+ */
+ EReference getBodyElement_Callout();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.doc.article.Text <em>Text</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Text</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Text
+ * @generated
+ */
+ EClass getText();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.doc.article.Text#getValue
+ * <em>Value</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Text#getValue()
+ * @see #getText()
+ * @generated
+ */
+ EAttribute getText_Value();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.doc.article.Link <em>Link</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Link</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Link
+ * @generated
+ */
+ EClass getLink();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.doc.article.Link#getTarget
+ * <em>Target</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference '<em>Target</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Link#getTarget()
+ * @see #getLink()
+ * @generated
+ */
+ EReference getLink_Target();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.doc.article.Embedding <em>Embedding</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Embedding</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Embedding
+ * @generated
+ */
+ EClass getEmbedding();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.doc.article.Embedding#getElement
+ * <em>Element</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference '<em>Element</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Embedding#getElement()
+ * @see #getEmbedding()
+ * @generated
+ */
+ EReference getEmbedding_Element();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.doc.article.SourceCode <em>Source Code</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Source Code</em>'.
+ * @see org.eclipse.emf.cdo.releng.doc.article.SourceCode
+ * @generated
+ */
+ EClass getSourceCode();
+
+ /**
+ * Returns the meta object for data type '{@link com.sun.javadoc.RootDoc <em>Root Doc</em>}'. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for data type '<em>Root Doc</em>'.
+ * @see com.sun.javadoc.RootDoc
+ * @model instanceClass="com.sun.javadoc.RootDoc" serializeable="false"
+ * @generated
+ */
+ EDataType getRootDoc();
+
+ /**
+ * Returns the meta object for data type '{@link java.io.File <em>File</em>}'. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the meta object for data type '<em>File</em>'.
+ * @see java.io.File
+ * @model instanceClass="java.io.File"
+ * @generated
+ */
+ EDataType getFile();
+
+ /**
+ * Returns the meta object for data type '{@link com.sun.javadoc.Doc <em>Doc</em>}'. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the meta object for data type '<em>Doc</em>'.
+ * @see com.sun.javadoc.Doc
+ * @model instanceClass="com.sun.javadoc.Doc" serializeable="false"
+ * @generated
+ */
+ EDataType getDoc();
+
+ /**
+ * Returns the factory that creates the instances of the model. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ ArticleFactory getArticleFactory();
+
+ /**
+ * <!-- begin-user-doc --> Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ interface Literals
+ {
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.DocumentationImpl
+ * <em>Documentation</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.DocumentationImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getDocumentation()
+ * @generated
+ */
+ EClass DOCUMENTATION = eINSTANCE.getDocumentation();
+
+ /**
+ * The meta object literal for the '<em><b>Context</b></em>' container reference feature. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference DOCUMENTATION__CONTEXT = eINSTANCE.getDocumentation_Context();
+
+ /**
+ * The meta object literal for the '<em><b>Embeddable Elements</b></em>' containment reference list feature. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference DOCUMENTATION__EMBEDDABLE_ELEMENTS = eINSTANCE.getDocumentation_EmbeddableElements();
+
+ /**
+ * The meta object literal for the '<em><b>Dependencies</b></em>' reference list feature. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference DOCUMENTATION__DEPENDENCIES = eINSTANCE.getDocumentation_Dependencies();
+
+ /**
+ * The meta object literal for the '<em><b>Project</b></em>' attribute feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute DOCUMENTATION__PROJECT = eINSTANCE.getDocumentation_Project();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.ContextImpl <em>Context</em>}
+ * ' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ContextImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getContext()
+ * @generated
+ */
+ EClass CONTEXT = eINSTANCE.getContext();
+
+ /**
+ * The meta object literal for the '<em><b>Base Folder</b></em>' attribute feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute CONTEXT__BASE_FOLDER = eINSTANCE.getContext_BaseFolder();
+
+ /**
+ * The meta object literal for the '<em><b>Project</b></em>' attribute feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute CONTEXT__PROJECT = eINSTANCE.getContext_Project();
+
+ /**
+ * The meta object literal for the '<em><b>Documentations</b></em>' containment reference list feature. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference CONTEXT__DOCUMENTATIONS = eINSTANCE.getContext_Documentations();
+
+ /**
+ * The meta object literal for the '<em><b>Root</b></em>' attribute feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute CONTEXT__ROOT = eINSTANCE.getContext_Root();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.CategoryImpl
+ * <em>Category</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.CategoryImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getCategory()
+ * @generated
+ */
+ EClass CATEGORY = eINSTANCE.getCategory();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.ArticleImpl <em>Article</em>}
+ * ' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticleImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getArticle()
+ * @generated
+ */
+ EClass ARTICLE = eINSTANCE.getArticle();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.ChapterImpl <em>Chapter</em>}
+ * ' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ChapterImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getChapter()
+ * @generated
+ */
+ EClass CHAPTER = eINSTANCE.getChapter();
+
+ /**
+ * The meta object literal for the '<em><b>Article</b></em>' reference feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EReference CHAPTER__ARTICLE = eINSTANCE.getChapter_Article();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.SnippetImpl <em>Snippet</em>}
+ * ' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.SnippetImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getSnippet()
+ * @generated
+ */
+ EClass SNIPPET = eINSTANCE.getSnippet();
+
+ /**
+ * The meta object literal for the '<em><b>Callouts</b></em>' containment reference list feature. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference SNIPPET__CALLOUTS = eINSTANCE.getSnippet_Callouts();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.DiagramImpl <em>Diagram</em>}
+ * ' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.DiagramImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getDiagram()
+ * @generated
+ */
+ EClass DIAGRAM = eINSTANCE.getDiagram();
+
+ /**
+ * The meta object literal for the '<em><b>Code</b></em>' attribute feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute DIAGRAM__CODE = eINSTANCE.getDiagram_Code();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.FactoryImpl <em>Factory</em>}
+ * ' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.FactoryImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getFactory()
+ * @generated
+ */
+ EClass FACTORY = eINSTANCE.getFactory();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.JavaElementImpl
+ * <em>Java Element</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.JavaElementImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getJavaElement()
+ * @generated
+ */
+ EClass JAVA_ELEMENT = eINSTANCE.getJavaElement();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.StructuralElementImpl
+ * <em>Structural Element</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.StructuralElementImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getStructuralElement()
+ * @generated
+ */
+ EClass STRUCTURAL_ELEMENT = eINSTANCE.getStructuralElement();
+
+ /**
+ * The meta object literal for the '<em><b>Children</b></em>' containment reference list feature. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference STRUCTURAL_ELEMENT__CHILDREN = eINSTANCE.getStructuralElement_Children();
+
+ /**
+ * The meta object literal for the '<em><b>Parent</b></em>' container reference feature. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference STRUCTURAL_ELEMENT__PARENT = eINSTANCE.getStructuralElement_Parent();
+
+ /**
+ * The meta object literal for the '<em><b>Title</b></em>' attribute feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute STRUCTURAL_ELEMENT__TITLE = eINSTANCE.getStructuralElement_Title();
+
+ /**
+ * The meta object literal for the '<em><b>Path</b></em>' attribute feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute STRUCTURAL_ELEMENT__PATH = eINSTANCE.getStructuralElement_Path();
+
+ /**
+ * The meta object literal for the '<em><b>Full Path</b></em>' attribute feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute STRUCTURAL_ELEMENT__FULL_PATH = eINSTANCE.getStructuralElement_FullPath();
+
+ /**
+ * The meta object literal for the '<em><b>Output File</b></em>' attribute feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute STRUCTURAL_ELEMENT__OUTPUT_FILE = eINSTANCE.getStructuralElement_OutputFile();
+
+ /**
+ * The meta object literal for the '<em><b>Documentation</b></em>' reference feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EReference STRUCTURAL_ELEMENT__DOCUMENTATION = eINSTANCE.getStructuralElement_Documentation();
+
+ /**
+ * The meta object literal for the '<em><b>Doc</b></em>' attribute feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute STRUCTURAL_ELEMENT__DOC = eINSTANCE.getStructuralElement_Doc();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.LinkTargetImpl
+ * <em>Link Target</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.LinkTargetImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getLinkTarget()
+ * @generated
+ */
+ EClass LINK_TARGET = eINSTANCE.getLinkTarget();
+
+ /**
+ * The meta object literal for the '<em><b>Label</b></em>' attribute feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute LINK_TARGET__LABEL = eINSTANCE.getLinkTarget_Label();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.CalloutImpl <em>Callout</em>}
+ * ' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.CalloutImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getCallout()
+ * @generated
+ */
+ EClass CALLOUT = eINSTANCE.getCallout();
+
+ /**
+ * The meta object literal for the '<em><b>Snippet</b></em>' container reference feature. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference CALLOUT__SNIPPET = eINSTANCE.getCallout_Snippet();
+
+ /**
+ * The meta object literal for the '<em><b>Elements</b></em>' containment reference list feature. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference CALLOUT__ELEMENTS = eINSTANCE.getCallout_Elements();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.EmbeddableElementImpl
+ * <em>Embeddable Element</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.EmbeddableElementImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getEmbeddableElement()
+ * @generated
+ */
+ EClass EMBEDDABLE_ELEMENT = eINSTANCE.getEmbeddableElement();
+
+ /**
+ * The meta object literal for the '<em><b>Documentation</b></em>' container reference feature. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference EMBEDDABLE_ELEMENT__DOCUMENTATION = eINSTANCE.getEmbeddableElement_Documentation();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.ExternalTargetImpl
+ * <em>External Target</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ExternalTargetImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getExternalTarget()
+ * @generated
+ */
+ EClass EXTERNAL_TARGET = eINSTANCE.getExternalTarget();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.doc.article.Identifiable
+ * <em>Identifiable</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.Identifiable
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getIdentifiable()
+ * @generated
+ */
+ EClass IDENTIFIABLE = eINSTANCE.getIdentifiable();
+
+ /**
+ * The meta object literal for the '<em><b>Id</b></em>' attribute feature. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @generated
+ */
+ EAttribute IDENTIFIABLE__ID = eINSTANCE.getIdentifiable_Id();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.BodyImpl <em>Body</em>}'
+ * class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.BodyImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getBody()
+ * @generated
+ */
+ EClass BODY = eINSTANCE.getBody();
+
+ /**
+ * The meta object literal for the '<em><b>Elements</b></em>' containment reference list feature. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference BODY__ELEMENTS = eINSTANCE.getBody_Elements();
+
+ /**
+ * The meta object literal for the '<em><b>Html</b></em>' attribute feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute BODY__HTML = eINSTANCE.getBody_Html();
+
+ /**
+ * The meta object literal for the '<em><b>Category</b></em>' reference feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EReference BODY__CATEGORY = eINSTANCE.getBody_Category();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.BodyElementImpl
+ * <em>Body Element</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.BodyElementImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getBodyElement()
+ * @generated
+ */
+ EClass BODY_ELEMENT = eINSTANCE.getBodyElement();
+
+ /**
+ * The meta object literal for the '<em><b>Body</b></em>' container reference feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EReference BODY_ELEMENT__BODY = eINSTANCE.getBodyElement_Body();
+
+ /**
+ * The meta object literal for the '<em><b>Html</b></em>' attribute feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute BODY_ELEMENT__HTML = eINSTANCE.getBodyElement_Html();
+
+ /**
+ * The meta object literal for the '<em><b>Callout</b></em>' container reference feature. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference BODY_ELEMENT__CALLOUT = eINSTANCE.getBodyElement_Callout();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.TextImpl <em>Text</em>}'
+ * class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.TextImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getText()
+ * @generated
+ */
+ EClass TEXT = eINSTANCE.getText();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute TEXT__VALUE = eINSTANCE.getText_Value();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.LinkImpl <em>Link</em>}'
+ * class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.LinkImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getLink()
+ * @generated
+ */
+ EClass LINK = eINSTANCE.getLink();
+
+ /**
+ * The meta object literal for the '<em><b>Target</b></em>' reference feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EReference LINK__TARGET = eINSTANCE.getLink_Target();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.EmbeddingImpl
+ * <em>Embedding</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.EmbeddingImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getEmbedding()
+ * @generated
+ */
+ EClass EMBEDDING = eINSTANCE.getEmbedding();
+
+ /**
+ * The meta object literal for the '<em><b>Element</b></em>' reference feature. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ EReference EMBEDDING__ELEMENT = eINSTANCE.getEmbedding_Element();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.doc.article.impl.SourceCodeImpl
+ * <em>Source Code</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.SourceCodeImpl
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getSourceCode()
+ * @generated
+ */
+ EClass SOURCE_CODE = eINSTANCE.getSourceCode();
+
+ /**
+ * The meta object literal for the '<em>Root Doc</em>' data type. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see com.sun.javadoc.RootDoc
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getRootDoc()
+ * @generated
+ */
+ EDataType ROOT_DOC = eINSTANCE.getRootDoc();
+
+ /**
+ * The meta object literal for the '<em>File</em>' data type. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see java.io.File
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getFile()
+ * @generated
+ */
+ EDataType FILE = eINSTANCE.getFile();
+
+ /**
+ * The meta object literal for the '<em>Doc</em>' data type. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see com.sun.javadoc.Doc
+ * @see org.eclipse.emf.cdo.releng.doc.article.impl.ArticlePackageImpl#getDoc()
+ * @generated
+ */
+ EDataType DOC = eINSTANCE.getDoc();
+
+ }
+
+} // ArticlePackage
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Body.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Body.java
new file mode 100644
index 0000000000..77ad057d49
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Body.java
@@ -0,0 +1,75 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Body</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.Body#getElements <em>Elements</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.Body#getHtml <em>Html</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.Body#getCategory <em>Category</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getBody()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Body extends StructuralElement
+{
+ /**
+ * Returns the value of the '<em><b>Elements</b></em>' containment reference list. The list contents are of type
+ * {@link org.eclipse.emf.cdo.releng.doc.article.BodyElement}. It is bidirectional and its opposite is '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.BodyElement#getBody <em>Body</em>}'. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Elements</em>' containment reference list isn't clear, there really should be more of a
+ * description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Elements</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getBody_Elements()
+ * @see org.eclipse.emf.cdo.releng.doc.article.BodyElement#getBody
+ * @model opposite="body" containment="true"
+ * @generated
+ */
+ EList<BodyElement> getElements();
+
+ /**
+ * Returns the value of the '<em><b>Html</b></em>' attribute. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Html</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Html</em>' attribute.
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getBody_Html()
+ * @model changeable="false" derived="true"
+ * @generated
+ */
+ String getHtml();
+
+ /**
+ * Returns the value of the '<em><b>Category</b></em>' reference. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Category</em>' reference isn't clear, there really should be more of a description
+ * here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Category</em>' reference.
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getBody_Category()
+ * @model resolveProxies="false" transient="true" changeable="false" volatile="true" derived="true"
+ * @generated
+ */
+ Category getCategory();
+
+} // Body
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/BodyElement.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/BodyElement.java
new file mode 100644
index 0000000000..17bd23b6b0
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/BodyElement.java
@@ -0,0 +1,100 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Body Element</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.BodyElement#getBody <em>Body</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.BodyElement#getHtml <em>Html</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.BodyElement#getCallout <em>Callout</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getBodyElement()
+ * @model abstract="true"
+ * @generated
+ */
+public interface BodyElement extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Body</b></em>' container reference. It is bidirectional and its opposite is '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.Body#getElements <em>Elements</em>}'. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Body</em>' container reference isn't clear, there really should be more of a description
+ * here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Body</em>' container reference.
+ * @see #setBody(Body)
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getBodyElement_Body()
+ * @see org.eclipse.emf.cdo.releng.doc.article.Body#getElements
+ * @model opposite="elements" resolveProxies="false" transient="false"
+ * @generated
+ */
+ Body getBody();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.doc.article.BodyElement#getBody <em>Body</em>}' container
+ * reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Body</em>' container reference.
+ * @see #getBody()
+ * @generated
+ */
+ void setBody(Body value);
+
+ /**
+ * Returns the value of the '<em><b>Html</b></em>' attribute. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Html</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Html</em>' attribute.
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getBodyElement_Html()
+ * @model changeable="false" derived="true"
+ * @generated
+ */
+ String getHtml();
+
+ /**
+ * Returns the value of the '<em><b>Callout</b></em>' container reference. It is bidirectional and its opposite is '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.Callout#getElements <em>Elements</em>}'. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Callout</em>' container reference isn't clear, there really should be more of a
+ * description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Callout</em>' container reference.
+ * @see #setCallout(Callout)
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getBodyElement_Callout()
+ * @see org.eclipse.emf.cdo.releng.doc.article.Callout#getElements
+ * @model opposite="elements" resolveProxies="false" transient="false"
+ * @generated
+ */
+ Callout getCallout();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.doc.article.BodyElement#getCallout <em>Callout</em>}'
+ * container reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Callout</em>' container reference.
+ * @see #getCallout()
+ * @generated
+ */
+ void setCallout(Callout value);
+
+} // BodyElement
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Callout.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Callout.java
new file mode 100644
index 0000000000..b5ca1ae905
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Callout.java
@@ -0,0 +1,75 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Callout</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.Callout#getSnippet <em>Snippet</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.Callout#getElements <em>Elements</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getCallout()
+ * @model
+ * @generated
+ */
+public interface Callout extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Snippet</b></em>' container reference. It is bidirectional and its opposite is '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.Snippet#getCallouts <em>Callouts</em>}'. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Snippet</em>' container reference isn't clear, there really should be more of a
+ * description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Snippet</em>' container reference.
+ * @see #setSnippet(Snippet)
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getCallout_Snippet()
+ * @see org.eclipse.emf.cdo.releng.doc.article.Snippet#getCallouts
+ * @model opposite="callouts" resolveProxies="false" required="true" transient="false"
+ * @generated
+ */
+ Snippet getSnippet();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.doc.article.Callout#getSnippet <em>Snippet</em>}'
+ * container reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Snippet</em>' container reference.
+ * @see #getSnippet()
+ * @generated
+ */
+ void setSnippet(Snippet value);
+
+ /**
+ * Returns the value of the '<em><b>Elements</b></em>' containment reference list. The list contents are of type
+ * {@link org.eclipse.emf.cdo.releng.doc.article.BodyElement}. It is bidirectional and its opposite is '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.BodyElement#getCallout <em>Callout</em>}'. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Elements</em>' containment reference list isn't clear, there really should be more of a
+ * description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Elements</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getCallout_Elements()
+ * @see org.eclipse.emf.cdo.releng.doc.article.BodyElement#getCallout
+ * @model opposite="callout" containment="true" required="true"
+ * @generated
+ */
+ EList<BodyElement> getElements();
+
+} // Callout
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Category.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Category.java
index bdc6895b6c..4b2b2a87b5 100644
--- a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Category.java
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Category.java
@@ -1,68 +1,18 @@
/**
- * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
*/
package org.eclipse.emf.cdo.releng.doc.article;
-import com.sun.javadoc.PackageDoc;
-
-
/**
- * @author Eike Stepper
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Category</b></em>'. <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getCategory()
+ * @model
+ * @generated
*/
-public class Category extends CategoryElement
+public interface Category extends Body
{
- private final String name;
-
- private PackageDoc packageDoc;
-
- Category(CategoryElement parent, String name)
- {
- super(parent);
- this.name = name;
- }
-
- public final String getName()
- {
- return name;
- }
-
- public final PackageDoc getPackageDoc()
- {
- return packageDoc;
- }
-
- @Override
- public String getPath()
- {
- Category parent = getParent();
- if (parent == null)
- {
- return name;
- }
-
- return parent.getPath() + "/" + name;
- }
-
- public void accept(Visitor visitor) throws Exception
- {
- visitor.visit(this);
- }
-
- @Override
- public String toString()
- {
- return name;
- }
-
- final void setPackageDoc(PackageDoc packageDoc)
- {
- this.packageDoc = packageDoc;
- }
-}
+} // Category
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Chapter.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Chapter.java
new file mode 100644
index 0000000000..924cc99510
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Chapter.java
@@ -0,0 +1,39 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Chapter</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.Chapter#getArticle <em>Article</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getChapter()
+ * @model
+ * @generated
+ */
+public interface Chapter extends Body
+{
+
+ /**
+ * Returns the value of the '<em><b>Article</b></em>' reference. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Article</em>' reference isn't clear, there really should be more of a description
+ * here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Article</em>' reference.
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getChapter_Article()
+ * @model resolveProxies="false" required="true" transient="true" changeable="false" volatile="true" derived="true"
+ * @generated
+ */
+ Article getArticle();
+} // Chapter
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Context.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Context.java
new file mode 100644
index 0000000000..11d7113fc1
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Context.java
@@ -0,0 +1,106 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+import com.sun.javadoc.RootDoc;
+
+import java.io.File;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Context</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.Context#getBaseFolder <em>Base Folder</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.Context#getProject <em>Project</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.Context#getDocumentations <em>Documentations</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.Context#getRoot <em>Root</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getContext()
+ * @model
+ * @generated
+ */
+public interface Context extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Base Folder</b></em>' attribute. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Folder</em>' attribute isn't clear, there really should be more of a description
+ * here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Base Folder</em>' attribute.
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getContext_BaseFolder()
+ * @model dataType="org.eclipse.emf.cdo.releng.doc.article.File" required="true" changeable="false"
+ * @generated
+ */
+ File getBaseFolder();
+
+ /**
+ * Returns the value of the '<em><b>Project</b></em>' attribute. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Project</em>' attribute isn't clear, there really should be more of a description
+ * here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Project</em>' attribute.
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getContext_Project()
+ * @model required="true" changeable="false"
+ * @generated
+ */
+ String getProject();
+
+ /**
+ * Returns the value of the '<em><b>Documentations</b></em>' containment reference list. The list contents are of type
+ * {@link org.eclipse.emf.cdo.releng.doc.article.Documentation}. It is bidirectional and its opposite is '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.Documentation#getContext <em>Context</em>}'. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Documentations</em>' containment reference list isn't clear, there really should be more
+ * of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Documentations</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getContext_Documentations()
+ * @see org.eclipse.emf.cdo.releng.doc.article.Documentation#getContext
+ * @model opposite="context" containment="true" required="true"
+ * @generated
+ */
+ EList<Documentation> getDocumentations();
+
+ /**
+ * Returns the value of the '<em><b>Root</b></em>' attribute. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Root</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Root</em>' attribute.
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getContext_Root()
+ * @model dataType="org.eclipse.emf.cdo.releng.doc.article.RootDoc" required="true" transient="true"
+ * changeable="false" volatile="true"
+ * @generated
+ */
+ RootDoc getRoot();
+
+ Documentation getDocumentation();
+
+ Documentation getDocumentation(String id);
+
+ boolean isRegistered(Object id);
+
+ void register(Object id, Object value);
+
+ Object lookup(Object id);
+} // Context
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Diagram.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Diagram.java
new file mode 100644
index 0000000000..29e619f3d0
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Diagram.java
@@ -0,0 +1,50 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Diagram</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.Diagram#getCode <em>Code</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getDiagram()
+ * @model
+ * @generated
+ */
+public interface Diagram extends BodyElement
+{
+ /**
+ * Returns the value of the '<em><b>Code</b></em>' attribute. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Code</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Code</em>' attribute.
+ * @see #setCode(String)
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getDiagram_Code()
+ * @model required="true"
+ * @generated
+ */
+ String getCode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.doc.article.Diagram#getCode <em>Code</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Code</em>' attribute.
+ * @see #getCode()
+ * @generated
+ */
+ void setCode(String value);
+
+} // Diagram
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Documentation.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Documentation.java
index 6f92de0349..cbc7b94eca 100644
--- a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Documentation.java
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Documentation.java
@@ -1,159 +1,109 @@
/**
- * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
*/
package org.eclipse.emf.cdo.releng.doc.article;
-import com.sun.javadoc.ClassDoc;
-import com.sun.javadoc.PackageDoc;
-import com.sun.javadoc.RootDoc;
-import com.sun.javadoc.Tag;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
+import org.eclipse.emf.common.util.EList;
/**
- * @author Eike Stepper
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Documentation</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.Documentation#getContext <em>Context</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.Documentation#getEmbeddableElements <em>Embeddable Elements</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.Documentation#getDependencies <em>Dependencies</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.Documentation#getProject <em>Project</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getDocumentation()
+ * @model
+ * @generated
*/
-public class Documentation extends CategoryElement
+public interface Documentation extends StructuralElement
{
- private final RootDoc root;
-
- private final File baseFolder;
-
- private final String outputPath;
-
- private final Map<ClassDoc, ArticleElement> articleElements = new HashMap<ClassDoc, ArticleElement>();
-
- Documentation(RootDoc root, String base, String outputPath) throws IOException
- {
- super(null);
- this.root = root;
- this.outputPath = outputPath;
-
- baseFolder = new File(base).getCanonicalFile();
- if (!baseFolder.exists())
- {
- if (!baseFolder.mkdirs())
- {
- throw new IOException("Could not create " + base);
- }
- }
- }
-
- void registerArticleElement(ArticleElement articleElement)
- {
- articleElements.put(articleElement.getClassDoc(), articleElement);
- }
-
- boolean isTutorialClass(ClassDoc classDoc)
- {
- for (ClassDoc doc : root.classes())
- {
- if (doc == classDoc)
- {
- return true;
- }
- }
-
- return false;
- }
-
- boolean isExampleClass(ClassDoc classDoc)
- {
- Tag[] exampleTags = classDoc.tags("@example");
- return exampleTags != null && exampleTags.length != 0;
- }
-
- @Override
- public Documentation getDocumentation()
- {
- return this;
- }
-
- public final Map<ClassDoc, ArticleElement> getArticleElements()
- {
- return articleElements;
- }
-
- public final RootDoc getRoot()
- {
- return root;
- }
-
- public final File getBaseFolder()
- {
- return baseFolder;
- }
-
- public final String getOutputPath()
- {
- return outputPath;
- }
-
- public File getOutputFolder()
- {
- return new File(baseFolder, outputPath);
- }
-
- @Override
- public String getPath()
- {
- return "";
- }
-
- @Override
- public String toString()
- {
- return Documentation.class.getSimpleName();
- }
-
- public void accept(Visitor visitor) throws Exception
- {
- visitor.visit(this);
- }
-
- public static Documentation create(RootDoc root, String base, String outputPath) throws Exception
- {
- Documentation documentation = new Documentation(root, base, outputPath);
- processTopLevelClasses(documentation);
- documentation.accept(new DocumentationResolver());
-
- return documentation;
- }
-
- private static void processTopLevelClasses(Documentation documentation)
- {
- for (ClassDoc classDoc : documentation.getRoot().classes())
- {
- if (classDoc.containingClass() == null && !classDoc.isPackagePrivate())
- {
- PackageDoc containingPackage = classDoc.containingPackage();
- Category category = documentation.getCategory(containingPackage.name());
- category.setPackageDoc(containingPackage);
-
- Article article = new Article(category, classDoc);
- category.getArticles().add(article);
- processClass(article);
- }
- }
- }
-
- private static void processClass(ArticleElement parent)
- {
- for (ClassDoc classDoc : parent.getClassDoc().innerClasses())
- {
- Section section = new Section(parent, classDoc);
- parent.getSections().add(section);
- processClass(section);
- }
- }
-}
+ /**
+ * Returns the value of the '<em><b>Context</b></em>' container reference. It is bidirectional and its opposite is '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.Context#getDocumentations <em>Documentations</em>}'. <!--
+ * begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Context</em>' container reference isn't clear, there really should be more of a
+ * description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Context</em>' container reference.
+ * @see #setContext(Context)
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getDocumentation_Context()
+ * @see org.eclipse.emf.cdo.releng.doc.article.Context#getDocumentations
+ * @model opposite="documentations" resolveProxies="false" required="true" transient="false"
+ * @generated
+ */
+ Context getContext();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.doc.article.Documentation#getContext <em>Context</em>}'
+ * container reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Context</em>' container reference.
+ * @see #getContext()
+ * @generated
+ */
+ void setContext(Context value);
+
+ /**
+ * Returns the value of the '<em><b>Embeddable Elements</b></em>' containment reference list. The list contents are of
+ * type {@link org.eclipse.emf.cdo.releng.doc.article.EmbeddableElement}. It is bidirectional and its opposite is '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.EmbeddableElement#getDocumentation <em>Documentation</em>}'. <!--
+ * begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Embeddable Elements</em>' containment reference list isn't clear, there really should be
+ * more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Embeddable Elements</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getDocumentation_EmbeddableElements()
+ * @see org.eclipse.emf.cdo.releng.doc.article.EmbeddableElement#getDocumentation
+ * @model opposite="documentation" containment="true"
+ * @generated
+ */
+ EList<EmbeddableElement> getEmbeddableElements();
+
+ /**
+ * Returns the value of the '<em><b>Dependencies</b></em>' reference list. The list contents are of type
+ * {@link org.eclipse.emf.cdo.releng.doc.article.Documentation}. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dependencies</em>' reference list isn't clear, there really should be more of a
+ * description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Dependencies</em>' reference list.
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getDocumentation_Dependencies()
+ * @model resolveProxies="false"
+ * @generated
+ */
+ EList<Documentation> getDependencies();
+
+ /**
+ * Returns the value of the '<em><b>Project</b></em>' attribute. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Project</em>' attribute isn't clear, there really should be more of a description
+ * here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Project</em>' attribute.
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getDocumentation_Project()
+ * @model required="true" changeable="false"
+ * @generated
+ */
+ String getProject();
+
+} // Documentation
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/EmbeddableElement.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/EmbeddableElement.java
new file mode 100644
index 0000000000..7bfe71e8db
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/EmbeddableElement.java
@@ -0,0 +1,63 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Embeddable Element</b></em>'. <!-- end-user-doc
+ * -->
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.EmbeddableElement#getDocumentation <em>Documentation</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getEmbeddableElement()
+ * @model abstract="true"
+ * @generated
+ */
+public interface EmbeddableElement extends Identifiable
+{
+ /**
+ * Returns the value of the '<em><b>Documentation</b></em>' container reference. It is bidirectional and its opposite
+ * is '{@link org.eclipse.emf.cdo.releng.doc.article.Documentation#getEmbeddableElements <em>Embeddable Elements</em>}
+ * '. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Documentation</em>' container reference isn't clear, there really should be more of a
+ * description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Documentation</em>' container reference.
+ * @see #setDocumentation(Documentation)
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getEmbeddableElement_Documentation()
+ * @see org.eclipse.emf.cdo.releng.doc.article.Documentation#getEmbeddableElements
+ * @model opposite="embeddableElements" resolveProxies="false" required="true" transient="false"
+ * @generated
+ */
+ Documentation getDocumentation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.doc.article.EmbeddableElement#getDocumentation
+ * <em>Documentation</em>}' container reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Documentation</em>' container reference.
+ * @see #getDocumentation()
+ * @generated
+ */
+ void setDocumentation(Documentation value);
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @model required="true" embedderRequired="true"
+ * @generated
+ */
+ String getHtml(Embedding embedder);
+
+} // EmbeddableElement
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Embedding.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Embedding.java
new file mode 100644
index 0000000000..2f107babb8
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Embedding.java
@@ -0,0 +1,51 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Embedding</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.Embedding#getElement <em>Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getEmbedding()
+ * @model
+ * @generated
+ */
+public interface Embedding extends BodyElement
+{
+ /**
+ * Returns the value of the '<em><b>Element</b></em>' reference. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Element</em>' reference isn't clear, there really should be more of a description
+ * here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Element</em>' reference.
+ * @see #setElement(EmbeddableElement)
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getEmbedding_Element()
+ * @model resolveProxies="false" required="true"
+ * @generated
+ */
+ EmbeddableElement getElement();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.doc.article.Embedding#getElement <em>Element</em>}'
+ * reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Element</em>' reference.
+ * @see #getElement()
+ * @generated
+ */
+ void setElement(EmbeddableElement value);
+
+} // Embedding
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/ExternalTarget.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/ExternalTarget.java
new file mode 100644
index 0000000000..6e3137479e
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/ExternalTarget.java
@@ -0,0 +1,18 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>External Target</b></em>'. <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getExternalTarget()
+ * @model
+ * @generated
+ */
+public interface ExternalTarget extends LinkTarget
+{
+} // ExternalTarget
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Factory.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Factory.java
new file mode 100644
index 0000000000..530000ca54
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Factory.java
@@ -0,0 +1,18 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Factory</b></em>'. <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getFactory()
+ * @model
+ * @generated
+ */
+public interface Factory extends EmbeddableElement
+{
+} // Factory
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Identifiable.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Identifiable.java
new file mode 100644
index 0000000000..7e971847a8
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Identifiable.java
@@ -0,0 +1,40 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Identifiable</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.Identifiable#getId <em>Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getIdentifiable()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface Identifiable extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Id</b></em>' attribute. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Id</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Id</em>' attribute.
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getIdentifiable_Id()
+ * @model required="true" transient="true" changeable="false" volatile="true" derived="true"
+ * @generated
+ */
+ Object getId();
+
+} // Identifiable
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/JavaElement.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/JavaElement.java
new file mode 100644
index 0000000000..719e289cf3
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/JavaElement.java
@@ -0,0 +1,18 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Java Element</b></em>'. <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getJavaElement()
+ * @model
+ * @generated
+ */
+public interface JavaElement extends LinkTarget
+{
+} // JavaElement
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Link.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Link.java
new file mode 100644
index 0000000000..db9ea8ca74
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Link.java
@@ -0,0 +1,50 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Link</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.Link#getTarget <em>Target</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getLink()
+ * @model
+ * @generated
+ */
+public interface Link extends BodyElement
+{
+ /**
+ * Returns the value of the '<em><b>Target</b></em>' reference. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Target</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Target</em>' reference.
+ * @see #setTarget(LinkTarget)
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getLink_Target()
+ * @model resolveProxies="false"
+ * @generated
+ */
+ LinkTarget getTarget();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.doc.article.Link#getTarget <em>Target</em>}' reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Target</em>' reference.
+ * @see #getTarget()
+ * @generated
+ */
+ void setTarget(LinkTarget value);
+
+} // Link
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/LinkTarget.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/LinkTarget.java
new file mode 100644
index 0000000000..91911e6f66
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/LinkTarget.java
@@ -0,0 +1,46 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Link Target</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.LinkTarget#getLabel <em>Label</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getLinkTarget()
+ * @model abstract="true"
+ * @generated
+ */
+public interface LinkTarget extends Identifiable
+{
+ /**
+ * Returns the value of the '<em><b>Label</b></em>' attribute. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Label</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Label</em>' attribute.
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getLinkTarget_Label()
+ * @model required="true" transient="true" changeable="false" volatile="true" derived="true"
+ * @generated
+ */
+ String getLabel();
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @model required="true" sourceRequired="true"
+ * @generated
+ */
+ String linkFrom(StructuralElement source);
+
+} // LinkTarget
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Snippet.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Snippet.java
new file mode 100644
index 0000000000..c617fa880d
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Snippet.java
@@ -0,0 +1,44 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Snippet</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.Snippet#getCallouts <em>Callouts</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getSnippet()
+ * @model
+ * @generated
+ */
+public interface Snippet extends EmbeddableElement
+{
+ /**
+ * Returns the value of the '<em><b>Callouts</b></em>' containment reference list. The list contents are of type
+ * {@link org.eclipse.emf.cdo.releng.doc.article.Callout}. It is bidirectional and its opposite is '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.Callout#getSnippet <em>Snippet</em>}'. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Callouts</em>' containment reference list isn't clear, there really should be more of a
+ * description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Callouts</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getSnippet_Callouts()
+ * @see org.eclipse.emf.cdo.releng.doc.article.Callout#getSnippet
+ * @model opposite="snippet" containment="true"
+ * @generated
+ */
+ EList<Callout> getCallouts();
+
+} // Snippet
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/SourceCode.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/SourceCode.java
new file mode 100644
index 0000000000..c3fb3a4fc0
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/SourceCode.java
@@ -0,0 +1,18 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Source Code</b></em>'. <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getSourceCode()
+ * @model
+ * @generated
+ */
+public interface SourceCode extends ExternalTarget
+{
+} // SourceCode
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/StructuralElement.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/StructuralElement.java
new file mode 100644
index 0000000000..cade941d93
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/StructuralElement.java
@@ -0,0 +1,183 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article;
+
+import org.eclipse.emf.common.util.EList;
+
+import com.sun.javadoc.Doc;
+
+import java.io.File;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Structural Element</b></em>'. <!-- end-user-doc
+ * -->
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getChildren <em>Children</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getParent <em>Parent</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getTitle <em>Title</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getPath <em>Path</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getFullPath <em>Full Path</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getOutputFile <em>Output File</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getDocumentation <em>Documentation</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getStructuralElement()
+ * @model abstract="true"
+ * @generated
+ */
+public interface StructuralElement extends LinkTarget
+{
+ /**
+ * Returns the value of the '<em><b>Children</b></em>' containment reference list. The list contents are of type
+ * {@link org.eclipse.emf.cdo.releng.doc.article.StructuralElement}. It is bidirectional and its opposite is '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getParent <em>Parent</em>}'. <!-- begin-user-doc
+ * -->
+ * <p>
+ * If the meaning of the '<em>Children</em>' containment reference list isn't clear, there really should be more of a
+ * description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Children</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getStructuralElement_Children()
+ * @see org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getParent
+ * @model opposite="parent" containment="true"
+ * @generated
+ */
+ EList<StructuralElement> getChildren();
+
+ /**
+ * Returns the value of the '<em><b>Parent</b></em>' container reference. It is bidirectional and its opposite is '
+ * {@link org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getChildren <em>Children</em>}'. <!--
+ * begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Parent</em>' container reference isn't clear, there really should be more of a
+ * description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Parent</em>' container reference.
+ * @see #setParent(StructuralElement)
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getStructuralElement_Parent()
+ * @see org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getChildren
+ * @model opposite="children" resolveProxies="false" transient="false"
+ * @generated
+ */
+ StructuralElement getParent();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.doc.article.StructuralElement#getParent <em>Parent</em>}'
+ * container reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Parent</em>' container reference.
+ * @see #getParent()
+ * @generated
+ */
+ void setParent(StructuralElement value);
+
+ /**
+ * Returns the value of the '<em><b>Title</b></em>' attribute. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Title</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Title</em>' attribute.
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getStructuralElement_Title()
+ * @model required="true" changeable="false"
+ * @generated
+ */
+ String getTitle();
+
+ /**
+ * Returns the value of the '<em><b>Path</b></em>' attribute. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Path</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Path</em>' attribute.
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getStructuralElement_Path()
+ * @model required="true" changeable="false"
+ * @generated
+ */
+ String getPath();
+
+ /**
+ * Returns the value of the '<em><b>Full Path</b></em>' attribute. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Full Path</em>' attribute isn't clear, there really should be more of a description
+ * here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Full Path</em>' attribute.
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getStructuralElement_FullPath()
+ * @model required="true" transient="true" changeable="false" volatile="true" derived="true"
+ * @generated
+ */
+ String getFullPath();
+
+ /**
+ * Returns the value of the '<em><b>Output File</b></em>' attribute. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Output File</em>' attribute isn't clear, there really should be more of a description
+ * here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Output File</em>' attribute.
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getStructuralElement_OutputFile()
+ * @model dataType="org.eclipse.emf.cdo.releng.doc.article.File" required="true" transient="true" changeable="false"
+ * volatile="true" derived="true"
+ * @generated
+ */
+ File getOutputFile();
+
+ /**
+ * Returns the value of the '<em><b>Documentation</b></em>' reference. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Documentation</em>' reference isn't clear, there really should be more of a description
+ * here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Documentation</em>' reference.
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getStructuralElement_Documentation()
+ * @model resolveProxies="false" required="true" transient="true" changeable="false" volatile="true" derived="true"
+ * @generated
+ */
+ Documentation getDocumentation();
+
+ /**
+ * Returns the value of the '<em><b>Doc</b></em>' attribute. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Doc</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Doc</em>' attribute.
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getStructuralElement_Doc()
+ * @model dataType="org.eclipse.emf.cdo.releng.doc.article.Doc" required="true" transient="true" changeable="false"
+ * volatile="true"
+ * @generated
+ */
+ Doc getDoc();
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @model
+ * @generated
+ */
+ void generate();
+
+} // StructuralElement
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Text.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Text.java
new file mode 100644
index 0000000000..4ddfc6265d
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Text.java
@@ -0,0 +1,50 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Text</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.Text#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getText()
+ * @model
+ * @generated
+ */
+public interface Text extends BodyElement
+{
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #setValue(String)
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#getText_Value()
+ * @model required="true"
+ * @generated
+ */
+ String getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.doc.article.Text#getValue <em>Value</em>}' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(String value);
+
+} // Text
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ArticleDoclet.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ArticleDoclet.java
new file mode 100644
index 0000000000..8033bcf993
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ArticleDoclet.java
@@ -0,0 +1,208 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.doc.article.impl;
+
+import org.eclipse.emf.cdo.releng.doc.article.ArticleFactory;
+import org.eclipse.emf.cdo.releng.doc.article.Context;
+import org.eclipse.emf.cdo.releng.doc.article.Documentation;
+import org.eclipse.emf.cdo.releng.doc.article.util.ArticleException;
+
+import com.sun.javadoc.ClassDoc;
+import com.sun.javadoc.RootDoc;
+
+import java.io.File;
+import java.text.SimpleDateFormat;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * @author Eike Stepper
+ */
+public class ArticleDoclet
+{
+ public static final String OPTION_START_TIME = "-starttime";
+
+ public static final String OPTION_PRIVATE = "-private";
+
+ public static final String OPTION_PROJECT = "-project";
+
+ public static final String OPTION_BASE_FOLDER = "-basefolder";
+
+ public static boolean hasOption(RootDoc root, String optionName)
+ {
+ for (String[] option : root.options())
+ {
+ if (optionName.equalsIgnoreCase(option[0]))
+ {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ public static String getOption(RootDoc root, String optionName)
+ {
+ for (String[] option : root.options())
+ {
+ if (optionName.equalsIgnoreCase(option[0]))
+ {
+ // FIXME Multi-argument options?
+ return option[1];
+ }
+ }
+
+ return "";
+ }
+
+ public static void dumpOptions(RootDoc root)
+ {
+ Set<String> sourcepath = new HashSet<String>();
+ Set<String> subpackages = new HashSet<String>();
+ for (ClassDoc classDoc : root.classes())
+ {
+ sourcepath.add(classDoc.position().file().getAbsolutePath());
+ subpackages.add(classDoc.containingPackage().name());
+ }
+
+ System.out.print("-sourcepath");
+ String sep = " ";
+ for (String string : sourcepath)
+ {
+ System.out.print(sep);
+ System.out.print(string.replace('\\', '/').replaceAll("C:/", "/"));
+ sep = ";";
+ }
+
+ System.out.println();
+ System.out.print("-subpackages");
+ sep = " ";
+ for (String string : subpackages)
+ {
+ System.out.print(sep);
+ System.out.print(string);
+ sep = ":";
+ }
+
+ System.out.println();
+ for (String[] option : root.options())
+ {
+ System.out.print(option[0]);
+ for (int i = 1; i < option.length; i++)
+ {
+ String value = option[i];
+ System.out.print(" " + value.replace('\\', '/').replaceAll("C:/", "/"));
+ }
+
+ System.out.println();
+ }
+
+ System.out.println();
+ }
+
+ public static int optionLength(String option)
+ {
+ if (OPTION_BASE_FOLDER.equals(option))
+ {
+ return 2;
+ }
+
+ if (OPTION_START_TIME.equals(option))
+ {
+ return 2;
+ }
+
+ if (OPTION_PROJECT.equals(option))
+ {
+ return 2;
+ }
+
+ // Indicate we don't know about it
+ return -1;
+ }
+
+ public static boolean start(RootDoc root)
+ {
+ // dumpOptions(root);
+
+ long startTime = System.currentTimeMillis();
+
+ try
+ {
+ String timeOption = getOption(root, OPTION_START_TIME);
+ if (timeOption.length() != 0)
+ {
+ try
+ {
+ startTime = new SimpleDateFormat("y-M-D-H-m-s-S").parse(timeOption).getTime();
+ }
+ catch (Exception ex)
+ {
+ ex.printStackTrace();
+ }
+ }
+
+ if (!hasOption(root, OPTION_PRIVATE))
+ {
+ throw new ArticleException("Missing option: " + OPTION_PRIVATE);
+ }
+
+ File baseFolder = new File(getOption(root, OPTION_BASE_FOLDER));
+ String project = getOption(root, OPTION_PROJECT);
+
+ Context context = ArticleFactory.eINSTANCE.createContext(root, baseFolder, project);
+
+ Documentation documentation = context.getDocumentation();
+ documentation.generate();
+
+ return true;
+ }
+ catch (ArticleException ex)
+ {
+ System.err.println(ex.getMessage());
+ }
+ catch (Error ex)
+ {
+ ex.printStackTrace();
+ }
+ catch (Exception ex)
+ {
+ ex.printStackTrace();
+ }
+ finally
+ {
+ long duration = (System.currentTimeMillis() - startTime) / 1000;
+ System.out.println("Total time: " + duration + " seconds");
+ }
+
+ return false;
+ }
+
+ static
+ {
+ // Preload classes
+ new ArticleImpl();
+ new CalloutImpl();
+ new CategoryImpl();
+ new ChapterImpl();
+ new ContextImpl();
+ new DiagramImpl();
+ new DocumentationImpl();
+ new EmbeddingImpl();
+ new ExternalTargetImpl();
+ new FactoryImpl();
+ new JavaElementImpl();
+ new LinkImpl();
+ new SnippetImpl();
+ new SourceCodeImpl();
+ new TextImpl();
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ArticleFactoryImpl.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ArticleFactoryImpl.java
new file mode 100644
index 0000000000..9c2ea87fe6
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ArticleFactoryImpl.java
@@ -0,0 +1,369 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article.impl;
+
+import org.eclipse.emf.cdo.releng.doc.article.Article;
+import org.eclipse.emf.cdo.releng.doc.article.ArticleFactory;
+import org.eclipse.emf.cdo.releng.doc.article.ArticlePackage;
+import org.eclipse.emf.cdo.releng.doc.article.Callout;
+import org.eclipse.emf.cdo.releng.doc.article.Category;
+import org.eclipse.emf.cdo.releng.doc.article.Chapter;
+import org.eclipse.emf.cdo.releng.doc.article.Context;
+import org.eclipse.emf.cdo.releng.doc.article.Diagram;
+import org.eclipse.emf.cdo.releng.doc.article.Documentation;
+import org.eclipse.emf.cdo.releng.doc.article.Embedding;
+import org.eclipse.emf.cdo.releng.doc.article.ExternalTarget;
+import org.eclipse.emf.cdo.releng.doc.article.Factory;
+import org.eclipse.emf.cdo.releng.doc.article.JavaElement;
+import org.eclipse.emf.cdo.releng.doc.article.Link;
+import org.eclipse.emf.cdo.releng.doc.article.Snippet;
+import org.eclipse.emf.cdo.releng.doc.article.SourceCode;
+import org.eclipse.emf.cdo.releng.doc.article.Text;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import com.sun.javadoc.RootDoc;
+
+import java.io.File;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model <b>Factory</b>. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ArticleFactoryImpl extends EFactoryImpl implements ArticleFactory
+{
+ /**
+ * Creates the default factory implementation. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static ArticleFactory init()
+ {
+ try
+ {
+ ArticleFactory theArticleFactory = (ArticleFactory)EPackage.Registry.INSTANCE
+ .getEFactory("http://www.eclipse.org/ARTICLE/1.0");
+ if (theArticleFactory != null)
+ {
+ return theArticleFactory;
+ }
+ }
+ catch (Exception exception)
+ {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new ArticleFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public ArticleFactoryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass)
+ {
+ switch (eClass.getClassifierID())
+ {
+ case ArticlePackage.DOCUMENTATION:
+ return createDocumentation();
+ case ArticlePackage.CONTEXT:
+ return createContext();
+ case ArticlePackage.CATEGORY:
+ return createCategory();
+ case ArticlePackage.ARTICLE:
+ return createArticle();
+ case ArticlePackage.CHAPTER:
+ return createChapter();
+ case ArticlePackage.SNIPPET:
+ return createSnippet();
+ case ArticlePackage.DIAGRAM:
+ return createDiagram();
+ case ArticlePackage.FACTORY:
+ return createFactory();
+ case ArticlePackage.JAVA_ELEMENT:
+ return createJavaElement();
+ case ArticlePackage.CALLOUT:
+ return createCallout();
+ case ArticlePackage.EXTERNAL_TARGET:
+ return createExternalTarget();
+ case ArticlePackage.TEXT:
+ return createText();
+ case ArticlePackage.LINK:
+ return createLink();
+ case ArticlePackage.EMBEDDING:
+ return createEmbedding();
+ case ArticlePackage.SOURCE_CODE:
+ return createSourceCode();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ case ArticlePackage.FILE:
+ return createFileFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ case ArticlePackage.FILE:
+ return convertFileToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Documentation createDocumentation()
+ {
+ DocumentationImpl documentation = new DocumentationImpl();
+ return documentation;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Context createContext()
+ {
+ ContextImpl context = new ContextImpl();
+ return context;
+ }
+
+ public Context createContext(RootDoc root, File baseFolder, String project)
+ {
+ return new ContextImpl(root, baseFolder, project);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Category createCategory()
+ {
+ CategoryImpl category = new CategoryImpl();
+ return category;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Article createArticle()
+ {
+ ArticleImpl article = new ArticleImpl();
+ return article;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Chapter createChapter()
+ {
+ ChapterImpl chapter = new ChapterImpl();
+ return chapter;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Snippet createSnippet()
+ {
+ SnippetImpl snippet = new SnippetImpl();
+ return snippet;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Diagram createDiagram()
+ {
+ DiagramImpl diagram = new DiagramImpl();
+ return diagram;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Factory createFactory()
+ {
+ FactoryImpl factory = new FactoryImpl();
+ return factory;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public JavaElement createJavaElement()
+ {
+ JavaElementImpl javaElement = new JavaElementImpl();
+ return javaElement;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Callout createCallout()
+ {
+ CalloutImpl callout = new CalloutImpl();
+ return callout;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public ExternalTarget createExternalTarget()
+ {
+ ExternalTargetImpl externalTarget = new ExternalTargetImpl();
+ return externalTarget;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Text createText()
+ {
+ TextImpl text = new TextImpl();
+ return text;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Link createLink()
+ {
+ LinkImpl link = new LinkImpl();
+ return link;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Embedding createEmbedding()
+ {
+ EmbeddingImpl embedding = new EmbeddingImpl();
+ return embedding;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public SourceCode createSourceCode()
+ {
+ SourceCodeImpl sourceCode = new SourceCodeImpl();
+ return sourceCode;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public File createFileFromString(EDataType eDataType, String initialValue)
+ {
+ return (File)super.createFromString(eDataType, initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String convertFileToString(EDataType eDataType, Object instanceValue)
+ {
+ return super.convertToString(eDataType, instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public ArticlePackage getArticlePackage()
+ {
+ return (ArticlePackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static ArticlePackage getPackage()
+ {
+ return ArticlePackage.eINSTANCE;
+ }
+
+} // ArticleFactoryImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ArticleImpl.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ArticleImpl.java
new file mode 100644
index 0000000000..59403ae350
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ArticleImpl.java
@@ -0,0 +1,52 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article.impl;
+
+import org.eclipse.emf.cdo.releng.doc.article.Article;
+import org.eclipse.emf.cdo.releng.doc.article.ArticlePackage;
+import org.eclipse.emf.cdo.releng.doc.article.StructuralElement;
+
+import org.eclipse.emf.ecore.EClass;
+
+import com.sun.javadoc.ClassDoc;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Article</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class ArticleImpl extends ChapterImpl implements Article
+{
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ArticleImpl()
+ {
+ super();
+ }
+
+ ArticleImpl(StructuralElement parent, ClassDoc classDoc)
+ {
+ super(parent, classDoc);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ArticlePackage.Literals.ARTICLE;
+ }
+
+} // ArticleImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ArticlePackageImpl.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ArticlePackageImpl.java
new file mode 100644
index 0000000000..78f86c482a
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ArticlePackageImpl.java
@@ -0,0 +1,1169 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article.impl;
+
+import org.eclipse.emf.cdo.releng.doc.article.Article;
+import org.eclipse.emf.cdo.releng.doc.article.ArticleFactory;
+import org.eclipse.emf.cdo.releng.doc.article.ArticlePackage;
+import org.eclipse.emf.cdo.releng.doc.article.Body;
+import org.eclipse.emf.cdo.releng.doc.article.BodyElement;
+import org.eclipse.emf.cdo.releng.doc.article.Callout;
+import org.eclipse.emf.cdo.releng.doc.article.Category;
+import org.eclipse.emf.cdo.releng.doc.article.Chapter;
+import org.eclipse.emf.cdo.releng.doc.article.Context;
+import org.eclipse.emf.cdo.releng.doc.article.Diagram;
+import org.eclipse.emf.cdo.releng.doc.article.Documentation;
+import org.eclipse.emf.cdo.releng.doc.article.EmbeddableElement;
+import org.eclipse.emf.cdo.releng.doc.article.Embedding;
+import org.eclipse.emf.cdo.releng.doc.article.ExternalTarget;
+import org.eclipse.emf.cdo.releng.doc.article.Factory;
+import org.eclipse.emf.cdo.releng.doc.article.Identifiable;
+import org.eclipse.emf.cdo.releng.doc.article.JavaElement;
+import org.eclipse.emf.cdo.releng.doc.article.Link;
+import org.eclipse.emf.cdo.releng.doc.article.LinkTarget;
+import org.eclipse.emf.cdo.releng.doc.article.Snippet;
+import org.eclipse.emf.cdo.releng.doc.article.SourceCode;
+import org.eclipse.emf.cdo.releng.doc.article.StructuralElement;
+import org.eclipse.emf.cdo.releng.doc.article.Text;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import com.sun.javadoc.Doc;
+import com.sun.javadoc.RootDoc;
+
+import java.io.File;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model <b>Package</b>. <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ArticlePackageImpl extends EPackageImpl implements ArticlePackage
+{
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass documentationEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass contextEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass categoryEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass articleEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass chapterEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass snippetEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass diagramEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass factoryEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass javaElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass structuralElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass linkTargetEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass calloutEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass embeddableElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass externalTargetEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass identifiableEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass bodyEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass bodyElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass textEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass linkEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass embeddingEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass sourceCodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EDataType rootDocEDataType = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EDataType fileEDataType = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EDataType docEDataType = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
+ * EPackage.Registry} by the package package URI value.
+ * <p>
+ * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
+ * performs initialization of the package, or returns the registered package, if one already exists. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private ArticlePackageImpl()
+ {
+ super(eNS_URI, ArticleFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ * <p>
+ * This method is used to initialize {@link ArticlePackage#eINSTANCE} when that field is accessed. Clients should not
+ * invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static ArticlePackage init()
+ {
+ if (isInited)
+ return (ArticlePackage)EPackage.Registry.INSTANCE.getEPackage(ArticlePackage.eNS_URI);
+
+ // Obtain or create and register package
+ ArticlePackageImpl theArticlePackage = (ArticlePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof ArticlePackageImpl ? EPackage.Registry.INSTANCE
+ .get(eNS_URI) : new ArticlePackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theArticlePackage.createPackageContents();
+
+ // Initialize created meta-data
+ theArticlePackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theArticlePackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(ArticlePackage.eNS_URI, theArticlePackage);
+ return theArticlePackage;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getDocumentation()
+ {
+ return documentationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getDocumentation_Context()
+ {
+ return (EReference)documentationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getDocumentation_EmbeddableElements()
+ {
+ return (EReference)documentationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getDocumentation_Dependencies()
+ {
+ return (EReference)documentationEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getDocumentation_Project()
+ {
+ return (EAttribute)documentationEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getContext()
+ {
+ return contextEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getContext_BaseFolder()
+ {
+ return (EAttribute)contextEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getContext_Project()
+ {
+ return (EAttribute)contextEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getContext_Documentations()
+ {
+ return (EReference)contextEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getContext_Root()
+ {
+ return (EAttribute)contextEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getCategory()
+ {
+ return categoryEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getArticle()
+ {
+ return articleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getChapter()
+ {
+ return chapterEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getChapter_Article()
+ {
+ return (EReference)chapterEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getSnippet()
+ {
+ return snippetEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getSnippet_Callouts()
+ {
+ return (EReference)snippetEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getDiagram()
+ {
+ return diagramEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getDiagram_Code()
+ {
+ return (EAttribute)diagramEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getFactory()
+ {
+ return factoryEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getJavaElement()
+ {
+ return javaElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getStructuralElement()
+ {
+ return structuralElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getStructuralElement_Children()
+ {
+ return (EReference)structuralElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getStructuralElement_Parent()
+ {
+ return (EReference)structuralElementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getStructuralElement_Title()
+ {
+ return (EAttribute)structuralElementEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getStructuralElement_Path()
+ {
+ return (EAttribute)structuralElementEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getStructuralElement_FullPath()
+ {
+ return (EAttribute)structuralElementEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getStructuralElement_OutputFile()
+ {
+ return (EAttribute)structuralElementEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getStructuralElement_Documentation()
+ {
+ return (EReference)structuralElementEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getStructuralElement_Doc()
+ {
+ return (EAttribute)structuralElementEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getLinkTarget()
+ {
+ return linkTargetEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getLinkTarget_Label()
+ {
+ return (EAttribute)linkTargetEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getCallout()
+ {
+ return calloutEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getCallout_Snippet()
+ {
+ return (EReference)calloutEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getCallout_Elements()
+ {
+ return (EReference)calloutEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getEmbeddableElement()
+ {
+ return embeddableElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getEmbeddableElement_Documentation()
+ {
+ return (EReference)embeddableElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getExternalTarget()
+ {
+ return externalTargetEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getIdentifiable()
+ {
+ return identifiableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getIdentifiable_Id()
+ {
+ return (EAttribute)identifiableEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getBody()
+ {
+ return bodyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getBody_Elements()
+ {
+ return (EReference)bodyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getBody_Html()
+ {
+ return (EAttribute)bodyEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getBody_Category()
+ {
+ return (EReference)bodyEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getBodyElement()
+ {
+ return bodyElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getBodyElement_Body()
+ {
+ return (EReference)bodyElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getBodyElement_Html()
+ {
+ return (EAttribute)bodyElementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getBodyElement_Callout()
+ {
+ return (EReference)bodyElementEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getText()
+ {
+ return textEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getText_Value()
+ {
+ return (EAttribute)textEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getLink()
+ {
+ return linkEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getLink_Target()
+ {
+ return (EReference)linkEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getEmbedding()
+ {
+ return embeddingEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getEmbedding_Element()
+ {
+ return (EReference)embeddingEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getSourceCode()
+ {
+ return sourceCodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EDataType getRootDoc()
+ {
+ return rootDocEDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EDataType getFile()
+ {
+ return fileEDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EDataType getDoc()
+ {
+ return docEDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public ArticleFactory getArticleFactory()
+ {
+ return (ArticleFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is guarded to have no affect on any invocation but its
+ * first. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void createPackageContents()
+ {
+ if (isCreated)
+ return;
+ isCreated = true;
+
+ // Create classes and their features
+ documentationEClass = createEClass(DOCUMENTATION);
+ createEReference(documentationEClass, DOCUMENTATION__CONTEXT);
+ createEReference(documentationEClass, DOCUMENTATION__EMBEDDABLE_ELEMENTS);
+ createEReference(documentationEClass, DOCUMENTATION__DEPENDENCIES);
+ createEAttribute(documentationEClass, DOCUMENTATION__PROJECT);
+
+ contextEClass = createEClass(CONTEXT);
+ createEAttribute(contextEClass, CONTEXT__BASE_FOLDER);
+ createEAttribute(contextEClass, CONTEXT__PROJECT);
+ createEReference(contextEClass, CONTEXT__DOCUMENTATIONS);
+ createEAttribute(contextEClass, CONTEXT__ROOT);
+
+ categoryEClass = createEClass(CATEGORY);
+
+ articleEClass = createEClass(ARTICLE);
+
+ chapterEClass = createEClass(CHAPTER);
+ createEReference(chapterEClass, CHAPTER__ARTICLE);
+
+ snippetEClass = createEClass(SNIPPET);
+ createEReference(snippetEClass, SNIPPET__CALLOUTS);
+
+ diagramEClass = createEClass(DIAGRAM);
+ createEAttribute(diagramEClass, DIAGRAM__CODE);
+
+ factoryEClass = createEClass(FACTORY);
+
+ javaElementEClass = createEClass(JAVA_ELEMENT);
+
+ structuralElementEClass = createEClass(STRUCTURAL_ELEMENT);
+ createEReference(structuralElementEClass, STRUCTURAL_ELEMENT__CHILDREN);
+ createEReference(structuralElementEClass, STRUCTURAL_ELEMENT__PARENT);
+ createEAttribute(structuralElementEClass, STRUCTURAL_ELEMENT__TITLE);
+ createEAttribute(structuralElementEClass, STRUCTURAL_ELEMENT__PATH);
+ createEAttribute(structuralElementEClass, STRUCTURAL_ELEMENT__FULL_PATH);
+ createEAttribute(structuralElementEClass, STRUCTURAL_ELEMENT__OUTPUT_FILE);
+ createEReference(structuralElementEClass, STRUCTURAL_ELEMENT__DOCUMENTATION);
+ createEAttribute(structuralElementEClass, STRUCTURAL_ELEMENT__DOC);
+
+ linkTargetEClass = createEClass(LINK_TARGET);
+ createEAttribute(linkTargetEClass, LINK_TARGET__LABEL);
+
+ calloutEClass = createEClass(CALLOUT);
+ createEReference(calloutEClass, CALLOUT__SNIPPET);
+ createEReference(calloutEClass, CALLOUT__ELEMENTS);
+
+ embeddableElementEClass = createEClass(EMBEDDABLE_ELEMENT);
+ createEReference(embeddableElementEClass, EMBEDDABLE_ELEMENT__DOCUMENTATION);
+
+ externalTargetEClass = createEClass(EXTERNAL_TARGET);
+
+ identifiableEClass = createEClass(IDENTIFIABLE);
+ createEAttribute(identifiableEClass, IDENTIFIABLE__ID);
+
+ bodyEClass = createEClass(BODY);
+ createEReference(bodyEClass, BODY__ELEMENTS);
+ createEAttribute(bodyEClass, BODY__HTML);
+ createEReference(bodyEClass, BODY__CATEGORY);
+
+ bodyElementEClass = createEClass(BODY_ELEMENT);
+ createEReference(bodyElementEClass, BODY_ELEMENT__BODY);
+ createEAttribute(bodyElementEClass, BODY_ELEMENT__HTML);
+ createEReference(bodyElementEClass, BODY_ELEMENT__CALLOUT);
+
+ textEClass = createEClass(TEXT);
+ createEAttribute(textEClass, TEXT__VALUE);
+
+ linkEClass = createEClass(LINK);
+ createEReference(linkEClass, LINK__TARGET);
+
+ embeddingEClass = createEClass(EMBEDDING);
+ createEReference(embeddingEClass, EMBEDDING__ELEMENT);
+
+ sourceCodeEClass = createEClass(SOURCE_CODE);
+
+ // Create data types
+ rootDocEDataType = createEDataType(ROOT_DOC);
+ fileEDataType = createEDataType(FILE);
+ docEDataType = createEDataType(DOC);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This method is guarded to have no affect on any
+ * invocation but its first. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void initializePackageContents()
+ {
+ if (isInitialized)
+ return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ documentationEClass.getESuperTypes().add(this.getStructuralElement());
+ categoryEClass.getESuperTypes().add(this.getBody());
+ articleEClass.getESuperTypes().add(this.getChapter());
+ chapterEClass.getESuperTypes().add(this.getBody());
+ snippetEClass.getESuperTypes().add(this.getEmbeddableElement());
+ diagramEClass.getESuperTypes().add(this.getBodyElement());
+ factoryEClass.getESuperTypes().add(this.getEmbeddableElement());
+ javaElementEClass.getESuperTypes().add(this.getLinkTarget());
+ structuralElementEClass.getESuperTypes().add(this.getLinkTarget());
+ linkTargetEClass.getESuperTypes().add(this.getIdentifiable());
+ embeddableElementEClass.getESuperTypes().add(this.getIdentifiable());
+ externalTargetEClass.getESuperTypes().add(this.getLinkTarget());
+ bodyEClass.getESuperTypes().add(this.getStructuralElement());
+ textEClass.getESuperTypes().add(this.getBodyElement());
+ linkEClass.getESuperTypes().add(this.getBodyElement());
+ embeddingEClass.getESuperTypes().add(this.getBodyElement());
+ sourceCodeEClass.getESuperTypes().add(this.getExternalTarget());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(documentationEClass, Documentation.class, "Documentation", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getDocumentation_Context(), this.getContext(), this.getContext_Documentations(), "context", null, 1,
+ 1, Documentation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentation_EmbeddableElements(), this.getEmbeddableElement(),
+ this.getEmbeddableElement_Documentation(), "embeddableElements", null, 0, -1, Documentation.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentation_Dependencies(), this.getDocumentation(), null, "dependencies", null, 0, -1,
+ Documentation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDocumentation_Project(), ecorePackage.getEString(), "project", null, 1, 1, Documentation.class,
+ !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(contextEClass, Context.class, "Context", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getContext_BaseFolder(), this.getFile(), "baseFolder", null, 1, 1, Context.class, !IS_TRANSIENT,
+ !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getContext_Project(), ecorePackage.getEString(), "project", null, 1, 1, Context.class,
+ !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getContext_Documentations(), this.getDocumentation(), this.getDocumentation_Context(),
+ "documentations", null, 1, -1, Context.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+ !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getContext_Root(), this.getRootDoc(), "root", null, 1, 1, Context.class, IS_TRANSIENT, IS_VOLATILE,
+ !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(categoryEClass, Category.class, "Category", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(articleEClass, Article.class, "Article", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(chapterEClass, Chapter.class, "Chapter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getChapter_Article(), this.getArticle(), null, "article", null, 1, 1, Chapter.class, IS_TRANSIENT,
+ IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED,
+ IS_ORDERED);
+
+ initEClass(snippetEClass, Snippet.class, "Snippet", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSnippet_Callouts(), this.getCallout(), this.getCallout_Snippet(), "callouts", null, 0, -1,
+ Snippet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(diagramEClass, Diagram.class, "Diagram", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getDiagram_Code(), ecorePackage.getEString(), "code", null, 1, 1, Diagram.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(factoryEClass, Factory.class, "Factory", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(javaElementEClass, JavaElement.class, "JavaElement", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(structuralElementEClass, StructuralElement.class, "StructuralElement", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getStructuralElement_Children(), this.getStructuralElement(), this.getStructuralElement_Parent(),
+ "children", null, 0, -1, StructuralElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+ !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getStructuralElement_Parent(), this.getStructuralElement(), this.getStructuralElement_Children(),
+ "parent", null, 0, 1, StructuralElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+ !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getStructuralElement_Title(), ecorePackage.getEString(), "title", null, 1, 1,
+ StructuralElement.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getStructuralElement_Path(), ecorePackage.getEString(), "path", null, 1, 1, StructuralElement.class,
+ !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getStructuralElement_FullPath(), ecorePackage.getEString(), "fullPath", null, 1, 1,
+ StructuralElement.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ IS_DERIVED, IS_ORDERED);
+ initEAttribute(getStructuralElement_OutputFile(), this.getFile(), "outputFile", null, 1, 1,
+ StructuralElement.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ IS_DERIVED, IS_ORDERED);
+ initEReference(getStructuralElement_Documentation(), this.getDocumentation(), null, "documentation", null, 1, 1,
+ StructuralElement.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEAttribute(getStructuralElement_Doc(), this.getDoc(), "doc", null, 1, 1, StructuralElement.class, IS_TRANSIENT,
+ IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ addEOperation(structuralElementEClass, null, "generate", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(linkTargetEClass, LinkTarget.class, "LinkTarget", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getLinkTarget_Label(), ecorePackage.getEString(), "label", null, 1, 1, LinkTarget.class,
+ IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+
+ EOperation op = addEOperation(linkTargetEClass, ecorePackage.getEString(), "linkFrom", 1, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getStructuralElement(), "source", 1, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(calloutEClass, Callout.class, "Callout", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getCallout_Snippet(), this.getSnippet(), this.getSnippet_Callouts(), "snippet", null, 1, 1,
+ Callout.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCallout_Elements(), this.getBodyElement(), this.getBodyElement_Callout(), "elements", null, 1,
+ -1, Callout.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(embeddableElementEClass, EmbeddableElement.class, "EmbeddableElement", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getEmbeddableElement_Documentation(), this.getDocumentation(),
+ this.getDocumentation_EmbeddableElements(), "documentation", null, 1, 1, EmbeddableElement.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+
+ op = addEOperation(embeddableElementEClass, ecorePackage.getEString(), "getHtml", 1, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getEmbedding(), "embedder", 1, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(externalTargetEClass, ExternalTarget.class, "ExternalTarget", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(identifiableEClass, Identifiable.class, "Identifiable", IS_ABSTRACT, IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getIdentifiable_Id(), ecorePackage.getEJavaObject(), "id", null, 1, 1, Identifiable.class,
+ IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+
+ initEClass(bodyEClass, Body.class, "Body", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getBody_Elements(), this.getBodyElement(), this.getBodyElement_Body(), "elements", null, 0, -1,
+ Body.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getBody_Html(), ecorePackage.getEString(), "html", null, 0, 1, Body.class, !IS_TRANSIENT,
+ !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEReference(getBody_Category(), this.getCategory(), null, "category", null, 0, 1, Body.class, IS_TRANSIENT,
+ IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED,
+ IS_ORDERED);
+
+ initEClass(bodyElementEClass, BodyElement.class, "BodyElement", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getBodyElement_Body(), this.getBody(), this.getBody_Elements(), "body", null, 0, 1,
+ BodyElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getBodyElement_Html(), ecorePackage.getEString(), "html", null, 0, 1, BodyElement.class,
+ !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEReference(getBodyElement_Callout(), this.getCallout(), this.getCallout_Elements(), "callout", null, 0, 1,
+ BodyElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(textEClass, Text.class, "Text", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getText_Value(), ecorePackage.getEString(), "value", null, 1, 1, Text.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(linkEClass, Link.class, "Link", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getLink_Target(), this.getLinkTarget(), null, "target", null, 0, 1, Link.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+ IS_ORDERED);
+
+ initEClass(embeddingEClass, Embedding.class, "Embedding", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getEmbedding_Element(), this.getEmbeddableElement(), null, "element", null, 1, 1, Embedding.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+
+ initEClass(sourceCodeEClass, SourceCode.class, "SourceCode", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ // Initialize data types
+ initEDataType(rootDocEDataType, RootDoc.class, "RootDoc", !IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(fileEDataType, File.class, "File", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(docEDataType, Doc.class, "Doc", !IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} // ArticlePackageImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/BodyElementImpl.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/BodyElementImpl.java
new file mode 100644
index 0000000000..3dcbcb8b01
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/BodyElementImpl.java
@@ -0,0 +1,351 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article.impl;
+
+import org.eclipse.emf.cdo.releng.doc.article.ArticlePackage;
+import org.eclipse.emf.cdo.releng.doc.article.Body;
+import org.eclipse.emf.cdo.releng.doc.article.BodyElement;
+import org.eclipse.emf.cdo.releng.doc.article.Callout;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import com.sun.javadoc.Tag;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Body Element</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.BodyElementImpl#getBody <em>Body</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.BodyElementImpl#getHtml <em>Html</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.BodyElementImpl#getCallout <em>Callout</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class BodyElementImpl extends EObjectImpl implements BodyElement
+{
+ /**
+ * The default value of the '{@link #getHtml() <em>Html</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @see #getHtml()
+ * @generated
+ * @ordered
+ */
+ protected static final String HTML_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getHtml() <em>Html</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getHtml()
+ * @generated
+ * @ordered
+ */
+ protected String html = HTML_EDEFAULT;
+
+ // TODO Is tag needed?
+ private Tag tag;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected BodyElementImpl()
+ {
+ super();
+ }
+
+ BodyElementImpl(Body body, Tag tag)
+ {
+ setBody(body);
+ this.tag = tag;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ArticlePackage.Literals.BODY_ELEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Body getBody()
+ {
+ if (eContainerFeatureID() != ArticlePackage.BODY_ELEMENT__BODY)
+ return null;
+ return (Body)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetBody(Body newBody, NotificationChain msgs)
+ {
+ msgs = eBasicSetContainer((InternalEObject)newBody, ArticlePackage.BODY_ELEMENT__BODY, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setBody(Body newBody)
+ {
+ if (newBody != eInternalContainer()
+ || (eContainerFeatureID() != ArticlePackage.BODY_ELEMENT__BODY && newBody != null))
+ {
+ if (EcoreUtil.isAncestor(this, newBody))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newBody != null)
+ msgs = ((InternalEObject)newBody).eInverseAdd(this, ArticlePackage.BODY__ELEMENTS, Body.class, msgs);
+ msgs = basicSetBody(newBody, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ArticlePackage.BODY_ELEMENT__BODY, newBody, newBody));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getHtml()
+ {
+ return html;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Callout getCallout()
+ {
+ if (eContainerFeatureID() != ArticlePackage.BODY_ELEMENT__CALLOUT)
+ return null;
+ return (Callout)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetCallout(Callout newCallout, NotificationChain msgs)
+ {
+ msgs = eBasicSetContainer((InternalEObject)newCallout, ArticlePackage.BODY_ELEMENT__CALLOUT, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setCallout(Callout newCallout)
+ {
+ if (newCallout != eInternalContainer()
+ || (eContainerFeatureID() != ArticlePackage.BODY_ELEMENT__CALLOUT && newCallout != null))
+ {
+ if (EcoreUtil.isAncestor(this, newCallout))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newCallout != null)
+ msgs = ((InternalEObject)newCallout).eInverseAdd(this, ArticlePackage.CALLOUT__ELEMENTS, Callout.class, msgs);
+ msgs = basicSetCallout(newCallout, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ArticlePackage.BODY_ELEMENT__CALLOUT, newCallout,
+ newCallout));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.BODY_ELEMENT__BODY:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetBody((Body)otherEnd, msgs);
+ case ArticlePackage.BODY_ELEMENT__CALLOUT:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetCallout((Callout)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.BODY_ELEMENT__BODY:
+ return basicSetBody(null, msgs);
+ case ArticlePackage.BODY_ELEMENT__CALLOUT:
+ return basicSetCallout(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs)
+ {
+ switch (eContainerFeatureID())
+ {
+ case ArticlePackage.BODY_ELEMENT__BODY:
+ return eInternalContainer().eInverseRemove(this, ArticlePackage.BODY__ELEMENTS, Body.class, msgs);
+ case ArticlePackage.BODY_ELEMENT__CALLOUT:
+ return eInternalContainer().eInverseRemove(this, ArticlePackage.CALLOUT__ELEMENTS, Callout.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.BODY_ELEMENT__BODY:
+ return getBody();
+ case ArticlePackage.BODY_ELEMENT__HTML:
+ return getHtml();
+ case ArticlePackage.BODY_ELEMENT__CALLOUT:
+ return getCallout();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.BODY_ELEMENT__BODY:
+ setBody((Body)newValue);
+ return;
+ case ArticlePackage.BODY_ELEMENT__CALLOUT:
+ setCallout((Callout)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.BODY_ELEMENT__BODY:
+ setBody((Body)null);
+ return;
+ case ArticlePackage.BODY_ELEMENT__CALLOUT:
+ setCallout((Callout)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.BODY_ELEMENT__BODY:
+ return getBody() != null;
+ case ArticlePackage.BODY_ELEMENT__HTML:
+ return HTML_EDEFAULT == null ? html != null : !HTML_EDEFAULT.equals(html);
+ case ArticlePackage.BODY_ELEMENT__CALLOUT:
+ return getCallout() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (html: ");
+ result.append(html);
+ result.append(')');
+ return result.toString();
+ }
+
+} // BodyElementImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/BodyImpl.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/BodyImpl.java
new file mode 100644
index 0000000000..cce51d097b
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/BodyImpl.java
@@ -0,0 +1,346 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article.impl;
+
+import org.eclipse.emf.cdo.releng.doc.article.ArticlePackage;
+import org.eclipse.emf.cdo.releng.doc.article.Body;
+import org.eclipse.emf.cdo.releng.doc.article.BodyElement;
+import org.eclipse.emf.cdo.releng.doc.article.Category;
+import org.eclipse.emf.cdo.releng.doc.article.StructuralElement;
+import org.eclipse.emf.cdo.releng.doc.article.util.ArticleUtil;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import com.sun.javadoc.Doc;
+import com.sun.javadoc.Tag;
+
+import java.util.Collection;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Body</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.BodyImpl#getElements <em>Elements</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.BodyImpl#getHtml <em>Html</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.BodyImpl#getCategory <em>Category</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class BodyImpl extends StructuralElementImpl implements Body
+{
+ /**
+ * The cached value of the '{@link #getElements() <em>Elements</em>}' containment reference list. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @see #getElements()
+ * @generated
+ * @ordered
+ */
+ protected EList<BodyElement> elements;
+
+ /**
+ * The default value of the '{@link #getHtml() <em>Html</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @see #getHtml()
+ * @generated
+ * @ordered
+ */
+ protected static final String HTML_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getHtml() <em>Html</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getHtml()
+ * @generated
+ * @ordered
+ */
+ protected String html = HTML_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected BodyImpl()
+ {
+ super();
+ }
+
+ BodyImpl(StructuralElement parent, String path, Doc doc)
+ {
+ super(parent, path, doc);
+
+ Tag[] tags = doc.inlineTags();
+ if (tags == null || tags.length == 0)
+ {
+ titleMissing();
+ return;
+ }
+
+ int bodyStart = 0;
+
+ Tag firstTag = tags[0];
+ if (firstTag.name().equals("Text"))
+ {
+ ++bodyStart;
+
+ String text = firstTag.text();
+ int blockPos = getBlockPosition(text);
+ if (blockPos != -1)
+ {
+ String rest = text.substring(blockPos);
+ addElement(firstTag, rest);
+
+ text = text.substring(0, blockPos);
+ }
+
+ text = text.replaceAll("\\s+", " ").trim();
+ setTitle(text);
+ }
+ else
+ {
+ titleMissing();
+ }
+
+ for (int i = bodyStart; i < tags.length; i++)
+ {
+ Tag tag = tags[i];
+ addElement(tag, tag.text());
+ }
+ }
+
+ private void addElement(Tag tag, String text)
+ {
+ getElements().add(new UnresolvedBodyElementImpl(this, tag, text));
+ }
+
+ private void titleMissing()
+ {
+ Doc doc = getDoc();
+ System.err.println("Warning: Title is missing in " + ArticleUtil.makeConsoleLink(doc));
+ setTitle(doc.name());
+ }
+
+ private int getBlockPosition(String text)
+ {
+ String[] blocks = { "p", "br", "hr", "ul", "ol", "div", "table" };
+ int result = Integer.MAX_VALUE;
+
+ for (String block : blocks)
+ {
+ int index = text.indexOf("<" + block);
+ if (index != -1 && index < result)
+ {
+ result = index;
+ }
+ }
+
+ return result == Integer.MAX_VALUE ? -1 : result;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ArticlePackage.Literals.BODY;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EList<BodyElement> getElements()
+ {
+ if (elements == null)
+ {
+ elements = new EObjectContainmentWithInverseEList<BodyElement>(BodyElement.class, this,
+ ArticlePackage.BODY__ELEMENTS, ArticlePackage.BODY_ELEMENT__BODY);
+ }
+ return elements;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getHtml()
+ {
+ return html;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ public Category getCategory()
+ {
+ StructuralElement parent = getParent();
+ if (parent instanceof Category)
+ {
+ return (Category)parent;
+ }
+
+ if (parent instanceof Body)
+ {
+ return ((Body)parent).getCategory();
+ }
+
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.BODY__ELEMENTS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getElements()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.BODY__ELEMENTS:
+ return ((InternalEList<?>)getElements()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.BODY__ELEMENTS:
+ return getElements();
+ case ArticlePackage.BODY__HTML:
+ return getHtml();
+ case ArticlePackage.BODY__CATEGORY:
+ return getCategory();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.BODY__ELEMENTS:
+ getElements().clear();
+ getElements().addAll((Collection<? extends BodyElement>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.BODY__ELEMENTS:
+ getElements().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.BODY__ELEMENTS:
+ return elements != null && !elements.isEmpty();
+ case ArticlePackage.BODY__HTML:
+ return HTML_EDEFAULT == null ? html != null : !HTML_EDEFAULT.equals(html);
+ case ArticlePackage.BODY__CATEGORY:
+ return getCategory() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (html: ");
+ result.append(html);
+ result.append(')');
+ return result.toString();
+ }
+
+ @Override
+ public Object getId()
+ {
+ return getDoc();
+ }
+
+} // BodyImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/CalloutImpl.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/CalloutImpl.java
new file mode 100644
index 0000000000..72213f1833
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/CalloutImpl.java
@@ -0,0 +1,268 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article.impl;
+
+import org.eclipse.emf.cdo.releng.doc.article.ArticlePackage;
+import org.eclipse.emf.cdo.releng.doc.article.BodyElement;
+import org.eclipse.emf.cdo.releng.doc.article.Callout;
+import org.eclipse.emf.cdo.releng.doc.article.Snippet;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import java.util.Collection;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Callout</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.CalloutImpl#getSnippet <em>Snippet</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.CalloutImpl#getElements <em>Elements</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CalloutImpl extends EObjectImpl implements Callout
+{
+ /**
+ * The cached value of the '{@link #getElements() <em>Elements</em>}' containment reference list. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @see #getElements()
+ * @generated
+ * @ordered
+ */
+ protected EList<BodyElement> elements;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected CalloutImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ArticlePackage.Literals.CALLOUT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Snippet getSnippet()
+ {
+ if (eContainerFeatureID() != ArticlePackage.CALLOUT__SNIPPET)
+ return null;
+ return (Snippet)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetSnippet(Snippet newSnippet, NotificationChain msgs)
+ {
+ msgs = eBasicSetContainer((InternalEObject)newSnippet, ArticlePackage.CALLOUT__SNIPPET, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setSnippet(Snippet newSnippet)
+ {
+ if (newSnippet != eInternalContainer()
+ || (eContainerFeatureID() != ArticlePackage.CALLOUT__SNIPPET && newSnippet != null))
+ {
+ if (EcoreUtil.isAncestor(this, newSnippet))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newSnippet != null)
+ msgs = ((InternalEObject)newSnippet).eInverseAdd(this, ArticlePackage.SNIPPET__CALLOUTS, Snippet.class, msgs);
+ msgs = basicSetSnippet(newSnippet, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ArticlePackage.CALLOUT__SNIPPET, newSnippet, newSnippet));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EList<BodyElement> getElements()
+ {
+ if (elements == null)
+ {
+ elements = new EObjectContainmentWithInverseEList<BodyElement>(BodyElement.class, this,
+ ArticlePackage.CALLOUT__ELEMENTS, ArticlePackage.BODY_ELEMENT__CALLOUT);
+ }
+ return elements;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.CALLOUT__SNIPPET:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetSnippet((Snippet)otherEnd, msgs);
+ case ArticlePackage.CALLOUT__ELEMENTS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getElements()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.CALLOUT__SNIPPET:
+ return basicSetSnippet(null, msgs);
+ case ArticlePackage.CALLOUT__ELEMENTS:
+ return ((InternalEList<?>)getElements()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs)
+ {
+ switch (eContainerFeatureID())
+ {
+ case ArticlePackage.CALLOUT__SNIPPET:
+ return eInternalContainer().eInverseRemove(this, ArticlePackage.SNIPPET__CALLOUTS, Snippet.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.CALLOUT__SNIPPET:
+ return getSnippet();
+ case ArticlePackage.CALLOUT__ELEMENTS:
+ return getElements();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.CALLOUT__SNIPPET:
+ setSnippet((Snippet)newValue);
+ return;
+ case ArticlePackage.CALLOUT__ELEMENTS:
+ getElements().clear();
+ getElements().addAll((Collection<? extends BodyElement>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.CALLOUT__SNIPPET:
+ setSnippet((Snippet)null);
+ return;
+ case ArticlePackage.CALLOUT__ELEMENTS:
+ getElements().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.CALLOUT__SNIPPET:
+ return getSnippet() != null;
+ case ArticlePackage.CALLOUT__ELEMENTS:
+ return elements != null && !elements.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // CalloutImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/CategoryImpl.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/CategoryImpl.java
new file mode 100644
index 0000000000..d0755ebe98
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/CategoryImpl.java
@@ -0,0 +1,62 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article.impl;
+
+import org.eclipse.emf.cdo.releng.doc.article.ArticlePackage;
+import org.eclipse.emf.cdo.releng.doc.article.Category;
+import org.eclipse.emf.cdo.releng.doc.article.StructuralElement;
+import org.eclipse.emf.cdo.releng.doc.article.util.ArticleUtil;
+
+import org.eclipse.emf.ecore.EClass;
+
+import com.sun.javadoc.PackageDoc;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Category</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class CategoryImpl extends BodyImpl implements Category
+{
+ private PackageDoc packageDoc;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected CategoryImpl()
+ {
+ super();
+ }
+
+ CategoryImpl(StructuralElement parent, PackageDoc packageDoc)
+ {
+ super(parent, ArticleUtil.getSimplePackageName(packageDoc), packageDoc);
+ this.packageDoc = packageDoc;
+ getDocumentation().getContext().register(getId(), this);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ArticlePackage.Literals.CATEGORY;
+ }
+
+ @Override
+ public PackageDoc getDoc()
+ {
+ return (PackageDoc)super.getDoc();
+ }
+} // CategoryImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ChapterImpl.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ChapterImpl.java
new file mode 100644
index 0000000000..e51d2ee74d
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ChapterImpl.java
@@ -0,0 +1,114 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article.impl;
+
+import org.eclipse.emf.cdo.releng.doc.article.Article;
+import org.eclipse.emf.cdo.releng.doc.article.ArticlePackage;
+import org.eclipse.emf.cdo.releng.doc.article.Chapter;
+import org.eclipse.emf.cdo.releng.doc.article.StructuralElement;
+
+import org.eclipse.emf.ecore.EClass;
+
+import com.sun.javadoc.ClassDoc;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Chapter</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.ChapterImpl#getArticle <em>Article</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ChapterImpl extends BodyImpl implements Chapter
+{
+ private ClassDoc classDoc;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ChapterImpl()
+ {
+ super();
+ }
+
+ ChapterImpl(StructuralElement parent, ClassDoc classDoc)
+ {
+ super(parent, classDoc.containingClass() == null ? classDoc.simpleTypeName() + ".html" : "#"
+ + classDoc.simpleTypeName(), classDoc);
+ this.classDoc = classDoc;
+ getDocumentation().getContext().register(getId(), this);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ArticlePackage.Literals.CHAPTER;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ public Article getArticle()
+ {
+ if (this instanceof Article)
+ {
+ return (Article)this;
+ }
+
+ return ((Chapter)getParent()).getArticle();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.CHAPTER__ARTICLE:
+ return getArticle();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.CHAPTER__ARTICLE:
+ return getArticle() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ @Override
+ public ClassDoc getDoc()
+ {
+ return (ClassDoc)super.getDoc();
+ }
+} // ChapterImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ContextImpl.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ContextImpl.java
new file mode 100644
index 0000000000..35e97497c2
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ContextImpl.java
@@ -0,0 +1,372 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article.impl;
+
+import org.eclipse.emf.cdo.releng.doc.article.ArticlePackage;
+import org.eclipse.emf.cdo.releng.doc.article.Context;
+import org.eclipse.emf.cdo.releng.doc.article.Documentation;
+import org.eclipse.emf.cdo.releng.doc.article.StructuralElement;
+import org.eclipse.emf.cdo.releng.doc.article.util.ArticleException;
+import org.eclipse.emf.cdo.releng.doc.article.util.ArticleUtil;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import com.sun.javadoc.RootDoc;
+
+import java.io.File;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Context</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.ContextImpl#getBaseFolder <em>Base Folder</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.ContextImpl#getProject <em>Project</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.ContextImpl#getDocumentations <em>Documentations</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.ContextImpl#getRoot <em>Root</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ContextImpl extends EObjectImpl implements Context
+{
+ /**
+ * The default value of the '{@link #getBaseFolder() <em>Base Folder</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see #getBaseFolder()
+ * @generated
+ * @ordered
+ */
+ protected static final File BASE_FOLDER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getBaseFolder() <em>Base Folder</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see #getBaseFolder()
+ * @generated
+ * @ordered
+ */
+ protected File baseFolder = BASE_FOLDER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getProject() <em>Project</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see #getProject()
+ * @generated
+ * @ordered
+ */
+ protected static final String PROJECT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getProject() <em>Project</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see #getProject()
+ * @generated
+ * @ordered
+ */
+ protected String project = PROJECT_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getDocumentations() <em>Documentations</em>}' containment reference list. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getDocumentations()
+ * @generated
+ * @ordered
+ */
+ protected EList<Documentation> documentations;
+
+ /**
+ * The default value of the '{@link #getRoot() <em>Root</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @see #getRoot()
+ * @generated
+ * @ordered
+ */
+ protected static final RootDoc ROOT_EDEFAULT = null;
+
+ protected RootDoc root = ROOT_EDEFAULT;
+
+ protected final Map<Object, Object> registry = new HashMap<Object, Object>();
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ContextImpl()
+ {
+ super();
+ }
+
+ ContextImpl(RootDoc root, File baseFolder, String project)
+ {
+ this.root = root;
+ this.baseFolder = ArticleUtil.canonify(baseFolder);
+ this.project = project;
+
+ new DocumentationImpl(this, project);
+
+ for (Documentation documentation : getDocumentations())
+ {
+ dump(documentation, "");
+ }
+ }
+
+ private void dump(StructuralElement element, String prefix)
+ {
+ System.out.println(prefix + element.getTitle() + " --> " + ArticleUtil.makeConsoleLink(element.getDoc()));
+
+ for (StructuralElement child : element.getChildren())
+ {
+ dump(child, prefix + " ");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ArticlePackage.Literals.CONTEXT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public File getBaseFolder()
+ {
+ return baseFolder;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getProject()
+ {
+ return project;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EList<Documentation> getDocumentations()
+ {
+ if (documentations == null)
+ {
+ documentations = new EObjectContainmentWithInverseEList<Documentation>(Documentation.class, this,
+ ArticlePackage.CONTEXT__DOCUMENTATIONS, ArticlePackage.DOCUMENTATION__CONTEXT);
+ }
+ return documentations;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ public RootDoc getRoot()
+ {
+ return root;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.CONTEXT__DOCUMENTATIONS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getDocumentations()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.CONTEXT__DOCUMENTATIONS:
+ return ((InternalEList<?>)getDocumentations()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.CONTEXT__BASE_FOLDER:
+ return getBaseFolder();
+ case ArticlePackage.CONTEXT__PROJECT:
+ return getProject();
+ case ArticlePackage.CONTEXT__DOCUMENTATIONS:
+ return getDocumentations();
+ case ArticlePackage.CONTEXT__ROOT:
+ return getRoot();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.CONTEXT__DOCUMENTATIONS:
+ getDocumentations().clear();
+ getDocumentations().addAll((Collection<? extends Documentation>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.CONTEXT__DOCUMENTATIONS:
+ getDocumentations().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.CONTEXT__BASE_FOLDER:
+ return BASE_FOLDER_EDEFAULT == null ? baseFolder != null : !BASE_FOLDER_EDEFAULT.equals(baseFolder);
+ case ArticlePackage.CONTEXT__PROJECT:
+ return PROJECT_EDEFAULT == null ? project != null : !PROJECT_EDEFAULT.equals(project);
+ case ArticlePackage.CONTEXT__DOCUMENTATIONS:
+ return documentations != null && !documentations.isEmpty();
+ case ArticlePackage.CONTEXT__ROOT:
+ return ROOT_EDEFAULT == null ? getRoot() != null : !ROOT_EDEFAULT.equals(getRoot());
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (baseFolder: ");
+ result.append(baseFolder);
+ result.append(", project: ");
+ result.append(project);
+ result.append(')');
+ return result.toString();
+ }
+
+ public Documentation getDocumentation()
+ {
+ return getDocumentation(getProject());
+ }
+
+ public Documentation getDocumentation(String id)
+ {
+ for (Documentation documentation : getDocumentations())
+ {
+ if (documentation.getId().equals(id))
+ {
+ return documentation;
+ }
+ }
+
+ return null;
+ }
+
+ public boolean isRegistered(Object id)
+ {
+ return registry.containsKey(id);
+ }
+
+ public void register(Object id, Object value)
+ {
+ if (registry.put(id, value) != null)
+ {
+ throw new ArticleException("Duplicate registration: " + id);
+ }
+ }
+
+ public Object lookup(Object id)
+ {
+ return registry.get(id);
+ }
+
+} // ContextImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/DelegatingTag.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/DelegatingTag.java
index 18baa354b3..2beae50409 100644
--- a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/DelegatingTag.java
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/DelegatingTag.java
@@ -8,7 +8,7 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.doc.article.util;
+package org.eclipse.emf.cdo.releng.doc.article.impl;
import com.sun.javadoc.Doc;
import com.sun.javadoc.SourcePosition;
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/DiagramImpl.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/DiagramImpl.java
new file mode 100644
index 0000000000..e4883b0865
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/DiagramImpl.java
@@ -0,0 +1,176 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article.impl;
+
+import org.eclipse.emf.cdo.releng.doc.article.ArticlePackage;
+import org.eclipse.emf.cdo.releng.doc.article.Diagram;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Diagram</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.DiagramImpl#getCode <em>Code</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DiagramImpl extends BodyElementImpl implements Diagram
+{
+ /**
+ * The default value of the '{@link #getCode() <em>Code</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @see #getCode()
+ * @generated
+ * @ordered
+ */
+ protected static final String CODE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCode() <em>Code</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getCode()
+ * @generated
+ * @ordered
+ */
+ protected String code = CODE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected DiagramImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ArticlePackage.Literals.DIAGRAM;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getCode()
+ {
+ return code;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setCode(String newCode)
+ {
+ String oldCode = code;
+ code = newCode;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ArticlePackage.DIAGRAM__CODE, oldCode, code));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.DIAGRAM__CODE:
+ return getCode();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.DIAGRAM__CODE:
+ setCode((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.DIAGRAM__CODE:
+ setCode(CODE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.DIAGRAM__CODE:
+ return CODE_EDEFAULT == null ? code != null : !CODE_EDEFAULT.equals(code);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (code: ");
+ result.append(code);
+ result.append(')');
+ return result.toString();
+ }
+
+} // DiagramImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/DocumentationImpl.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/DocumentationImpl.java
new file mode 100644
index 0000000000..1e1d997743
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/DocumentationImpl.java
@@ -0,0 +1,529 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article.impl;
+
+import org.eclipse.emf.cdo.releng.doc.AssembleScripts;
+import org.eclipse.emf.cdo.releng.doc.article.ArticlePackage;
+import org.eclipse.emf.cdo.releng.doc.article.Category;
+import org.eclipse.emf.cdo.releng.doc.article.Chapter;
+import org.eclipse.emf.cdo.releng.doc.article.Context;
+import org.eclipse.emf.cdo.releng.doc.article.Documentation;
+import org.eclipse.emf.cdo.releng.doc.article.EmbeddableElement;
+import org.eclipse.emf.cdo.releng.doc.article.StructuralElement;
+import org.eclipse.emf.cdo.releng.doc.article.util.ArticleUtil;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EObjectEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import com.sun.javadoc.ClassDoc;
+import com.sun.javadoc.MethodDoc;
+import com.sun.javadoc.PackageDoc;
+import com.sun.javadoc.RootDoc;
+
+import java.io.File;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Documentation</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.DocumentationImpl#getContext <em>Context</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.DocumentationImpl#getEmbeddableElements <em>Embeddable
+ * Elements</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.DocumentationImpl#getDependencies <em>Dependencies</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.DocumentationImpl#getProject <em>Project</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DocumentationImpl extends StructuralElementImpl implements Documentation
+{
+ /**
+ * The cached value of the '{@link #getEmbeddableElements() <em>Embeddable Elements</em>}' containment reference list.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getEmbeddableElements()
+ * @generated
+ * @ordered
+ */
+ protected EList<EmbeddableElement> embeddableElements;
+
+ /**
+ * The cached value of the '{@link #getDependencies() <em>Dependencies</em>}' reference list. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getDependencies()
+ * @generated
+ * @ordered
+ */
+ protected EList<Documentation> dependencies;
+
+ /**
+ * The default value of the '{@link #getProject() <em>Project</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see #getProject()
+ * @generated
+ * @ordered
+ */
+ protected static final String PROJECT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getProject() <em>Project</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see #getProject()
+ * @generated
+ * @ordered
+ */
+ protected String project = PROJECT_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected DocumentationImpl()
+ {
+ super();
+ }
+
+ DocumentationImpl(Context context, String project)
+ {
+ super(null, "plugins/" + project + "/html", context.getRoot());
+ setContext(context);
+ this.project = project;
+ context.register(getId(), this);
+
+ File projectFolder = getOutputFile().getParentFile();
+ setTitle(AssembleScripts.getPluginName(projectFolder));
+
+ List<String> dependencies = AssembleScripts.getDependencies(projectFolder);
+ for (String dependency : dependencies)
+ {
+ if (context.getDocumentation(dependency) == null)
+ {
+ new DocumentationImpl(context, dependency);
+ }
+ }
+
+ for (ClassDoc classDoc : context.getRoot().classes())
+ {
+ if (classDoc.containingClass() == null)
+ {
+ File file = classDoc.position().file();
+ if (ArticleUtil.containsFile(projectFolder, file))
+ {
+ PackageDoc packageDoc = classDoc.containingPackage();
+ StructuralElement parent = analyzePackage(packageDoc);
+ analyzeClass(parent, classDoc);
+ }
+ }
+ }
+ }
+
+ private StructuralElement analyzePackage(PackageDoc packageDoc)
+ {
+ if (packageDoc != null)
+ {
+ Object value = getContext().lookup(packageDoc);
+ if (value instanceof Category)
+ {
+ return (Category)value;
+ }
+
+ PackageDoc parentDoc = ArticleUtil.getParentPackage(getContext().getRoot(), packageDoc);
+ if (ArticleUtil.isDocumented(packageDoc))
+ {
+ StructuralElement parent = analyzePackage(parentDoc);
+ new CategoryImpl(parent, packageDoc);
+ }
+ else
+ {
+ warnIfSubPackagesUndocumented(packageDoc, parentDoc);
+ }
+ }
+
+ return this;
+ }
+
+ private void warnIfSubPackagesUndocumented(PackageDoc packageDoc, PackageDoc parentDoc)
+ {
+ while (parentDoc != null)
+ {
+ if (ArticleUtil.isDocumented(parentDoc))
+ {
+ System.err.println("Warning: Undocumented category " + packageDoc.name());
+ break;
+ }
+
+ parentDoc = ArticleUtil.getParentPackage(getContext().getRoot(), parentDoc);
+ }
+ }
+
+ private void analyzeClass(StructuralElement parent, ClassDoc classDoc)
+ {
+ // TODO Non-public classes?
+ if (ArticleUtil.isIgnore(classDoc))
+ {
+ return;
+ }
+
+ if (ArticleUtil.isSnippet(classDoc))
+ {
+ new SnippetImpl(this, classDoc);
+ }
+ else
+ {
+ Chapter chapter = createChapter(parent, classDoc);
+ for (ClassDoc child : classDoc.innerClasses())
+ {
+ analyzeClass(chapter, child);
+ }
+ }
+
+ for (MethodDoc methodDoc : classDoc.methods())
+ {
+ analyzeMethod(methodDoc);
+ }
+ }
+
+ private Chapter createChapter(StructuralElement parent, ClassDoc classDoc)
+ {
+ if (parent instanceof Chapter)
+ {
+ return new ChapterImpl(parent, classDoc);
+ }
+
+ return new ArticleImpl(parent, classDoc);
+ }
+
+ private void analyzeMethod(MethodDoc methodDoc)
+ {
+ if (ArticleUtil.isIgnore(methodDoc))
+ {
+ return;
+ }
+
+ if (ArticleUtil.isSnippet(methodDoc))
+ {
+ new SnippetImpl(this, methodDoc);
+ }
+
+ if (ArticleUtil.isFactory(methodDoc))
+ {
+ new FactoryImpl(this, methodDoc);
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ArticlePackage.Literals.DOCUMENTATION;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Context getContext()
+ {
+ if (eContainerFeatureID() != ArticlePackage.DOCUMENTATION__CONTEXT)
+ {
+ return null;
+ }
+ return (Context)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetContext(Context newContext, NotificationChain msgs)
+ {
+ msgs = eBasicSetContainer((InternalEObject)newContext, ArticlePackage.DOCUMENTATION__CONTEXT, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setContext(Context newContext)
+ {
+ if (newContext != eInternalContainer() || eContainerFeatureID() != ArticlePackage.DOCUMENTATION__CONTEXT
+ && newContext != null)
+ {
+ if (EcoreUtil.isAncestor(this, newContext))
+ {
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ }
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ if (newContext != null)
+ {
+ msgs = ((InternalEObject)newContext).eInverseAdd(this, ArticlePackage.CONTEXT__DOCUMENTATIONS, Context.class,
+ msgs);
+ }
+ msgs = basicSetContext(newContext, msgs);
+ if (msgs != null)
+ {
+ msgs.dispatch();
+ }
+ }
+ else if (eNotificationRequired())
+ {
+ eNotify(new ENotificationImpl(this, Notification.SET, ArticlePackage.DOCUMENTATION__CONTEXT, newContext,
+ newContext));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EList<EmbeddableElement> getEmbeddableElements()
+ {
+ if (embeddableElements == null)
+ {
+ embeddableElements = new EObjectContainmentWithInverseEList<EmbeddableElement>(EmbeddableElement.class, this,
+ ArticlePackage.DOCUMENTATION__EMBEDDABLE_ELEMENTS, ArticlePackage.EMBEDDABLE_ELEMENT__DOCUMENTATION);
+ }
+ return embeddableElements;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EList<Documentation> getDependencies()
+ {
+ if (dependencies == null)
+ {
+ dependencies = new EObjectEList<Documentation>(Documentation.class, this,
+ ArticlePackage.DOCUMENTATION__DEPENDENCIES);
+ }
+ return dependencies;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getProject()
+ {
+ return project;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.DOCUMENTATION__CONTEXT:
+ if (eInternalContainer() != null)
+ {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ return basicSetContext((Context)otherEnd, msgs);
+ case ArticlePackage.DOCUMENTATION__EMBEDDABLE_ELEMENTS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getEmbeddableElements()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.DOCUMENTATION__CONTEXT:
+ return basicSetContext(null, msgs);
+ case ArticlePackage.DOCUMENTATION__EMBEDDABLE_ELEMENTS:
+ return ((InternalEList<?>)getEmbeddableElements()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs)
+ {
+ switch (eContainerFeatureID())
+ {
+ case ArticlePackage.DOCUMENTATION__CONTEXT:
+ return eInternalContainer().eInverseRemove(this, ArticlePackage.CONTEXT__DOCUMENTATIONS, Context.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.DOCUMENTATION__CONTEXT:
+ return getContext();
+ case ArticlePackage.DOCUMENTATION__EMBEDDABLE_ELEMENTS:
+ return getEmbeddableElements();
+ case ArticlePackage.DOCUMENTATION__DEPENDENCIES:
+ return getDependencies();
+ case ArticlePackage.DOCUMENTATION__PROJECT:
+ return getProject();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.DOCUMENTATION__CONTEXT:
+ setContext((Context)newValue);
+ return;
+ case ArticlePackage.DOCUMENTATION__EMBEDDABLE_ELEMENTS:
+ getEmbeddableElements().clear();
+ getEmbeddableElements().addAll((Collection<? extends EmbeddableElement>)newValue);
+ return;
+ case ArticlePackage.DOCUMENTATION__DEPENDENCIES:
+ getDependencies().clear();
+ getDependencies().addAll((Collection<? extends Documentation>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.DOCUMENTATION__CONTEXT:
+ setContext((Context)null);
+ return;
+ case ArticlePackage.DOCUMENTATION__EMBEDDABLE_ELEMENTS:
+ getEmbeddableElements().clear();
+ return;
+ case ArticlePackage.DOCUMENTATION__DEPENDENCIES:
+ getDependencies().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.DOCUMENTATION__CONTEXT:
+ return getContext() != null;
+ case ArticlePackage.DOCUMENTATION__EMBEDDABLE_ELEMENTS:
+ return embeddableElements != null && !embeddableElements.isEmpty();
+ case ArticlePackage.DOCUMENTATION__DEPENDENCIES:
+ return dependencies != null && !dependencies.isEmpty();
+ case ArticlePackage.DOCUMENTATION__PROJECT:
+ return PROJECT_EDEFAULT == null ? project != null : !PROJECT_EDEFAULT.equals(project);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (project: ");
+ result.append(project);
+ result.append(')');
+ return result.toString();
+ }
+
+ @Override
+ public RootDoc getDoc()
+ {
+ return (RootDoc)super.getDoc();
+ }
+
+ @Override
+ public Object getId()
+ {
+ return project;
+ }
+
+} // DocumentationImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/EmbeddableElementImpl.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/EmbeddableElementImpl.java
new file mode 100644
index 0000000000..22f0feab87
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/EmbeddableElementImpl.java
@@ -0,0 +1,253 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article.impl;
+
+import org.eclipse.emf.cdo.releng.doc.article.ArticlePackage;
+import org.eclipse.emf.cdo.releng.doc.article.Documentation;
+import org.eclipse.emf.cdo.releng.doc.article.EmbeddableElement;
+import org.eclipse.emf.cdo.releng.doc.article.Embedding;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Embeddable Element</b></em>'. <!-- end-user-doc
+ * -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.EmbeddableElementImpl#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.EmbeddableElementImpl#getDocumentation <em>Documentation</em>}
+ * </li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class EmbeddableElementImpl extends EObjectImpl implements EmbeddableElement
+{
+ /**
+ * The default value of the '{@link #getId() <em>Id</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected static final Object ID_EDEFAULT = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected EmbeddableElementImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ArticlePackage.Literals.EMBEDDABLE_ELEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ public abstract Object getId();
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Documentation getDocumentation()
+ {
+ if (eContainerFeatureID() != ArticlePackage.EMBEDDABLE_ELEMENT__DOCUMENTATION)
+ return null;
+ return (Documentation)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetDocumentation(Documentation newDocumentation, NotificationChain msgs)
+ {
+ msgs = eBasicSetContainer((InternalEObject)newDocumentation, ArticlePackage.EMBEDDABLE_ELEMENT__DOCUMENTATION, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setDocumentation(Documentation newDocumentation)
+ {
+ if (newDocumentation != eInternalContainer()
+ || (eContainerFeatureID() != ArticlePackage.EMBEDDABLE_ELEMENT__DOCUMENTATION && newDocumentation != null))
+ {
+ if (EcoreUtil.isAncestor(this, newDocumentation))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newDocumentation != null)
+ msgs = ((InternalEObject)newDocumentation).eInverseAdd(this, ArticlePackage.DOCUMENTATION__EMBEDDABLE_ELEMENTS,
+ Documentation.class, msgs);
+ msgs = basicSetDocumentation(newDocumentation, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ArticlePackage.EMBEDDABLE_ELEMENT__DOCUMENTATION,
+ newDocumentation, newDocumentation));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ public abstract String getHtml(Embedding embedder);
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.EMBEDDABLE_ELEMENT__DOCUMENTATION:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetDocumentation((Documentation)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.EMBEDDABLE_ELEMENT__DOCUMENTATION:
+ return basicSetDocumentation(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs)
+ {
+ switch (eContainerFeatureID())
+ {
+ case ArticlePackage.EMBEDDABLE_ELEMENT__DOCUMENTATION:
+ return eInternalContainer().eInverseRemove(this, ArticlePackage.DOCUMENTATION__EMBEDDABLE_ELEMENTS,
+ Documentation.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.EMBEDDABLE_ELEMENT__ID:
+ return getId();
+ case ArticlePackage.EMBEDDABLE_ELEMENT__DOCUMENTATION:
+ return getDocumentation();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.EMBEDDABLE_ELEMENT__DOCUMENTATION:
+ setDocumentation((Documentation)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.EMBEDDABLE_ELEMENT__DOCUMENTATION:
+ setDocumentation((Documentation)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.EMBEDDABLE_ELEMENT__ID:
+ return ID_EDEFAULT == null ? getId() != null : !ID_EDEFAULT.equals(getId());
+ case ArticlePackage.EMBEDDABLE_ELEMENT__DOCUMENTATION:
+ return getDocumentation() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // EmbeddableElementImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/EmbeddingImpl.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/EmbeddingImpl.java
new file mode 100644
index 0000000000..a6f36ed554
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/EmbeddingImpl.java
@@ -0,0 +1,150 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article.impl;
+
+import org.eclipse.emf.cdo.releng.doc.article.ArticlePackage;
+import org.eclipse.emf.cdo.releng.doc.article.EmbeddableElement;
+import org.eclipse.emf.cdo.releng.doc.article.Embedding;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Embedding</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.EmbeddingImpl#getElement <em>Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EmbeddingImpl extends BodyElementImpl implements Embedding
+{
+ /**
+ * The cached value of the '{@link #getElement() <em>Element</em>}' reference. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see #getElement()
+ * @generated
+ * @ordered
+ */
+ protected EmbeddableElement element;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected EmbeddingImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ArticlePackage.Literals.EMBEDDING;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EmbeddableElement getElement()
+ {
+ return element;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setElement(EmbeddableElement newElement)
+ {
+ EmbeddableElement oldElement = element;
+ element = newElement;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ArticlePackage.EMBEDDING__ELEMENT, oldElement, element));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.EMBEDDING__ELEMENT:
+ return getElement();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.EMBEDDING__ELEMENT:
+ setElement((EmbeddableElement)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.EMBEDDING__ELEMENT:
+ setElement((EmbeddableElement)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.EMBEDDING__ELEMENT:
+ return element != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // EmbeddingImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ExternalTargetImpl.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ExternalTargetImpl.java
new file mode 100644
index 0000000000..ea9e6d340e
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/ExternalTargetImpl.java
@@ -0,0 +1,67 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article.impl;
+
+import org.eclipse.emf.cdo.releng.doc.article.ArticlePackage;
+import org.eclipse.emf.cdo.releng.doc.article.ExternalTarget;
+import org.eclipse.emf.cdo.releng.doc.article.StructuralElement;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>External Target</b></em>'. <!-- end-user-doc
+ * -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class ExternalTargetImpl extends LinkTargetImpl implements ExternalTarget
+{
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ExternalTargetImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ArticlePackage.Literals.EXTERNAL_TARGET;
+ }
+
+ @Override
+ public String linkFrom(StructuralElement source)
+ {
+ // TODO: implement ExternalTargetImpl.linkFrom(source)
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Object getId()
+ {
+ // TODO: implement ExternalTargetImpl.getId()
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public String getLabel()
+ {
+ // TODO: implement ExternalTargetImpl.getLabel()
+ throw new UnsupportedOperationException();
+ }
+
+} // ExternalTargetImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/FactoryImpl.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/FactoryImpl.java
new file mode 100644
index 0000000000..83437c82fc
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/FactoryImpl.java
@@ -0,0 +1,69 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article.impl;
+
+import org.eclipse.emf.cdo.releng.doc.article.ArticlePackage;
+import org.eclipse.emf.cdo.releng.doc.article.Documentation;
+import org.eclipse.emf.cdo.releng.doc.article.Embedding;
+import org.eclipse.emf.cdo.releng.doc.article.Factory;
+
+import org.eclipse.emf.ecore.EClass;
+
+import com.sun.javadoc.MethodDoc;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Factory</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class FactoryImpl extends EmbeddableElementImpl implements Factory
+{
+ private MethodDoc methodDoc;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected FactoryImpl()
+ {
+ super();
+ }
+
+ FactoryImpl(Documentation documentation, MethodDoc methodDoc)
+ {
+ setDocumentation(documentation);
+ this.methodDoc = methodDoc;
+ documentation.getContext().register(getId(), this);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ArticlePackage.Literals.FACTORY;
+ }
+
+ @Override
+ public String getHtml(Embedding embedder)
+ {
+ // TODO: implement FactoryImpl.getHtml(embedder)
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Object getId()
+ {
+ return methodDoc;
+ }
+} // FactoryImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/JavaElementImpl.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/JavaElementImpl.java
new file mode 100644
index 0000000000..30d0cdb270
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/JavaElementImpl.java
@@ -0,0 +1,66 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article.impl;
+
+import org.eclipse.emf.cdo.releng.doc.article.ArticlePackage;
+import org.eclipse.emf.cdo.releng.doc.article.JavaElement;
+import org.eclipse.emf.cdo.releng.doc.article.StructuralElement;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Java Element</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class JavaElementImpl extends LinkTargetImpl implements JavaElement
+{
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected JavaElementImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ArticlePackage.Literals.JAVA_ELEMENT;
+ }
+
+ @Override
+ public String linkFrom(StructuralElement source)
+ {
+ // TODO: implement JavaElementImpl.linkFrom(source)
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Object getId()
+ {
+ // TODO: implement JavaElementImpl.getId()
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public String getLabel()
+ {
+ // TODO: implement JavaElementImpl.getLabel()
+ throw new UnsupportedOperationException();
+ }
+
+} // JavaElementImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/LinkImpl.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/LinkImpl.java
new file mode 100644
index 0000000000..805997593f
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/LinkImpl.java
@@ -0,0 +1,150 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article.impl;
+
+import org.eclipse.emf.cdo.releng.doc.article.ArticlePackage;
+import org.eclipse.emf.cdo.releng.doc.article.Link;
+import org.eclipse.emf.cdo.releng.doc.article.LinkTarget;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Link</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.LinkImpl#getTarget <em>Target</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LinkImpl extends BodyElementImpl implements Link
+{
+ /**
+ * The cached value of the '{@link #getTarget() <em>Target</em>}' reference. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @see #getTarget()
+ * @generated
+ * @ordered
+ */
+ protected LinkTarget target;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected LinkImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ArticlePackage.Literals.LINK;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public LinkTarget getTarget()
+ {
+ return target;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setTarget(LinkTarget newTarget)
+ {
+ LinkTarget oldTarget = target;
+ target = newTarget;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ArticlePackage.LINK__TARGET, oldTarget, target));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.LINK__TARGET:
+ return getTarget();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.LINK__TARGET:
+ setTarget((LinkTarget)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.LINK__TARGET:
+ setTarget((LinkTarget)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.LINK__TARGET:
+ return target != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // LinkImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/LinkTargetImpl.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/LinkTargetImpl.java
new file mode 100644
index 0000000000..af647594ba
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/LinkTargetImpl.java
@@ -0,0 +1,127 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article.impl;
+
+import org.eclipse.emf.cdo.releng.doc.article.ArticlePackage;
+import org.eclipse.emf.cdo.releng.doc.article.LinkTarget;
+import org.eclipse.emf.cdo.releng.doc.article.StructuralElement;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Link Target</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.LinkTargetImpl#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.LinkTargetImpl#getLabel <em>Label</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class LinkTargetImpl extends EObjectImpl implements LinkTarget
+{
+ /**
+ * The default value of the '{@link #getId() <em>Id</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected static final Object ID_EDEFAULT = null;
+
+ /**
+ * The default value of the '{@link #getLabel() <em>Label</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @see #getLabel()
+ * @generated
+ * @ordered
+ */
+ protected static final String LABEL_EDEFAULT = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected LinkTargetImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ArticlePackage.Literals.LINK_TARGET;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ public abstract Object getId();
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ public abstract String getLabel();
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ public abstract String linkFrom(StructuralElement source);
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.LINK_TARGET__ID:
+ return getId();
+ case ArticlePackage.LINK_TARGET__LABEL:
+ return getLabel();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.LINK_TARGET__ID:
+ return ID_EDEFAULT == null ? getId() != null : !ID_EDEFAULT.equals(getId());
+ case ArticlePackage.LINK_TARGET__LABEL:
+ return LABEL_EDEFAULT == null ? getLabel() != null : !LABEL_EDEFAULT.equals(getLabel());
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // LinkTargetImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/SnippetImpl.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/SnippetImpl.java
new file mode 100644
index 0000000000..5c8f7cb5cf
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/SnippetImpl.java
@@ -0,0 +1,207 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article.impl;
+
+import org.eclipse.emf.cdo.releng.doc.article.ArticlePackage;
+import org.eclipse.emf.cdo.releng.doc.article.Callout;
+import org.eclipse.emf.cdo.releng.doc.article.Documentation;
+import org.eclipse.emf.cdo.releng.doc.article.Embedding;
+import org.eclipse.emf.cdo.releng.doc.article.Snippet;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import com.sun.javadoc.Doc;
+
+import java.util.Collection;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Snippet</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.SnippetImpl#getCallouts <em>Callouts</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SnippetImpl extends EmbeddableElementImpl implements Snippet
+{
+ /**
+ * The cached value of the '{@link #getCallouts() <em>Callouts</em>}' containment reference list. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @see #getCallouts()
+ * @generated
+ * @ordered
+ */
+ protected EList<Callout> callouts;
+
+ private Doc doc;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected SnippetImpl()
+ {
+ super();
+ }
+
+ SnippetImpl(Documentation documentation, Doc doc)
+ {
+ setDocumentation(documentation);
+ this.doc = doc;
+ documentation.getContext().register(getId(), this);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ArticlePackage.Literals.SNIPPET;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EList<Callout> getCallouts()
+ {
+ if (callouts == null)
+ {
+ callouts = new EObjectContainmentWithInverseEList<Callout>(Callout.class, this, ArticlePackage.SNIPPET__CALLOUTS,
+ ArticlePackage.CALLOUT__SNIPPET);
+ }
+ return callouts;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.SNIPPET__CALLOUTS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getCallouts()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.SNIPPET__CALLOUTS:
+ return ((InternalEList<?>)getCallouts()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.SNIPPET__CALLOUTS:
+ return getCallouts();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.SNIPPET__CALLOUTS:
+ getCallouts().clear();
+ getCallouts().addAll((Collection<? extends Callout>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.SNIPPET__CALLOUTS:
+ getCallouts().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.SNIPPET__CALLOUTS:
+ return callouts != null && !callouts.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ @Override
+ public String getHtml(Embedding embedder)
+ {
+ // TODO: implement SnippetImpl.getHtml(embedder)
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Object getId()
+ {
+ return doc;
+ }
+} // SnippetImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/SourceCodeImpl.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/SourceCodeImpl.java
new file mode 100644
index 0000000000..667d6b8fa8
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/SourceCodeImpl.java
@@ -0,0 +1,44 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article.impl;
+
+import org.eclipse.emf.cdo.releng.doc.article.ArticlePackage;
+import org.eclipse.emf.cdo.releng.doc.article.SourceCode;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Source Code</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class SourceCodeImpl extends ExternalTargetImpl implements SourceCode
+{
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected SourceCodeImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ArticlePackage.Literals.SOURCE_CODE;
+ }
+
+} // SourceCodeImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/StructuralElementImpl.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/StructuralElementImpl.java
new file mode 100644
index 0000000000..3c2984e2d3
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/StructuralElementImpl.java
@@ -0,0 +1,596 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article.impl;
+
+import org.eclipse.emf.cdo.releng.doc.article.ArticlePackage;
+import org.eclipse.emf.cdo.releng.doc.article.Documentation;
+import org.eclipse.emf.cdo.releng.doc.article.StructuralElement;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import com.sun.javadoc.Doc;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Structural Element</b></em>'. <!-- end-user-doc
+ * -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.StructuralElementImpl#getChildren <em>Children</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.StructuralElementImpl#getParent <em>Parent</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.StructuralElementImpl#getTitle <em>Title</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.StructuralElementImpl#getPath <em>Path</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.StructuralElementImpl#getOutputFile <em>Output File</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.StructuralElementImpl#getDocumentation <em>Documentation</em>}
+ * </li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class StructuralElementImpl extends LinkTargetImpl implements StructuralElement
+{
+ /**
+ * The cached value of the '{@link #getChildren() <em>Children</em>}' containment reference list. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @see #getChildren()
+ * @generated
+ * @ordered
+ */
+ protected EList<StructuralElement> children;
+
+ /**
+ * The default value of the '{@link #getTitle() <em>Title</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @see #getTitle()
+ * @generated
+ * @ordered
+ */
+ protected static final String TITLE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTitle() <em>Title</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @see #getTitle()
+ * @generated
+ * @ordered
+ */
+ protected String title = TITLE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getPath() <em>Path</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @see #getPath()
+ * @generated
+ * @ordered
+ */
+ protected static final String PATH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPath() <em>Path</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getPath()
+ * @generated
+ * @ordered
+ */
+ protected String path = PATH_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getFullPath() <em>Full Path</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see #getFullPath()
+ * @generated
+ * @ordered
+ */
+ protected static final String FULL_PATH_EDEFAULT = null;
+
+ /**
+ * The default value of the '{@link #getOutputFile() <em>Output File</em>}' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see #getOutputFile()
+ * @generated
+ * @ordered
+ */
+ protected static final File OUTPUT_FILE_EDEFAULT = null;
+
+ /**
+ * The default value of the '{@link #getDoc() <em>Doc</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getDoc()
+ * @generated
+ * @ordered
+ */
+ protected static final Doc DOC_EDEFAULT = null;
+
+ private String fullPath;
+
+ private File outputFile;
+
+ private Doc doc;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected StructuralElementImpl()
+ {
+ super();
+ }
+
+ StructuralElementImpl(StructuralElement parent, String path, Doc doc)
+ {
+ setParent(parent);
+ this.path = path;
+ this.doc = doc;
+ }
+
+ final void setTitle(String title)
+ {
+ this.title = title;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ArticlePackage.Literals.STRUCTURAL_ELEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EList<StructuralElement> getChildren()
+ {
+ if (children == null)
+ {
+ children = new EObjectContainmentWithInverseEList<StructuralElement>(StructuralElement.class, this,
+ ArticlePackage.STRUCTURAL_ELEMENT__CHILDREN, ArticlePackage.STRUCTURAL_ELEMENT__PARENT);
+ }
+ return children;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public StructuralElement getParent()
+ {
+ if (eContainerFeatureID() != ArticlePackage.STRUCTURAL_ELEMENT__PARENT)
+ {
+ return null;
+ }
+ return (StructuralElement)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetParent(StructuralElement newParent, NotificationChain msgs)
+ {
+ msgs = eBasicSetContainer((InternalEObject)newParent, ArticlePackage.STRUCTURAL_ELEMENT__PARENT, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setParent(StructuralElement newParent)
+ {
+ if (newParent != eInternalContainer() || eContainerFeatureID() != ArticlePackage.STRUCTURAL_ELEMENT__PARENT
+ && newParent != null)
+ {
+ if (EcoreUtil.isAncestor(this, newParent))
+ {
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ }
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ if (newParent != null)
+ {
+ msgs = ((InternalEObject)newParent).eInverseAdd(this, ArticlePackage.STRUCTURAL_ELEMENT__CHILDREN,
+ StructuralElement.class, msgs);
+ }
+ msgs = basicSetParent(newParent, msgs);
+ if (msgs != null)
+ {
+ msgs.dispatch();
+ }
+ }
+ else if (eNotificationRequired())
+ {
+ eNotify(new ENotificationImpl(this, Notification.SET, ArticlePackage.STRUCTURAL_ELEMENT__PARENT, newParent,
+ newParent));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getTitle()
+ {
+ return title;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getPath()
+ {
+ return path;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ public String getFullPath()
+ {
+ if (fullPath == null)
+ {
+ StructuralElement parent = getParent();
+ if (parent != null)
+ {
+ fullPath = parent.getFullPath() + "/" + path;
+ }
+ else
+ {
+ fullPath = path;
+ }
+ }
+
+ return fullPath;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ public File getOutputFile()
+ {
+ if (outputFile == null)
+ {
+ outputFile = new File(getDocumentation().getContext().getBaseFolder(), getFullPath());
+ }
+
+ return outputFile;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ public Documentation getDocumentation()
+ {
+ if (this instanceof Documentation)
+ {
+ return (Documentation)this;
+ }
+
+ StructuralElement parent = getParent();
+ if (parent == null)
+ {
+ System.out.println();
+ }
+
+ return parent.getDocumentation();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ public Doc getDoc()
+ {
+ return doc;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ public void generate()
+ {
+ for (StructuralElement child : getChildren())
+ {
+ child.generate();
+ }
+ }
+
+ @Override
+ public String linkFrom(StructuralElement source)
+ {
+ List<String> sourceSegments = getSegments(source.getOutputFile());
+ List<String> targetSegments = getSegments(getOutputFile());
+
+ int minSize = Math.min(sourceSegments.size(), targetSegments.size());
+ for (int i = 0; i < minSize; i++)
+ {
+ if (sourceSegments.get(0).equals(targetSegments.get(0)))
+ {
+ sourceSegments.remove(0);
+ targetSegments.remove(0);
+ }
+ else
+ {
+ break;
+ }
+ }
+
+ StringBuilder builder = new StringBuilder();
+ for (int i = 0; i < sourceSegments.size(); i++)
+ {
+ builder.append("../");
+ }
+
+ boolean first = true;
+ for (String segment : targetSegments)
+ {
+ if (first)
+ {
+ first = false;
+ }
+ else
+ {
+ builder.append("/");
+ }
+
+ builder.append(segment);
+ }
+
+ return builder.toString();
+ }
+
+ private static List<String> getSegments(File file)
+ {
+ List<String> result = new ArrayList<String>();
+ getSegments(file, result);
+ return result;
+ }
+
+ private static void getSegments(File file, List<String> result)
+ {
+ File parent = file.getParentFile();
+ if (parent != null)
+ {
+ getSegments(parent, result);
+ }
+
+ result.add(file.getName());
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.STRUCTURAL_ELEMENT__CHILDREN:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getChildren()).basicAdd(otherEnd, msgs);
+ case ArticlePackage.STRUCTURAL_ELEMENT__PARENT:
+ if (eInternalContainer() != null)
+ {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ return basicSetParent((StructuralElement)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.STRUCTURAL_ELEMENT__CHILDREN:
+ return ((InternalEList<?>)getChildren()).basicRemove(otherEnd, msgs);
+ case ArticlePackage.STRUCTURAL_ELEMENT__PARENT:
+ return basicSetParent(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs)
+ {
+ switch (eContainerFeatureID())
+ {
+ case ArticlePackage.STRUCTURAL_ELEMENT__PARENT:
+ return eInternalContainer().eInverseRemove(this, ArticlePackage.STRUCTURAL_ELEMENT__CHILDREN,
+ StructuralElement.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.STRUCTURAL_ELEMENT__CHILDREN:
+ return getChildren();
+ case ArticlePackage.STRUCTURAL_ELEMENT__PARENT:
+ return getParent();
+ case ArticlePackage.STRUCTURAL_ELEMENT__TITLE:
+ return getTitle();
+ case ArticlePackage.STRUCTURAL_ELEMENT__PATH:
+ return getPath();
+ case ArticlePackage.STRUCTURAL_ELEMENT__FULL_PATH:
+ return getFullPath();
+ case ArticlePackage.STRUCTURAL_ELEMENT__OUTPUT_FILE:
+ return getOutputFile();
+ case ArticlePackage.STRUCTURAL_ELEMENT__DOCUMENTATION:
+ return getDocumentation();
+ case ArticlePackage.STRUCTURAL_ELEMENT__DOC:
+ return getDoc();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.STRUCTURAL_ELEMENT__CHILDREN:
+ getChildren().clear();
+ getChildren().addAll((Collection<? extends StructuralElement>)newValue);
+ return;
+ case ArticlePackage.STRUCTURAL_ELEMENT__PARENT:
+ setParent((StructuralElement)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.STRUCTURAL_ELEMENT__CHILDREN:
+ getChildren().clear();
+ return;
+ case ArticlePackage.STRUCTURAL_ELEMENT__PARENT:
+ setParent((StructuralElement)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.STRUCTURAL_ELEMENT__CHILDREN:
+ return children != null && !children.isEmpty();
+ case ArticlePackage.STRUCTURAL_ELEMENT__PARENT:
+ return getParent() != null;
+ case ArticlePackage.STRUCTURAL_ELEMENT__TITLE:
+ return TITLE_EDEFAULT == null ? title != null : !TITLE_EDEFAULT.equals(title);
+ case ArticlePackage.STRUCTURAL_ELEMENT__PATH:
+ return PATH_EDEFAULT == null ? path != null : !PATH_EDEFAULT.equals(path);
+ case ArticlePackage.STRUCTURAL_ELEMENT__FULL_PATH:
+ return FULL_PATH_EDEFAULT == null ? getFullPath() != null : !FULL_PATH_EDEFAULT.equals(getFullPath());
+ case ArticlePackage.STRUCTURAL_ELEMENT__OUTPUT_FILE:
+ return OUTPUT_FILE_EDEFAULT == null ? getOutputFile() != null : !OUTPUT_FILE_EDEFAULT.equals(getOutputFile());
+ case ArticlePackage.STRUCTURAL_ELEMENT__DOCUMENTATION:
+ return getDocumentation() != null;
+ case ArticlePackage.STRUCTURAL_ELEMENT__DOC:
+ return DOC_EDEFAULT == null ? getDoc() != null : !DOC_EDEFAULT.equals(getDoc());
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (title: ");
+ result.append(title);
+ result.append(", path: ");
+ result.append(path);
+ result.append(')');
+ return result.toString();
+ }
+
+ @Override
+ public String getLabel()
+ {
+ return getTitle();
+ }
+
+} // StructuralElementImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/TextImpl.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/TextImpl.java
new file mode 100644
index 0000000000..b64c680f43
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/TextImpl.java
@@ -0,0 +1,186 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article.impl;
+
+import org.eclipse.emf.cdo.releng.doc.article.ArticlePackage;
+import org.eclipse.emf.cdo.releng.doc.article.Body;
+import org.eclipse.emf.cdo.releng.doc.article.Text;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import com.sun.javadoc.Tag;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Text</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.doc.article.impl.TextImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TextImpl extends BodyElementImpl implements Text
+{
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected String value = VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected TextImpl()
+ {
+ super();
+ }
+
+ TextImpl(Body body, Tag tag, String value)
+ {
+ super(body, tag);
+ this.value = value;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ArticlePackage.Literals.TEXT;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setValue(String newValue)
+ {
+ String oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ArticlePackage.TEXT__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.TEXT__VALUE:
+ return getValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.TEXT__VALUE:
+ setValue((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.TEXT__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ArticlePackage.TEXT__VALUE:
+ return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (value: ");
+ result.append(value);
+ result.append(')');
+ return result.toString();
+ }
+
+} // TextImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/TextTag.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/TextTag.java
new file mode 100644
index 0000000000..77292ec97d
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/TextTag.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.doc.article.impl;
+
+import com.sun.javadoc.Tag;
+
+/**
+ * @author Eike Stepper
+ */
+public class TextTag extends DelegatingTag
+{
+ private String text;
+
+ public TextTag(Tag delegate, String text)
+ {
+ super(delegate);
+ this.text = text;
+ }
+
+ @Override
+ public String kind()
+ {
+ return "Text";
+ }
+
+ @Override
+ public String name()
+ {
+ return "Text";
+ }
+
+ @Override
+ public String text()
+ {
+ return text;
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/UnresolvedBodyElementImpl.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/UnresolvedBodyElementImpl.java
new file mode 100644
index 0000000000..6e67033960
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/impl/UnresolvedBodyElementImpl.java
@@ -0,0 +1,34 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.doc.article.impl;
+
+import org.eclipse.emf.cdo.releng.doc.article.Body;
+
+import com.sun.javadoc.Tag;
+
+/**
+ * @author Eike Stepper
+ */
+public class UnresolvedBodyElementImpl extends BodyElementImpl
+{
+ private final String text;
+
+ UnresolvedBodyElementImpl(Body body, Tag tag, String text)
+ {
+ super(body, tag);
+ this.text = text;
+ }
+
+ public final String getText()
+ {
+ return text;
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/Article.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/Article.java
new file mode 100644
index 0000000000..69c2db1ed6
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/Article.java
@@ -0,0 +1,78 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.doc.article.old;
+
+import com.sun.javadoc.ClassDoc;
+
+/**
+ * @author Eike Stepper
+ */
+public class Article extends ArticleElement
+{
+ private final CategoryElement parent;
+
+ Article(Documentation documentation, ClassDoc classDoc)
+ {
+ super(classDoc);
+ parent = documentation;
+ getDocumentation().registerArticleElement(this);
+ }
+
+ Article(Category category, ClassDoc classDoc)
+ {
+ super(classDoc);
+ parent = category;
+ getDocumentation().registerArticleElement(this);
+ }
+
+ public final Documentation getDocumentation()
+ {
+ if (parent instanceof Documentation)
+ {
+ return (Documentation)parent;
+ }
+
+ return ((Category)parent).getDocumentation();
+ }
+
+ public final Category getCategory()
+ {
+ if (parent instanceof Category)
+ {
+ return (Category)parent;
+ }
+
+ return null;
+ }
+
+ public int getLevel()
+ {
+ return parent.getLevel() + 1;
+ }
+
+ public void accept(Visitor visitor) throws Exception
+ {
+ visitor.visit(this);
+ }
+
+ public String getPath()
+ {
+ String name = getClassDoc().typeName();
+
+ String path = parent.getPath();
+ if (path.length() == 0)
+ {
+ return name;
+ }
+
+ return path + "/" + name;
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/ArticleDoclet.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/ArticleDoclet.java
new file mode 100644
index 0000000000..281ff893a1
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/ArticleDoclet.java
@@ -0,0 +1,147 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.doc.article.old;
+
+import org.eclipse.emf.cdo.releng.doc.article.util.ArticleException;
+
+import com.sun.javadoc.RootDoc;
+
+import java.io.File;
+import java.text.SimpleDateFormat;
+
+/**
+ * @author Eike Stepper
+ */
+public class ArticleDoclet
+{
+ public static final String OPTION_START_TIME = "-starttime";
+
+ public static final String OPTION_PRIVATE = "-private";
+
+ public static final String OPTION_PROJECT = "-project";
+
+ public static final String OPTION_BASE_FOLDER = "-basefolder";
+
+ public static boolean hasOption(RootDoc root, String optionName)
+ {
+ for (String[] option : root.options())
+ {
+ if (optionName.equalsIgnoreCase(option[0]))
+ {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ public static String getOption(RootDoc root, String optionName)
+ {
+ for (String[] option : root.options())
+ {
+ if (optionName.equalsIgnoreCase(option[0]))
+ {
+ // FIXME Multi-argument options?
+ return option[1];
+ }
+ }
+
+ return "";
+ }
+
+ public static boolean start(RootDoc root)
+ {
+ long startTime = System.currentTimeMillis();
+
+ try
+ {
+ String timeOption = getOption(root, OPTION_START_TIME);
+ if (timeOption.length() != 0)
+ {
+ try
+ {
+ startTime = new SimpleDateFormat("y-M-D-H-m-s-S").parse(timeOption).getTime();
+ }
+ catch (Exception ex)
+ {
+ ex.printStackTrace();
+ }
+ }
+
+ if (!hasOption(root, OPTION_PRIVATE))
+ {
+ throw new ArticleException("Missing option: " + OPTION_PRIVATE);
+ }
+
+ File baseFolder = new File(getOption(root, OPTION_BASE_FOLDER));
+ String project = getOption(root, OPTION_PROJECT);
+
+ Documentation documentation = Documentation.create(root, baseFolder, project);
+ documentation.accept(new DocumentationGenerator());
+ return true;
+ }
+ catch (ArticleException ex)
+ {
+ System.err.println(ex.getMessage());
+ }
+ catch (Error ex)
+ {
+ ex.printStackTrace();
+ }
+ catch (Exception ex)
+ {
+ ex.printStackTrace();
+ }
+ finally
+ {
+ long duration = (System.currentTimeMillis() - startTime) / 1000;
+ System.out.println("Total time: " + duration + " seconds");
+ }
+
+ return false;
+ }
+
+ public static int optionLength(String option)
+ {
+ if (OPTION_BASE_FOLDER.equals(option))
+ {
+ return 2;
+ }
+
+ if (OPTION_START_TIME.equals(option))
+ {
+ return 2;
+ }
+
+ if (OPTION_PROJECT.equals(option))
+ {
+ return 2;
+ }
+
+ // Indicate we don't know about it
+ return -1;
+ }
+
+ public static void dumpOptions(RootDoc root)
+ {
+ for (String[] option : root.options())
+ {
+ System.out.print(option[0]);
+ for (int i = 1; i < option.length; i++)
+ {
+ String value = option[i];
+ System.out.print(" " + value);
+ }
+
+ System.out.println();
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/ArticleElement.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/ArticleElement.java
index 0a3a2569ad..b05788c044 100644
--- a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/ArticleElement.java
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/ArticleElement.java
@@ -8,9 +8,10 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.doc.article;
+package org.eclipse.emf.cdo.releng.doc.article.old;
-import org.eclipse.emf.cdo.releng.doc.article.util.TextTag;
+import org.eclipse.emf.cdo.releng.doc.article.old.util.TextTag;
+import org.eclipse.emf.cdo.releng.doc.article.util.ArticleException;
import com.sun.javadoc.ClassDoc;
import com.sun.javadoc.Tag;
@@ -39,7 +40,7 @@ public abstract class ArticleElement implements DocumentationElement
bodyTags.addAll(Arrays.asList(classDoc.inlineTags()));
if (bodyTags.isEmpty())
{
- System.err.println("WARNING: Title is missing in " + classDoc.position());
+ System.err.println("Warning: Title is missing in " + classDoc.position());
title = classDoc.name();
return;
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/Category.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/Category.java
new file mode 100644
index 0000000000..69ce7d6b72
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/Category.java
@@ -0,0 +1,67 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.doc.article.old;
+
+import com.sun.javadoc.PackageDoc;
+
+/**
+ * @author Eike Stepper
+ */
+public class Category extends CategoryElement
+{
+ private final String name;
+
+ private PackageDoc packageDoc;
+
+ Category(CategoryElement parent, String name)
+ {
+ super(parent);
+ this.name = name;
+ }
+
+ public final String getName()
+ {
+ return name;
+ }
+
+ public final PackageDoc getPackageDoc()
+ {
+ return packageDoc;
+ }
+
+ @Override
+ public String getPath()
+ {
+ Category parent = getParent();
+ if (parent == null)
+ {
+ return name;
+ }
+
+ return parent.getPath() + "/" + name;
+ }
+
+ public void accept(Visitor visitor) throws Exception
+ {
+ visitor.visit(this);
+ }
+
+ @Override
+ public String toString()
+ {
+ return name;
+ }
+
+ final void setPackageDoc(PackageDoc packageDoc)
+ {
+ this.packageDoc = packageDoc;
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/CategoryElement.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/CategoryElement.java
index e4260530e4..f06ba90188 100644
--- a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/CategoryElement.java
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/CategoryElement.java
@@ -8,7 +8,7 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.doc.article;
+package org.eclipse.emf.cdo.releng.doc.article.old;
import java.util.ArrayList;
import java.util.List;
@@ -66,7 +66,6 @@ public abstract class CategoryElement implements DocumentationElement
return articles;
}
- // TODO needed?
public final Article getArticle(String id)
{
for (Article article : articles)
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/Documentation.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/Documentation.java
new file mode 100644
index 0000000000..430d9eba80
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/Documentation.java
@@ -0,0 +1,163 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.doc.article.old;
+
+import com.sun.javadoc.ClassDoc;
+import com.sun.javadoc.PackageDoc;
+import com.sun.javadoc.RootDoc;
+import com.sun.javadoc.Tag;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author Eike Stepper
+ */
+public class Documentation extends CategoryElement
+{
+ private final RootDoc root;
+
+ private final File baseFolder;
+
+ private final File outputFolder;
+
+ private final String project;
+
+ private final Map<ClassDoc, ArticleElement> articleElements = new HashMap<ClassDoc, ArticleElement>();
+
+ Documentation(RootDoc root, File baseFolder, String project) throws IOException
+ {
+ super(null);
+ this.root = root;
+ this.baseFolder = baseFolder;
+ this.project = project;
+
+ if (!baseFolder.exists())
+ {
+ if (!baseFolder.mkdirs())
+ {
+ throw new IOException("Could not create " + baseFolder);
+ }
+ }
+
+ outputFolder = new File(new File(new File(baseFolder, "plugins"), project), "html");
+ }
+
+ void registerArticleElement(ArticleElement articleElement)
+ {
+ articleElements.put(articleElement.getClassDoc(), articleElement);
+ }
+
+ boolean isTutorialClass(ClassDoc classDoc)
+ {
+ for (ClassDoc doc : root.classes())
+ {
+ if (doc == classDoc)
+ {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ boolean isExampleClass(ClassDoc classDoc)
+ {
+ Tag[] exampleTags = classDoc.tags("@example");
+ return exampleTags != null && exampleTags.length != 0;
+ }
+
+ @Override
+ public Documentation getDocumentation()
+ {
+ return this;
+ }
+
+ public final Map<ClassDoc, ArticleElement> getArticleElements()
+ {
+ return articleElements;
+ }
+
+ public final RootDoc getRoot()
+ {
+ return root;
+ }
+
+ public final File getBaseFolder()
+ {
+ return baseFolder;
+ }
+
+ public File getOutputFolder()
+ {
+ return outputFolder;
+ }
+
+ public final String getProject()
+ {
+ return project;
+ }
+
+ @Override
+ public String getPath()
+ {
+ return "";
+ }
+
+ @Override
+ public String toString()
+ {
+ return Documentation.class.getSimpleName();
+ }
+
+ public void accept(Visitor visitor) throws Exception
+ {
+ visitor.visit(this);
+ }
+
+ public static Documentation create(RootDoc root, File baseFolder, String project) throws Exception
+ {
+ Documentation documentation = new Documentation(root, baseFolder, project);
+ processTopLevelClasses(documentation);
+ documentation.accept(new DocumentationResolver());
+
+ return documentation;
+ }
+
+ private static void processTopLevelClasses(Documentation documentation)
+ {
+ for (ClassDoc classDoc : documentation.getRoot().classes())
+ {
+ if (classDoc.containingClass() == null && !classDoc.isPackagePrivate())
+ {
+ PackageDoc containingPackage = classDoc.containingPackage();
+ Category category = documentation.getCategory(containingPackage.name());
+ category.setPackageDoc(containingPackage);
+
+ Article article = new Article(category, classDoc);
+ category.getArticles().add(article);
+ processClass(article);
+ }
+ }
+ }
+
+ private static void processClass(ArticleElement parent)
+ {
+ for (ClassDoc classDoc : parent.getClassDoc().innerClasses())
+ {
+ Section section = new Section(parent, classDoc);
+ parent.getSections().add(section);
+ processClass(section);
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/DocumentationElement.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/DocumentationElement.java
index 640cf320b3..b2de907e81 100644
--- a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/DocumentationElement.java
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/DocumentationElement.java
@@ -8,8 +8,7 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.doc.article;
-
+package org.eclipse.emf.cdo.releng.doc.article.old;
/**
* @author Eike Stepper
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/DocumentationGenerator.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/DocumentationGenerator.java
index a46ef3538f..f633ba2925 100644
--- a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/DocumentationGenerator.java
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/DocumentationGenerator.java
@@ -8,11 +8,11 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.doc.article;
+package org.eclipse.emf.cdo.releng.doc.article.old;
-import org.eclipse.emf.cdo.releng.doc.article.DocumentationElement.Visitor;
-import org.eclipse.emf.cdo.releng.doc.article.util.HtmlWriter;
-import org.eclipse.emf.cdo.releng.doc.article.util.RefTag;
+import org.eclipse.emf.cdo.releng.doc.article.old.DocumentationElement.Visitor;
+import org.eclipse.emf.cdo.releng.doc.article.old.util.HtmlWriter;
+import org.eclipse.emf.cdo.releng.doc.article.old.util.RefTag;
import com.sun.javadoc.Tag;
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/DocumentationResolver.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/DocumentationResolver.java
index d4920027b0..0e88f2b96e 100644
--- a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/DocumentationResolver.java
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/DocumentationResolver.java
@@ -8,11 +8,12 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.doc.article;
+package org.eclipse.emf.cdo.releng.doc.article.old;
-import org.eclipse.emf.cdo.releng.doc.article.DocumentationElement.Visitor;
-import org.eclipse.emf.cdo.releng.doc.article.util.RefTag;
-import org.eclipse.emf.cdo.releng.doc.article.util.SnippetTag;
+import org.eclipse.emf.cdo.releng.doc.article.old.DocumentationElement.Visitor;
+import org.eclipse.emf.cdo.releng.doc.article.old.util.RefTag;
+import org.eclipse.emf.cdo.releng.doc.article.old.util.SnippetTag;
+import org.eclipse.emf.cdo.releng.doc.article.util.ArticleException;
import com.sun.javadoc.ClassDoc;
import com.sun.javadoc.MemberDoc;
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Section.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/Section.java
index c17bed1563..b86fc5a838 100644
--- a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Section.java
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/Section.java
@@ -8,11 +8,10 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.doc.article;
+package org.eclipse.emf.cdo.releng.doc.article.old;
import com.sun.javadoc.ClassDoc;
-
/**
* @author Eike Stepper
*/
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Test.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/Test.java
index 5af5fec639..8c9bf25532 100644
--- a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/Test.java
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/Test.java
@@ -8,7 +8,7 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.doc.article;
+package org.eclipse.emf.cdo.releng.doc.article.old;
/**
* @author Eike Stepper
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/util/DelegatingTag.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/util/DelegatingTag.java
new file mode 100644
index 0000000000..370974ef67
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/util/DelegatingTag.java
@@ -0,0 +1,74 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.doc.article.old.util;
+
+import com.sun.javadoc.Doc;
+import com.sun.javadoc.SourcePosition;
+import com.sun.javadoc.Tag;
+
+/**
+ * @author Eike Stepper
+ */
+public class DelegatingTag implements Tag
+{
+ private final Tag delegate;
+
+ public DelegatingTag(Tag delegate)
+ {
+ this.delegate = delegate;
+ }
+
+ public Tag getDelegate()
+ {
+ return delegate;
+ }
+
+ public String name()
+ {
+ return delegate.name();
+ }
+
+ public Doc holder()
+ {
+ return delegate.holder();
+ }
+
+ public String kind()
+ {
+ return delegate.kind();
+ }
+
+ public String text()
+ {
+ return delegate.text();
+ }
+
+ @Override
+ public String toString()
+ {
+ return text();
+ }
+
+ public Tag[] inlineTags()
+ {
+ return delegate.inlineTags();
+ }
+
+ public Tag[] firstSentenceTags()
+ {
+ return delegate.firstSentenceTags();
+ }
+
+ public SourcePosition position()
+ {
+ return delegate.position();
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/HtmlWriter.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/util/HtmlWriter.java
index 11acb2c721..88b8e8ec4e 100644
--- a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/HtmlWriter.java
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/util/HtmlWriter.java
@@ -8,7 +8,7 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.doc.article.util;
+package org.eclipse.emf.cdo.releng.doc.article.old.util;
import java.io.File;
import java.io.FileNotFoundException;
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/JavaDoc.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/util/JavaDoc.java
index 0882ff5960..61c6c06fbe 100644
--- a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/JavaDoc.java
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/util/JavaDoc.java
@@ -8,9 +8,9 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.doc.article.util;
+package org.eclipse.emf.cdo.releng.doc.article.old.util;
-import com.sun.javadoc.RootDoc;
+import org.eclipse.emf.cdo.releng.doc.article.old.ArticleDoclet;
import java.io.File;
import java.io.IOException;
@@ -22,10 +22,6 @@ import java.util.List;
*/
public class JavaDoc
{
- public static final String OPTION_BASE_FOLDER = "-basefolder";
-
- public static final String OPTION_OUTPUT_PATH = "-outputpath";
-
private final Class<?> doclet;
private final List<String> sourcePaths = new ArrayList<String>();
@@ -80,12 +76,9 @@ public class JavaDoc
arguments.add(subPackage);
}
- arguments.add(OPTION_BASE_FOLDER);
+ arguments.add(ArticleDoclet.OPTION_BASE_FOLDER);
arguments.add(baseFolder);
- arguments.add(OPTION_OUTPUT_PATH);
- arguments.add(outputPath);
-
String[] array = arguments.toArray(new String[arguments.size()]);
com.sun.tools.javadoc.Main.execute(doclet.getSimpleName(), doclet.getName(), array);
return this;
@@ -123,35 +116,4 @@ public class JavaDoc
return builder.toString();
}
-
- public static int optionLength(String option)
- {
- if (OPTION_BASE_FOLDER.equals(option))
- {
- return 2;
- }
-
- if (OPTION_OUTPUT_PATH.equals(option))
- {
- return 2;
- }
-
- // Indicate we don't know about it
- return -1;
- }
-
- public static String getOption(RootDoc root, String optionName)
- {
- String[][] options = root.options();
- for (String[] option : options)
- {
- if (optionName.equalsIgnoreCase(option[0]))
- {
- // TODO Multi-argument options?
- return option[1];
- }
- }
-
- return "";
- }
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/RefTag.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/util/RefTag.java
index 8834f4e072..d5715a3a09 100644
--- a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/RefTag.java
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/util/RefTag.java
@@ -8,9 +8,9 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.doc.article.util;
+package org.eclipse.emf.cdo.releng.doc.article.old.util;
-import org.eclipse.emf.cdo.releng.doc.article.ArticleElement;
+import org.eclipse.emf.cdo.releng.doc.article.old.ArticleElement;
import com.sun.javadoc.SeeTag;
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/SnippetTag.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/util/SnippetTag.java
index 456a5eaa76..da555719ac 100644
--- a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/SnippetTag.java
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/util/SnippetTag.java
@@ -8,7 +8,7 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.doc.article.util;
+package org.eclipse.emf.cdo.releng.doc.article.old.util;
import com.sun.javadoc.Doc;
import com.sun.javadoc.SeeTag;
@@ -62,6 +62,12 @@ public class SnippetTag extends TextTag
private void writeExampleSnippet(PrintWriter out)
{
Map<String, Object> options = new HashMap<String, Object>();
+ String label = getDelegate().label();
+ if (label != null)
+ {
+ options.put("title", label);
+ }
+
options.put("includeSignature", includeSignature);
options.put("imagePath", "../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/");
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/TextTag.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/util/TextTag.java
index 70f42e437b..c607d25788 100644
--- a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/TextTag.java
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/old/util/TextTag.java
@@ -8,11 +8,10 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.doc.article.util;
+package org.eclipse.emf.cdo.releng.doc.article.old.util;
import com.sun.javadoc.Tag;
-
/**
* @author Eike Stepper
*/
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/ArticleAdapterFactory.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/ArticleAdapterFactory.java
new file mode 100644
index 0000000000..b748e38f8a
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/ArticleAdapterFactory.java
@@ -0,0 +1,550 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article.util;
+
+import org.eclipse.emf.cdo.releng.doc.article.Article;
+import org.eclipse.emf.cdo.releng.doc.article.ArticlePackage;
+import org.eclipse.emf.cdo.releng.doc.article.Body;
+import org.eclipse.emf.cdo.releng.doc.article.BodyElement;
+import org.eclipse.emf.cdo.releng.doc.article.Callout;
+import org.eclipse.emf.cdo.releng.doc.article.Category;
+import org.eclipse.emf.cdo.releng.doc.article.Chapter;
+import org.eclipse.emf.cdo.releng.doc.article.Context;
+import org.eclipse.emf.cdo.releng.doc.article.Diagram;
+import org.eclipse.emf.cdo.releng.doc.article.Documentation;
+import org.eclipse.emf.cdo.releng.doc.article.EmbeddableElement;
+import org.eclipse.emf.cdo.releng.doc.article.Embedding;
+import org.eclipse.emf.cdo.releng.doc.article.ExternalTarget;
+import org.eclipse.emf.cdo.releng.doc.article.Factory;
+import org.eclipse.emf.cdo.releng.doc.article.Identifiable;
+import org.eclipse.emf.cdo.releng.doc.article.JavaElement;
+import org.eclipse.emf.cdo.releng.doc.article.Link;
+import org.eclipse.emf.cdo.releng.doc.article.LinkTarget;
+import org.eclipse.emf.cdo.releng.doc.article.Snippet;
+import org.eclipse.emf.cdo.releng.doc.article.SourceCode;
+import org.eclipse.emf.cdo.releng.doc.article.StructuralElement;
+import org.eclipse.emf.cdo.releng.doc.article.Text;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc --> The <b>Adapter Factory</b> for the model. It provides an adapter <code>createXXX</code>
+ * method for each class of the model. <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage
+ * @generated
+ */
+public class ArticleAdapterFactory extends AdapterFactoryImpl
+{
+ /**
+ * The cached model package. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected static ArticlePackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public ArticleAdapterFactory()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = ArticlePackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object. <!-- begin-user-doc --> This implementation
+ * returns <code>true</code> if the object is either the model's package or is an instance object of the model. <!--
+ * end-user-doc -->
+ *
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object)
+ {
+ if (object == modelPackage)
+ {
+ return true;
+ }
+ if (object instanceof EObject)
+ {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ArticleSwitch<Adapter> modelSwitch = new ArticleSwitch<Adapter>()
+ {
+ @Override
+ public Adapter caseDocumentation(Documentation object)
+ {
+ return createDocumentationAdapter();
+ }
+
+ @Override
+ public Adapter caseContext(Context object)
+ {
+ return createContextAdapter();
+ }
+
+ @Override
+ public Adapter caseCategory(Category object)
+ {
+ return createCategoryAdapter();
+ }
+
+ @Override
+ public Adapter caseArticle(Article object)
+ {
+ return createArticleAdapter();
+ }
+
+ @Override
+ public Adapter caseChapter(Chapter object)
+ {
+ return createChapterAdapter();
+ }
+
+ @Override
+ public Adapter caseSnippet(Snippet object)
+ {
+ return createSnippetAdapter();
+ }
+
+ @Override
+ public Adapter caseDiagram(Diagram object)
+ {
+ return createDiagramAdapter();
+ }
+
+ @Override
+ public Adapter caseFactory(Factory object)
+ {
+ return createFactoryAdapter();
+ }
+
+ @Override
+ public Adapter caseJavaElement(JavaElement object)
+ {
+ return createJavaElementAdapter();
+ }
+
+ @Override
+ public Adapter caseStructuralElement(StructuralElement object)
+ {
+ return createStructuralElementAdapter();
+ }
+
+ @Override
+ public Adapter caseLinkTarget(LinkTarget object)
+ {
+ return createLinkTargetAdapter();
+ }
+
+ @Override
+ public Adapter caseCallout(Callout object)
+ {
+ return createCalloutAdapter();
+ }
+
+ @Override
+ public Adapter caseEmbeddableElement(EmbeddableElement object)
+ {
+ return createEmbeddableElementAdapter();
+ }
+
+ @Override
+ public Adapter caseExternalTarget(ExternalTarget object)
+ {
+ return createExternalTargetAdapter();
+ }
+
+ @Override
+ public Adapter caseIdentifiable(Identifiable object)
+ {
+ return createIdentifiableAdapter();
+ }
+
+ @Override
+ public Adapter caseBody(Body object)
+ {
+ return createBodyAdapter();
+ }
+
+ @Override
+ public Adapter caseBodyElement(BodyElement object)
+ {
+ return createBodyElementAdapter();
+ }
+
+ @Override
+ public Adapter caseText(Text object)
+ {
+ return createTextAdapter();
+ }
+
+ @Override
+ public Adapter caseLink(Link object)
+ {
+ return createLinkAdapter();
+ }
+
+ @Override
+ public Adapter caseEmbedding(Embedding object)
+ {
+ return createEmbeddingAdapter();
+ }
+
+ @Override
+ public Adapter caseSourceCode(SourceCode object)
+ {
+ return createSourceCodeAdapter();
+ }
+
+ @Override
+ public Adapter defaultCase(EObject object)
+ {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param target
+ * the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target)
+ {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.doc.article.Documentation
+ * <em>Documentation</em>}'. <!-- begin-user-doc --> This default implementation returns null so that we can easily
+ * ignore cases; it's useful to ignore a case when inheritance will catch all the cases anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Documentation
+ * @generated
+ */
+ public Adapter createDocumentationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.doc.article.Context
+ * <em>Context</em>}'. <!-- begin-user-doc --> This default implementation returns null so that we can easily ignore
+ * cases; it's useful to ignore a case when inheritance will catch all the cases anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Context
+ * @generated
+ */
+ public Adapter createContextAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.doc.article.Category
+ * <em>Category</em>}'. <!-- begin-user-doc --> This default implementation returns null so that we can easily ignore
+ * cases; it's useful to ignore a case when inheritance will catch all the cases anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Category
+ * @generated
+ */
+ public Adapter createCategoryAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.doc.article.Article
+ * <em>Article</em>}'. <!-- begin-user-doc --> This default implementation returns null so that we can easily ignore
+ * cases; it's useful to ignore a case when inheritance will catch all the cases anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Article
+ * @generated
+ */
+ public Adapter createArticleAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.doc.article.Chapter
+ * <em>Chapter</em>}'. <!-- begin-user-doc --> This default implementation returns null so that we can easily ignore
+ * cases; it's useful to ignore a case when inheritance will catch all the cases anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Chapter
+ * @generated
+ */
+ public Adapter createChapterAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.doc.article.Snippet
+ * <em>Snippet</em>}'. <!-- begin-user-doc --> This default implementation returns null so that we can easily ignore
+ * cases; it's useful to ignore a case when inheritance will catch all the cases anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Snippet
+ * @generated
+ */
+ public Adapter createSnippetAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.doc.article.Diagram
+ * <em>Diagram</em>}'. <!-- begin-user-doc --> This default implementation returns null so that we can easily ignore
+ * cases; it's useful to ignore a case when inheritance will catch all the cases anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Diagram
+ * @generated
+ */
+ public Adapter createDiagramAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.doc.article.Factory
+ * <em>Factory</em>}'. <!-- begin-user-doc --> This default implementation returns null so that we can easily ignore
+ * cases; it's useful to ignore a case when inheritance will catch all the cases anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Factory
+ * @generated
+ */
+ public Adapter createFactoryAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.doc.article.JavaElement
+ * <em>Java Element</em>}'. <!-- begin-user-doc --> This default implementation returns null so that we can easily
+ * ignore cases; it's useful to ignore a case when inheritance will catch all the cases anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.doc.article.JavaElement
+ * @generated
+ */
+ public Adapter createJavaElementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.doc.article.StructuralElement
+ * <em>Structural Element</em>}'. <!-- begin-user-doc --> This default implementation returns null so that we can
+ * easily ignore cases; it's useful to ignore a case when inheritance will catch all the cases anyway. <!--
+ * end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.doc.article.StructuralElement
+ * @generated
+ */
+ public Adapter createStructuralElementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.doc.article.LinkTarget
+ * <em>Link Target</em>}'. <!-- begin-user-doc --> This default implementation returns null so that we can easily
+ * ignore cases; it's useful to ignore a case when inheritance will catch all the cases anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.doc.article.LinkTarget
+ * @generated
+ */
+ public Adapter createLinkTargetAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.doc.article.Callout
+ * <em>Callout</em>}'. <!-- begin-user-doc --> This default implementation returns null so that we can easily ignore
+ * cases; it's useful to ignore a case when inheritance will catch all the cases anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Callout
+ * @generated
+ */
+ public Adapter createCalloutAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.doc.article.EmbeddableElement
+ * <em>Embeddable Element</em>}'. <!-- begin-user-doc --> This default implementation returns null so that we can
+ * easily ignore cases; it's useful to ignore a case when inheritance will catch all the cases anyway. <!--
+ * end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.doc.article.EmbeddableElement
+ * @generated
+ */
+ public Adapter createEmbeddableElementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.doc.article.ExternalTarget
+ * <em>External Target</em>}'. <!-- begin-user-doc --> This default implementation returns null so that we can easily
+ * ignore cases; it's useful to ignore a case when inheritance will catch all the cases anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.doc.article.ExternalTarget
+ * @generated
+ */
+ public Adapter createExternalTargetAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.doc.article.Identifiable
+ * <em>Identifiable</em>}'. <!-- begin-user-doc --> This default implementation returns null so that we can easily
+ * ignore cases; it's useful to ignore a case when inheritance will catch all the cases anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Identifiable
+ * @generated
+ */
+ public Adapter createIdentifiableAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.doc.article.Body <em>Body</em>}'.
+ * <!-- begin-user-doc --> This default implementation returns null so that we can easily ignore cases; it's useful to
+ * ignore a case when inheritance will catch all the cases anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Body
+ * @generated
+ */
+ public Adapter createBodyAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.doc.article.BodyElement
+ * <em>Body Element</em>}'. <!-- begin-user-doc --> This default implementation returns null so that we can easily
+ * ignore cases; it's useful to ignore a case when inheritance will catch all the cases anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.doc.article.BodyElement
+ * @generated
+ */
+ public Adapter createBodyElementAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.doc.article.Text <em>Text</em>}'.
+ * <!-- begin-user-doc --> This default implementation returns null so that we can easily ignore cases; it's useful to
+ * ignore a case when inheritance will catch all the cases anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Text
+ * @generated
+ */
+ public Adapter createTextAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.doc.article.Link <em>Link</em>}'.
+ * <!-- begin-user-doc --> This default implementation returns null so that we can easily ignore cases; it's useful to
+ * ignore a case when inheritance will catch all the cases anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Link
+ * @generated
+ */
+ public Adapter createLinkAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.doc.article.Embedding
+ * <em>Embedding</em>}'. <!-- begin-user-doc --> This default implementation returns null so that we can easily ignore
+ * cases; it's useful to ignore a case when inheritance will catch all the cases anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.doc.article.Embedding
+ * @generated
+ */
+ public Adapter createEmbeddingAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.doc.article.SourceCode
+ * <em>Source Code</em>}'. <!-- begin-user-doc --> This default implementation returns null so that we can easily
+ * ignore cases; it's useful to ignore a case when inheritance will catch all the cases anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.doc.article.SourceCode
+ * @generated
+ */
+ public Adapter createSourceCodeAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case. <!-- begin-user-doc --> This default implementation returns null. <!--
+ * end-user-doc -->
+ *
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter()
+ {
+ return null;
+ }
+
+} // ArticleAdapterFactory
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/ArticleException.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/ArticleException.java
index f2db8985ba..14703cfce6 100644
--- a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/ArticleException.java
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/ArticleException.java
@@ -8,7 +8,7 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.doc.article;
+package org.eclipse.emf.cdo.releng.doc.article.util;
/**
* @author Eike Stepper
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/ArticleSwitch.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/ArticleSwitch.java
new file mode 100644
index 0000000000..46cfc82e2b
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/ArticleSwitch.java
@@ -0,0 +1,673 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.emf.cdo.releng.doc.article.util;
+
+import org.eclipse.emf.cdo.releng.doc.article.Article;
+import org.eclipse.emf.cdo.releng.doc.article.ArticlePackage;
+import org.eclipse.emf.cdo.releng.doc.article.Body;
+import org.eclipse.emf.cdo.releng.doc.article.BodyElement;
+import org.eclipse.emf.cdo.releng.doc.article.Callout;
+import org.eclipse.emf.cdo.releng.doc.article.Category;
+import org.eclipse.emf.cdo.releng.doc.article.Chapter;
+import org.eclipse.emf.cdo.releng.doc.article.Context;
+import org.eclipse.emf.cdo.releng.doc.article.Diagram;
+import org.eclipse.emf.cdo.releng.doc.article.Documentation;
+import org.eclipse.emf.cdo.releng.doc.article.EmbeddableElement;
+import org.eclipse.emf.cdo.releng.doc.article.Embedding;
+import org.eclipse.emf.cdo.releng.doc.article.ExternalTarget;
+import org.eclipse.emf.cdo.releng.doc.article.Factory;
+import org.eclipse.emf.cdo.releng.doc.article.Identifiable;
+import org.eclipse.emf.cdo.releng.doc.article.JavaElement;
+import org.eclipse.emf.cdo.releng.doc.article.Link;
+import org.eclipse.emf.cdo.releng.doc.article.LinkTarget;
+import org.eclipse.emf.cdo.releng.doc.article.Snippet;
+import org.eclipse.emf.cdo.releng.doc.article.SourceCode;
+import org.eclipse.emf.cdo.releng.doc.article.StructuralElement;
+import org.eclipse.emf.cdo.releng.doc.article.Text;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+
+/**
+ * <!-- begin-user-doc --> The <b>Switch</b> for the model's inheritance hierarchy. It supports the call
+ * {@link #doSwitch(EObject) doSwitch(object)} to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object and proceeding up the inheritance hierarchy until a non-null result is
+ * returned, which is the result of the switch. <!-- end-user-doc -->
+ *
+ * @see org.eclipse.emf.cdo.releng.doc.article.ArticlePackage
+ * @generated
+ */
+public class ArticleSwitch<T> extends Switch<T>
+{
+ /**
+ * The cached model package <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected static ArticlePackage modelPackage;
+
+ /**
+ * Creates an instance of the switch. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public ArticleSwitch()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = ArticlePackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage)
+ {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject)
+ {
+ switch (classifierID)
+ {
+ case ArticlePackage.DOCUMENTATION:
+ {
+ Documentation documentation = (Documentation)theEObject;
+ T result = caseDocumentation(documentation);
+ if (result == null)
+ result = caseStructuralElement(documentation);
+ if (result == null)
+ result = caseLinkTarget(documentation);
+ if (result == null)
+ result = caseIdentifiable(documentation);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ArticlePackage.CONTEXT:
+ {
+ Context context = (Context)theEObject;
+ T result = caseContext(context);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ArticlePackage.CATEGORY:
+ {
+ Category category = (Category)theEObject;
+ T result = caseCategory(category);
+ if (result == null)
+ result = caseBody(category);
+ if (result == null)
+ result = caseStructuralElement(category);
+ if (result == null)
+ result = caseLinkTarget(category);
+ if (result == null)
+ result = caseIdentifiable(category);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ArticlePackage.ARTICLE:
+ {
+ Article article = (Article)theEObject;
+ T result = caseArticle(article);
+ if (result == null)
+ result = caseChapter(article);
+ if (result == null)
+ result = caseBody(article);
+ if (result == null)
+ result = caseStructuralElement(article);
+ if (result == null)
+ result = caseLinkTarget(article);
+ if (result == null)
+ result = caseIdentifiable(article);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ArticlePackage.CHAPTER:
+ {
+ Chapter chapter = (Chapter)theEObject;
+ T result = caseChapter(chapter);
+ if (result == null)
+ result = caseBody(chapter);
+ if (result == null)
+ result = caseStructuralElement(chapter);
+ if (result == null)
+ result = caseLinkTarget(chapter);
+ if (result == null)
+ result = caseIdentifiable(chapter);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ArticlePackage.SNIPPET:
+ {
+ Snippet snippet = (Snippet)theEObject;
+ T result = caseSnippet(snippet);
+ if (result == null)
+ result = caseEmbeddableElement(snippet);
+ if (result == null)
+ result = caseIdentifiable(snippet);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ArticlePackage.DIAGRAM:
+ {
+ Diagram diagram = (Diagram)theEObject;
+ T result = caseDiagram(diagram);
+ if (result == null)
+ result = caseBodyElement(diagram);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ArticlePackage.FACTORY:
+ {
+ Factory factory = (Factory)theEObject;
+ T result = caseFactory(factory);
+ if (result == null)
+ result = caseEmbeddableElement(factory);
+ if (result == null)
+ result = caseIdentifiable(factory);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ArticlePackage.JAVA_ELEMENT:
+ {
+ JavaElement javaElement = (JavaElement)theEObject;
+ T result = caseJavaElement(javaElement);
+ if (result == null)
+ result = caseLinkTarget(javaElement);
+ if (result == null)
+ result = caseIdentifiable(javaElement);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ArticlePackage.STRUCTURAL_ELEMENT:
+ {
+ StructuralElement structuralElement = (StructuralElement)theEObject;
+ T result = caseStructuralElement(structuralElement);
+ if (result == null)
+ result = caseLinkTarget(structuralElement);
+ if (result == null)
+ result = caseIdentifiable(structuralElement);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ArticlePackage.LINK_TARGET:
+ {
+ LinkTarget linkTarget = (LinkTarget)theEObject;
+ T result = caseLinkTarget(linkTarget);
+ if (result == null)
+ result = caseIdentifiable(linkTarget);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ArticlePackage.CALLOUT:
+ {
+ Callout callout = (Callout)theEObject;
+ T result = caseCallout(callout);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ArticlePackage.EMBEDDABLE_ELEMENT:
+ {
+ EmbeddableElement embeddableElement = (EmbeddableElement)theEObject;
+ T result = caseEmbeddableElement(embeddableElement);
+ if (result == null)
+ result = caseIdentifiable(embeddableElement);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ArticlePackage.EXTERNAL_TARGET:
+ {
+ ExternalTarget externalTarget = (ExternalTarget)theEObject;
+ T result = caseExternalTarget(externalTarget);
+ if (result == null)
+ result = caseLinkTarget(externalTarget);
+ if (result == null)
+ result = caseIdentifiable(externalTarget);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ArticlePackage.IDENTIFIABLE:
+ {
+ Identifiable identifiable = (Identifiable)theEObject;
+ T result = caseIdentifiable(identifiable);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ArticlePackage.BODY:
+ {
+ Body body = (Body)theEObject;
+ T result = caseBody(body);
+ if (result == null)
+ result = caseStructuralElement(body);
+ if (result == null)
+ result = caseLinkTarget(body);
+ if (result == null)
+ result = caseIdentifiable(body);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ArticlePackage.BODY_ELEMENT:
+ {
+ BodyElement bodyElement = (BodyElement)theEObject;
+ T result = caseBodyElement(bodyElement);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ArticlePackage.TEXT:
+ {
+ Text text = (Text)theEObject;
+ T result = caseText(text);
+ if (result == null)
+ result = caseBodyElement(text);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ArticlePackage.LINK:
+ {
+ Link link = (Link)theEObject;
+ T result = caseLink(link);
+ if (result == null)
+ result = caseBodyElement(link);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ArticlePackage.EMBEDDING:
+ {
+ Embedding embedding = (Embedding)theEObject;
+ T result = caseEmbedding(embedding);
+ if (result == null)
+ result = caseBodyElement(embedding);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ArticlePackage.SOURCE_CODE:
+ {
+ SourceCode sourceCode = (SourceCode)theEObject;
+ T result = caseSourceCode(sourceCode);
+ if (result == null)
+ result = caseExternalTarget(sourceCode);
+ if (result == null)
+ result = caseLinkTarget(sourceCode);
+ if (result == null)
+ result = caseIdentifiable(sourceCode);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ default:
+ return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Documentation</em>'. <!-- begin-user-doc -->
+ * This implementation returns null; returning a non-null result will terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Documentation</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDocumentation(Documentation object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Context</em>'. <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Context</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseContext(Context object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Category</em>'. <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Category</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCategory(Category object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Article</em>'. <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Article</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseArticle(Article object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Chapter</em>'. <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Chapter</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseChapter(Chapter object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Snippet</em>'. <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Snippet</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSnippet(Snippet object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Diagram</em>'. <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Diagram</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDiagram(Diagram object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Factory</em>'. <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Factory</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFactory(Factory object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Java Element</em>'. <!-- begin-user-doc -->
+ * This implementation returns null; returning a non-null result will terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Java Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseJavaElement(JavaElement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Structural Element</em>'. <!-- begin-user-doc
+ * --> This implementation returns null; returning a non-null result will terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Structural Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseStructuralElement(StructuralElement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Link Target</em>'. <!-- begin-user-doc -->
+ * This implementation returns null; returning a non-null result will terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Link Target</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLinkTarget(LinkTarget object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Callout</em>'. <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Callout</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCallout(Callout object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Embeddable Element</em>'. <!-- begin-user-doc
+ * --> This implementation returns null; returning a non-null result will terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Embeddable Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEmbeddableElement(EmbeddableElement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>External Target</em>'. <!-- begin-user-doc -->
+ * This implementation returns null; returning a non-null result will terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>External Target</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseExternalTarget(ExternalTarget object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Identifiable</em>'. <!-- begin-user-doc -->
+ * This implementation returns null; returning a non-null result will terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Identifiable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIdentifiable(Identifiable object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Body</em>'. <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Body</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBody(Body object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Body Element</em>'. <!-- begin-user-doc -->
+ * This implementation returns null; returning a non-null result will terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Body Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBodyElement(BodyElement object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Text</em>'. <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Text</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseText(Text object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Link</em>'. <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Link</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLink(Link object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Embedding</em>'. <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Embedding</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEmbedding(Embedding object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Source Code</em>'. <!-- begin-user-doc -->
+ * This implementation returns null; returning a non-null result will terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Source Code</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSourceCode(SourceCode object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate the switch, but this is the last case
+ * anyway. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object)
+ {
+ return null;
+ }
+
+} // ArticleSwitch
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/ArticleUtil.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/ArticleUtil.java
new file mode 100644
index 0000000000..8b998cdb4b
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/article/util/ArticleUtil.java
@@ -0,0 +1,160 @@
+/**
+ * Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.doc.article.util;
+
+import com.sun.javadoc.ClassDoc;
+import com.sun.javadoc.Doc;
+import com.sun.javadoc.MethodDoc;
+import com.sun.javadoc.PackageDoc;
+import com.sun.javadoc.RootDoc;
+import com.sun.javadoc.SourcePosition;
+import com.sun.javadoc.Tag;
+
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * @author Eike Stepper
+ */
+public final class ArticleUtil
+{
+ private ArticleUtil()
+ {
+ }
+
+ public static boolean containsFile(File folder, File file)
+ {
+ if (!folder.isDirectory())
+ {
+ return false;
+ }
+
+ File parent = file.getParentFile();
+ if (parent == null)
+ {
+ return false;
+ }
+
+ if (parent.equals(folder))
+ {
+ return true;
+ }
+
+ return containsFile(folder, parent);
+ }
+
+ public static boolean isDocumented(Doc doc)
+ {
+ Tag[] tags = doc.inlineTags();
+ return tags != null && tags.length != 0;
+ }
+
+ public static boolean isTagged(Doc doc, String tag)
+ {
+ Tag[] tags = doc.tags(tag);
+ return tags != null && tags.length != 0;
+ }
+
+ public static boolean isIgnore(Doc doc)
+ {
+ return isTagged(doc, "@ignore");
+ }
+
+ public static boolean isSnippet(Doc doc)
+ {
+ return isTagged(doc, "@snippet");
+ }
+
+ public static boolean isFactory(MethodDoc doc)
+ {
+ return isTagged(doc, "@factory");
+ }
+
+ public static String getSimplePackageName(PackageDoc packageDoc)
+ {
+ String name = packageDoc.name();
+ int lastDot = name.lastIndexOf('.');
+ if (lastDot != -1)
+ {
+ return name.substring(lastDot + 1);
+ }
+
+ return name;
+ }
+
+ public static PackageDoc getParentPackage(RootDoc root, PackageDoc packageDoc)
+ {
+ String name = packageDoc.name();
+ int lastDot = name.lastIndexOf('.');
+ if (lastDot != -1)
+ {
+ return root.packageNamed(name.substring(0, lastDot));
+ }
+
+ return null;
+ }
+
+ public static File canonify(File file)
+ {
+ try
+ {
+ return file.getCanonicalFile();
+ }
+ catch (IOException ex)
+ {
+ throw new ArticleException(ex);
+ }
+ }
+
+ public static String makeConsoleLink(Doc doc)
+ {
+ SourcePosition position = doc.position();
+ if (position == null)
+ {
+ return doc.name();
+ }
+
+ return makeConsoleLink(doc, position);
+ }
+
+ public static String makeConsoleLink(Doc doc, SourcePosition position)
+ {
+ if (doc instanceof ClassDoc)
+ {
+ return makeConsoleLink((ClassDoc)doc, "class", position);
+ }
+
+ if (doc instanceof MethodDoc)
+ {
+ MethodDoc methodDoc = (MethodDoc)doc;
+ return makeConsoleLink(methodDoc.containingClass(), methodDoc.name(), position);
+ }
+
+ return makeConsoleLink("", position);
+ }
+
+ public static String makeConsoleLink(ClassDoc classDoc, String methodName, SourcePosition position)
+ {
+ String typeName = classDoc.containingPackage().name() + "." + classDoc.typeName().replace('.', '$');
+ return makeConsoleLink(typeName + "." + methodName, position);
+ }
+
+ public static String makeConsoleLink(String prefix, SourcePosition position)
+ {
+ String result = position.file().getName() + ":" + position.line();
+ if (prefix != null && prefix.length() != 0)
+ {
+ result = prefix + "(" + result + ")";
+ }
+
+ return result;
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/java/MovePackageDescriptions.java b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/java/MovePackageDescriptions.java
index 96970e8654..0d62f08047 100644
--- a/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/java/MovePackageDescriptions.java
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/src/org/eclipse/emf/cdo/releng/doc/java/MovePackageDescriptions.java
@@ -26,12 +26,12 @@ public class MovePackageDescriptions
private static final String NL = System.getProperty("line.separator");
private static final Pattern PATTERN = Pattern.compile("(.*</H2>\\s*)" //
- + "(.*<B>See:</B>.*<A HREF=\"#package_description\"><B>Description</B></A>)" // To be replaced...
- + "(.*)" //
- + "(<A NAME=\"package_description\"><!-- --></A><H2>.*</H2>.*<P>\\s*)" //
- + "(.*)" // ... with full description
- + "(<P>\\s*<P>\\s*<DL>\\s*</DL>\\s*<HR>.*)", //
- Pattern.MULTILINE | Pattern.DOTALL);
+ + "(.*<B>See:</B>.*<A HREF=\"#package_description\"><B>Description</B></A>)" // To be replaced...
+ + "(.*)" //
+ + "(<A NAME=\"package_description\"><!-- --></A><H2>.*</H2>.*<P>\\s*)" //
+ + "(.*)" // ... with full description
+ + "(<P>\\s*<P>\\s*<DL>\\s*</DL>\\s*<HR>.*)", //
+ Pattern.MULTILINE | Pattern.DOTALL);
public static void main(String[] args) throws IOException
{

Back to the top