Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2011-09-13 07:41:25 +0000
committerEike Stepper2011-09-13 07:41:25 +0000
commit96507c6db9f6e6b131d2a429c89ba1f91d5c948f (patch)
treea7c856bb74220983a8a623279bd27874f0d7c452
parent51e4170064a1fdfac043c2de968be6724bda5668 (diff)
downloadcdo-96507c6db9f6e6b131d2a429c89ba1f91d5c948f.tar.gz
cdo-96507c6db9f6e6b131d2a429c89ba1f91d5c948f.tar.xz
cdo-96507c6db9f6e6b131d2a429c89ba1f91d5c948f.zip
tutorials
-rw-r--r--plugins/org.eclipse.emf.cdo.common/build.properties2
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/CDO Articles.launch19
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/build.properties4
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/build.xml36
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/html/org/eclipse/emf/cdo/doc/connectors/CreatingTransportConnections.html154
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/html/org/eclipse/emf/cdo/doc/sessions/ConnectingToRepositories.html9
-rw-r--r--plugins/org.eclipse.emf.cdo.doc/src/org/eclipse/emf/cdo/doc/connectors/CreatingTransportConnections.java27
-rw-r--r--plugins/org.eclipse.emf.cdo.edit/build.properties2
-rw-r--r--plugins/org.eclipse.emf.cdo.location/build.properties2
-rw-r--r--plugins/org.eclipse.emf.cdo.net4j/build.properties2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/META-INF/MANIFEST.MF8
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/build.properties4
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/buildTemplate.ant39
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/model/article.ecore123
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/model/article.ecorediag745
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/model/article.genmodel83
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/plugin.properties2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.doc/plugin.xml20
-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
-rw-r--r--plugins/org.eclipse.emf.cdo.server.db/build.properties2
-rw-r--r--plugins/org.eclipse.emf.cdo.server.db4o/build.properties2
-rw-r--r--plugins/org.eclipse.emf.cdo.server.hibernate/build.properties2
-rw-r--r--plugins/org.eclipse.emf.cdo.server.mongodb/build.properties2
-rw-r--r--plugins/org.eclipse.emf.cdo.server.net4j/build.properties2
-rw-r--r--plugins/org.eclipse.emf.cdo.server.objectivity/build.properties2
-rw-r--r--plugins/org.eclipse.emf.cdo.server.ocl/build.properties2
-rw-r--r--plugins/org.eclipse.emf.cdo.server/build.properties2
-rw-r--r--plugins/org.eclipse.emf.cdo.ui.ide/build.properties2
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/build.properties2
-rw-r--r--plugins/org.eclipse.emf.cdo/build.properties2
-rw-r--r--plugins/org.eclipse.net4j.db.derby/build.properties2
-rw-r--r--plugins/org.eclipse.net4j.db.doc/build.properties2
-rw-r--r--plugins/org.eclipse.net4j.db.doc/build.xml37
-rw-r--r--plugins/org.eclipse.net4j.db.h2/build.properties2
-rw-r--r--plugins/org.eclipse.net4j.db.hsqldb/build.properties2
-rw-r--r--plugins/org.eclipse.net4j.db.mysql/build.properties2
-rw-r--r--plugins/org.eclipse.net4j.db.postgresql/build.properties2
-rw-r--r--plugins/org.eclipse.net4j.db/build.properties2
-rw-r--r--plugins/org.eclipse.net4j.doc/build.properties2
-rw-r--r--plugins/org.eclipse.net4j.doc/build.xml37
-rw-r--r--plugins/org.eclipse.net4j.http.common/build.properties2
-rw-r--r--plugins/org.eclipse.net4j.http.server/build.properties2
-rw-r--r--plugins/org.eclipse.net4j.http/build.properties2
-rw-r--r--plugins/org.eclipse.net4j.jvm/build.properties2
-rw-r--r--plugins/org.eclipse.net4j.tcp/build.properties2
-rw-r--r--plugins/org.eclipse.net4j.ui/build.properties2
-rw-r--r--plugins/org.eclipse.net4j.util.doc/META-INF/MANIFEST.MF1
-rw-r--r--plugins/org.eclipse.net4j.util.doc/build.xml35
-rw-r--r--plugins/org.eclipse.net4j.util.doc/src/org/eclipse/net4j/util/doc/Overview.java19
-rw-r--r--plugins/org.eclipse.net4j.util.ui/build.properties2
-rw-r--r--plugins/org.eclipse.net4j.util/build.properties2
-rw-r--r--plugins/org.eclipse.net4j/build.properties2
126 files changed, 13229 insertions, 752 deletions
diff --git a/plugins/org.eclipse.emf.cdo.common/build.properties b/plugins/org.eclipse.emf.cdo.common/build.properties
index e47f4a10ff..fcf2463671 100644
--- a/plugins/org.eclipse.emf.cdo.common/build.properties
+++ b/plugins/org.eclipse.emf.cdo.common/build.properties
@@ -20,4 +20,4 @@ bin.includes = META-INF/,\
src.includes = about.html,\
copyright.txt
-org.eclipse.emf.cdo.releng.javadoc.project = org.eclipse.emf.cdo.doc
+doc.project = org.eclipse.emf.cdo.doc
diff --git a/plugins/org.eclipse.emf.cdo.doc/CDO Articles.launch b/plugins/org.eclipse.emf.cdo.doc/CDO Articles.launch
new file mode 100644
index 0000000000..280ce2ee97
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.doc/CDO Articles.launch
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.ant.AntLaunchConfigurationType">
+<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="true"/>
+<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;resources&gt;&#13;&#10;&lt;item path=&quot;/org.eclipse.emf.cdo.doc/html&quot; type=&quot;2&quot;/&gt;&#13;&#10;&lt;/resources&gt;}"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.cdo.doc/build.xml"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.6"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ant.internal.launching.remote.InternalAntRunner"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.cdo.doc"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_ANT_TARGETS" value="build.article,"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.emf.cdo.doc/build.xml}"/>
+<stringAttribute key="process_factory_id" value="org.eclipse.ant.ui.remoteAntProcessFactory"/>
+</launchConfiguration>
diff --git a/plugins/org.eclipse.emf.cdo.doc/build.properties b/plugins/org.eclipse.emf.cdo.doc/build.properties
index 9cf93908fe..b6a625c5a9 100644
--- a/plugins/org.eclipse.emf.cdo.doc/build.properties
+++ b/plugins/org.eclipse.emf.cdo.doc/build.properties
@@ -26,5 +26,5 @@ bin.includes = META-INF/,\
intro/,\
.
-org.eclipse.emf.cdo.releng.javadoc.depends = org.eclipse.net4j.doc,\
- org.eclipse.net4j.db.doc
+doc.depends = org.eclipse.net4j.doc,\
+ org.eclipse.net4j.db.doc
diff --git a/plugins/org.eclipse.emf.cdo.doc/build.xml b/plugins/org.eclipse.emf.cdo.doc/build.xml
index 210aa352bc..ab76b5c1cd 100644
--- a/plugins/org.eclipse.emf.cdo.doc/build.xml
+++ b/plugins/org.eclipse.emf.cdo.doc/build.xml
@@ -9,12 +9,13 @@
<property name="emf.version" value="2.7.0" />
<property name="platform.version" value="juno" />
- <property name="javadoc.project" value="plugins/org.eclipse.emf.cdo.doc" />
- <property file="${javadoc.project}/plugin.properties" />
+ <property name="project.path" value="plugins/org.eclipse.emf.cdo.doc" />
+ <property file="${project.path}/plugin.properties" />
+ <property file="${project.path}/build.properties" />
<property name="javadoc.name" value="${pluginName}" />
- <property name="javadoc.destdir" value="${javadoc.project}/javadoc" />
- <property name="article.destdir" value="${javadoc.project}/html" />
- <property name="article.sources" value="${javadoc.project}/src" />
+ <property name="javadoc.destdir" value="${project.path}/javadoc" />
+ <property name="article.destdir" value="${project.path}/html" />
+ <property name="article.sources" value="${project.path}/src" />
<property name="supplemental" value="/develop/bin/org.eclipse.emf.cdo.releng.doc.supplemental" />
<path id="javadoc.classpath">
@@ -72,7 +73,7 @@
notree="true"
windowtitle="${javadoc.name}"
doctitle="&lt;h1>${javadoc.name}&lt;/h1>"
- overview="${javadoc.project}/overview.html"
+ overview="${project.path}/overview.html"
bottom="&lt;i>Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.&lt;/i>">
<doclet name="org.jboss.apiviz.APIviz" path="${supplemental}/bin">
@@ -242,7 +243,7 @@
</javadoc>
<copy todir="${javadoc.destdir}/resources" verbose="true" failonerror="false">
- <fileset dir="${javadoc.project}/resources" defaultexcludes="true">
+ <fileset dir="${project.path}/resources" defaultexcludes="true">
<include name="**/*" />
<exclude name="README.txt" />
</fileset>
@@ -275,7 +276,11 @@
</java>
</target>
- <target name="build.article">
+ <target name="build.article" unless="article.skip">
+ <tstamp>
+ <format property="start.time" pattern="y-M-D-H-m-s-S" />
+ </tstamp>
+
<mkdir dir="${article.destdir}" />
<copy todir="${article.destdir}" verbose="true" failonerror="false">
<fileset dir="${article.sources}" defaultexcludes="true">
@@ -291,18 +296,23 @@
failonerror="true"
private="true">
- <doclet name="org.eclipse.emf.cdo.releng.doc.article.ArticleDoclet"
- path="plugins/org.eclipse.emf.cdo.releng.doc/bin;${supplemental}/bin">
+ <doclet name="org.eclipse.emf.cdo.releng.doc.article.impl.ArticleDoclet"
+ path="plugins/org.eclipse.emf.cdo.releng.doc/bin;${supplemental}/bin;C:\develop\ws\cdo\_target\plugins\org.eclipse.emf.ecore_2.7.0.v20110605-0747.jar;C:\develop\ws\cdo\_target\plugins\org.eclipse.emf.common_2.7.0.v20110605-0747.jar">
+ <param name="-starttime" value="${start.time}" />
<param name="-basefolder" value="${basedir}" />
- <param name="-outputpath" value="plugins/org.eclipse.emf.cdo.doc/html" />
+ <param name="-project" value="org.eclipse.emf.cdo.doc" />
</doclet>
- <fileset dir="${article.sources}" defaultexcludes="yes">
- <include name="**/*.java" />
+ <fileset dir="plugins">
+ <include name="org.eclipse.emf.cdo.doc/src/**/*.java" />
+ <include name="org.eclipse.net4j.db.doc/src/**/*.java" />
+ <include name="org.eclipse.net4j.doc/src/**/*.java" />
+ <include name="org.eclipse.net4j.util.doc/src/**/*.java" />
</fileset>
<package name="org.eclipse.emf.cdo.doc.connectors" />
<package name="org.eclipse.emf.cdo.doc.sessions" />
+ <package name="org.eclipse.net4j.util.doc" />
</javadoc>
</target>
diff --git a/plugins/org.eclipse.emf.cdo.doc/html/org/eclipse/emf/cdo/doc/connectors/CreatingTransportConnections.html b/plugins/org.eclipse.emf.cdo.doc/html/org/eclipse/emf/cdo/doc/connectors/CreatingTransportConnections.html
deleted file mode 100644
index bd50897caa..0000000000
--- a/plugins/org.eclipse.emf.cdo.doc/html/org/eclipse/emf/cdo/doc/connectors/CreatingTransportConnections.html
+++ /dev/null
@@ -1,154 +0,0 @@
-<h1>Creating Transport Connections</h1>
-<a name="CreatingTransportConnections"/><p>
- This tutorial outlines the steps needed to create a Net4j IConnector and connect it to an IAcceptor.
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam eu nibh in erat dapibus accumsan. Aenean cursus
- lacinia dictum. Mauris non sem sapien. Vivamus sem ante, posuere a rhoncus ac, varius in nisi. Sed pulvinar urna ac
- est iaculis mattis. Ut eget massa felis, nec volutpat purus. In id aliquet mi. Duis euismod sapien sollicitudin nisi
- vestibulum nec vulputate urna euismod. Proin pulvinar ornare nunc, ac auctor elit placerat eget. Integer eu erat ac
- risus ultricies mattis vel nec nunc. Proin venenatis tellus sit amet dui congue nec vehicula urna sollicitudin. Donec
- porta, risus eu auctor semper, ante lectus lobortis sem, a luctus diam dui eu sapien. Sed at metus et dolor tincidunt
- convallis id a est. Donec quam nisl, scelerisque a feugiat id, mattis vel urna. Suspendisse facilisis, libero ac
- ultricies dictum, mi sem feugiat purus, ac aliquam metus purus sed leo. Sed a viverra metus.
-
-<h2>Select a Transport Type</h2>
-<a name="CreatingTransportConnections.SelectTransportType"/><p>
- Currently supported transport types are:
- <ul>
- <li><b>JVM</b> to connect to an IJVMAcceptor in the same Java Virtual Machine.
- <li><b>TCP</b> to connect to an ITCPAcceptor by means of a SocketChannel.
- <li><b>SSL</b> an extension to the TCP transport that adds TLS/SSL security.
- <li><b>HTTP</b> to connect to an IHTTPAcceptor that is made available by a servlet.
- </ul>
- Continue with <a href="../../../../../../../../plugins/org.eclipse.emf.cdo.doc/src/org/eclipse/emf/cdo/doc/sessions/ConnectingToRepositories.html#ConnectingToRepositories.SetConnectionTimeout">Set Connection Timeout</a>.
-
-<h2>Setup a Wiring Container</h2>
-<a name="CreatingTransportConnections.SetupWiringContainer"/><p>
- Ut eget massa felis, nec volutpat purus. In id aliquet mi. Duis euismod sapien sollicitudin nisi vestibulum nec
- vulputate urna euismod. Proin pulvinar ornare nunc, ac auctor elit placerat eget. Integer eu erat ac risus
- ultricies mattis vel nec nunc.
-
-<div class="snippet" style="margin-left:24px;" align="left">
- <a name="snippet_snippet1"/>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><img src="../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/editor-top-left.png"/></td>
- <td style="background-image:url(../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/editor-top1.png); background-repeat:repeat-x;" width="1px"><font face="Segoe UI,Arial" size="-1">snippet1.java</font></td>
- <td width="1px"><img src="../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/editor-close.png"/></td>
- <td style="background-image:url(../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/editor-top2.png); background-repeat:repeat-x;">&nbsp;</td>
- <td><img src="../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/editor-top-right.png"/></td>
- </tr>
- <tr>
- <td style="background-image:url(../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/editor-left.png); background-repeat:repeat-y;">&nbsp;</td>
- <td colspan="3" align="left" valign="top" nowrap>
- <div style="margin:10px 0px 10px 0px;">
- <code>
- <font color="#3f7f5f">//&nbsp;Create&nbsp;a&nbsp;dedicated&nbsp;container&nbsp;instance</font><br/>
- IManagedContainer&nbsp;container&nbsp;=&nbsp;<a name="callout_snippet1_1_code" href="callout_snippet1_1"><img src="../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/callout-1.png"/></a>&nbsp;<font color="#7f0055"><b>new&nbsp;</b></font>ManagedContainer();<br/>
- <br/>
- <font color="#3f7f5f">//&nbsp;Register&nbsp;your&nbsp;custom&nbsp;factories</font><br/>
- container.registerFactory(&nbsp;<a name="callout_snippet1_2_code" href="callout_snippet1_2"><img src="../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/callout-2.png"/></a>&nbsp;<font color="#7f0055"><b>new&nbsp;</b></font>Factory(<font color="#2a00ff">&#34;org.eclipse.net4j.connectors&#34;</font>,&nbsp;<font color="#2a00ff">&#34;jms&#34;</font>)<br/>
- {<br/>
- &nbsp;&nbsp;<font color="#7f0055"><b>public&nbsp;</b></font>IConnector&nbsp;create(String&nbsp;description)&nbsp;<font color="#7f0055"><b>throws&nbsp;</b></font>ProductCreationException<br/>
- &nbsp;&nbsp;{<br/>
- &nbsp;&nbsp;&nbsp;&nbsp;<font color="#7f0055"><b>return&nbsp;</b></font><a name="callout_snippet1_3_code" href="callout_snippet1_3"><img src="../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/callout-3.png"/></a>&nbsp;<font color="#7f0055"><b>new&nbsp;</b></font>JMSConnector(description);<br/>
- &nbsp;&nbsp;}<br/>
- });<br/>
- <br/>
- <font color="#3f7f5f">//&nbsp;Use&nbsp;utility&nbsp;classes&nbsp;to&nbsp;register&nbsp;additional&nbsp;factories</font><br/>
- Net4jUtil.prepareContainer(container);<br/>
- TCPUtil.prepareContainer(container);<br/>
- <br/>
- <font color="#3f7f5f">//&nbsp;Do&nbsp;not&nbsp;forget&nbsp;to&nbsp;activate&nbsp;the&nbsp;container&nbsp;before&nbsp;you&nbsp;use&nbsp;it</font><br/>
- <a name="callout_snippet1_4_code" href="callout_snippet1_4"><img src="../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/callout-4.png"/></a>&nbsp;container.activate();
- </code>
- </div>
- </td>
- <td style="background-image:url(../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/editor-right.png); background-repeat:repeat-y;">&nbsp;</td>
- </tr>
- <tr>
- <td><img src="../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/editor-bottom-left.png"/></td>
- <td style="background-image:url(../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/editor-bottom.png); background-repeat:repeat-x;" colspan="3">&nbsp;</td>
- <td><img src="../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/editor-bottom-right.png"/></td>
- </tr>
- </table>
-</div>
-<p/>
-<div style="margin-left:24px;"><a name="callout_snippet1_1" href="callout_snippet1_1_code"><img src="../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/callout-1.png"/></a>&nbsp;Create a searate IManagedContainer.</div>
-<div style="margin-left:24px;"><a name="callout_snippet1_2" href="callout_snippet1_2_code"><img src="../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/callout-2.png"/></a>&nbsp;Create a factory with the <i>productGroup</i> "org.eclipse.net4j.connectors".</div>
-<div style="margin-left:24px;"><a name="callout_snippet1_3" href="callout_snippet1_3_code"><img src="../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/callout-3.png"/></a>&nbsp;Create a JMS connector.</div>
-<div style="margin-left:24px;"><a name="callout_snippet1_4" href="callout_snippet1_4_code"><img src="../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/callout-4.png"/></a>&nbsp;The new container can not be used when inactive.</div>
-<p/>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit.
- Etiam eu nibh in erat dapibus accumsan. Aenean cursus lacinia dictum. Mauris non sem sapien. Vivamus sem ante,
- posuere a rhoncus ac, varius in nisi. Sed pulvinar urna ac est iaculis mattis. Ut eget massa felis, nec volutpat
- purus. In id aliquet mi. Duis euismod sapien sollicitudin nisi vestibulum nec vulputate urna euismod. Proin
- pulvinar ornare nunc, ac auctor elit placerat eget. Integer eu erat ac risus ultricies mattis vel nec nunc. Proin
- venenatis tellus sit amet dui congue nec vehicula urna sollicitudin. Donec porta, risus eu auctor semper, ante
- lectus lobortis sem, a luctus diam dui eu sapien. Sed at metus et dolor tincidunt convallis id a est. Donec quam
- nisl, scelerisque a feugiat id, mattis vel urna. Suspendisse facilisis, libero ac ultricies dictum, mi sem feugiat
- purus, ac aliquam metus purus sed leo. Sed a viverra metus.
-
-<h2>Add Configuration Parameters</h2>
-<a name="CreatingTransportConnections.AddConfigurationParameters"/>
-
-<h3>Set the Buffer Capacity</h3>
-<a name="CreatingTransportConnections.AddConfigurationParameters.SetBufferCapacity"/><p>
-
-
-<div class="snippet" style="margin-left:24px;" align="left">
- <a name="snippet_JMSConnector"/>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><img src="../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/editor-top-left.png"/></td>
- <td style="background-image:url(../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/editor-top1.png); background-repeat:repeat-x;" width="1px"><font face="Segoe UI,Arial" size="-1">JMSConnector.java</font></td>
- <td width="1px"><img src="../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/editor-close.png"/></td>
- <td style="background-image:url(../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/editor-top2.png); background-repeat:repeat-x;">&nbsp;</td>
- <td><img src="../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/editor-top-right.png"/></td>
- </tr>
- <tr>
- <td style="background-image:url(../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/editor-left.png); background-repeat:repeat-y;">&nbsp;</td>
- <td colspan="3" align="left" valign="top" nowrap>
- <div style="margin:10px 0px 10px 0px;">
- <code>
- <font color="#7f0055"><b>public&nbsp;class&nbsp;</b></font>JMSConnector&nbsp;<font color="#7f0055"><b>extends&nbsp;</b></font>Connector<br/>
- {<br/>
- &nbsp;&nbsp;<font color="#7f0055"><b>public&nbsp;</b></font>JMSConnector(String&nbsp;description)<br/>
- &nbsp;&nbsp;{<br/>
- &nbsp;&nbsp;}<br/>
- <br/>
- &nbsp;&nbsp;<font color="#7f0055"><b>public&nbsp;</b></font><font color="#7f0055"><b>void&nbsp;</b></font>multiplexChannel(InternalChannel&nbsp;<a name="callout_JMSConnector_1_code" href="callout_JMSConnector_1"><img src="../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/callout-1.png"/></a>&nbsp;channel)<br/>
- &nbsp;&nbsp;{<br/>
- &nbsp;&nbsp;}<br/>
- <br/>
- &nbsp;&nbsp;&hellip;<br/>
- }
- </code>
- </div>
- </td>
- <td style="background-image:url(../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/editor-right.png); background-repeat:repeat-y;">&nbsp;</td>
- </tr>
- <tr>
- <td><img src="../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/editor-bottom-left.png"/></td>
- <td style="background-image:url(../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/editor-bottom.png); background-repeat:repeat-x;" colspan="3">&nbsp;</td>
- <td><img src="../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/editor-bottom-right.png"/></td>
- </tr>
- </table>
-</div>
-<p/>
-<div style="margin-left:24px;"><a name="callout_JMSConnector_1" href="callout_JMSConnector_1_code"><img src="../../../../../../../../org.eclipse.emf.cdo.releng.doc/resources/callout-1.png"/></a>&nbsp;The channel must not be <code>null</code>.</div>
-<p/>
-
-
-<h3>Set the Connection Timeout</h3>
-<a name="CreatingTransportConnections.AddConfigurationParameters.SetConnectionTimeout"/><p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam eu nibh in erat dapibus accumsan. Aenean cursus
- lacinia dictum. Mauris non sem sapien. Vivamus sem ante, posuere a rhoncus ac, varius in nisi. Sed pulvinar urna
- ac est iaculis mattis. Ut eget massa felis, nec volutpat purus. In id aliquet mi. Duis euismod sapien
- sollicitudin nisi vestibulum nec vulputate urna euismod. Proin pulvinar ornare nunc, ac auctor elit placerat
- eget. Integer eu erat ac risus ultricies mattis vel nec nunc. Proin venenatis tellus sit amet dui congue nec
- vehicula urna sollicitudin. Donec porta, risus eu auctor semper, ante lectus lobortis sem, a luctus diam dui eu
- sapien. Sed at metus et dolor tincidunt convallis id a est. Donec quam nisl, scelerisque a feugiat id, mattis vel
- urna. Suspendisse facilisis, libero ac ultricies dictum, mi sem feugiat purus, ac aliquam metus purus sed leo.
- Sed a viverra metus.
-
diff --git a/plugins/org.eclipse.emf.cdo.doc/html/org/eclipse/emf/cdo/doc/sessions/ConnectingToRepositories.html b/plugins/org.eclipse.emf.cdo.doc/html/org/eclipse/emf/cdo/doc/sessions/ConnectingToRepositories.html
deleted file mode 100644
index efe0a6b9d7..0000000000
--- a/plugins/org.eclipse.emf.cdo.doc/html/org/eclipse/emf/cdo/doc/sessions/ConnectingToRepositories.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<h1>Connecting To Repositories</h1>
-<a name="ConnectingToRepositories"/>
-
-<h2>Set Buffer Capacity</h2>
-<a name="ConnectingToRepositories.SetBufferCapacity"/>
-
-<h2>Set Connection Timeout</h2>
-<a name="ConnectingToRepositories.SetConnectionTimeout"/>
-
diff --git a/plugins/org.eclipse.emf.cdo.doc/src/org/eclipse/emf/cdo/doc/connectors/CreatingTransportConnections.java b/plugins/org.eclipse.emf.cdo.doc/src/org/eclipse/emf/cdo/doc/connectors/CreatingTransportConnections.java
index 20cee73393..47da9d30ec 100644
--- a/plugins/org.eclipse.emf.cdo.doc/src/org/eclipse/emf/cdo/doc/connectors/CreatingTransportConnections.java
+++ b/plugins/org.eclipse.emf.cdo.doc/src/org/eclipse/emf/cdo/doc/connectors/CreatingTransportConnections.java
@@ -65,15 +65,15 @@ public class CreatingTransportConnections
* <p>
* Ut eget massa felis, nec volutpat purus. In id aliquet mi. Duis euismod sapien sollicitudin nisi vestibulum nec
* vulputate urna euismod. Proin pulvinar ornare nunc, ac auctor elit placerat eget. Integer eu erat ac risus
- * ultricies mattis vel nec nunc. {@link Snippets#snippet1()} Lorem ipsum dolor sit amet, consectetur adipiscing elit.
- * Etiam eu nibh in erat dapibus accumsan. Aenean cursus lacinia dictum. Mauris non sem sapien. Vivamus sem ante,
- * posuere a rhoncus ac, varius in nisi. Sed pulvinar urna ac est iaculis mattis. Ut eget massa felis, nec volutpat
- * purus. In id aliquet mi. Duis euismod sapien sollicitudin nisi vestibulum nec vulputate urna euismod. Proin
- * pulvinar ornare nunc, ac auctor elit placerat eget. Integer eu erat ac risus ultricies mattis vel nec nunc. Proin
- * venenatis tellus sit amet dui congue nec vehicula urna sollicitudin. Donec porta, risus eu auctor semper, ante
- * lectus lobortis sem, a luctus diam dui eu sapien. Sed at metus et dolor tincidunt convallis id a est. Donec quam
- * nisl, scelerisque a feugiat id, mattis vel urna. Suspendisse facilisis, libero ac ultricies dictum, mi sem feugiat
- * purus, ac aliquam metus purus sed leo. Sed a viverra metus.
+ * ultricies mattis vel nec nunc. {@link Snippets#snippet1() ContainerSetup.java} Lorem ipsum dolor sit amet,
+ * consectetur adipiscing elit. Etiam eu nibh in erat dapibus accumsan. Aenean cursus lacinia dictum. Mauris non sem
+ * sapien. Vivamus sem ante, posuere a rhoncus ac, varius in nisi. Sed pulvinar urna ac est iaculis mattis. Ut eget
+ * massa felis, nec volutpat purus. In id aliquet mi. Duis euismod sapien sollicitudin nisi vestibulum nec vulputate
+ * urna euismod. Proin pulvinar ornare nunc, ac auctor elit placerat eget. Integer eu erat ac risus ultricies mattis
+ * vel nec nunc. Proin venenatis tellus sit amet dui congue nec vehicula urna sollicitudin. Donec porta, risus eu
+ * auctor semper, ante lectus lobortis sem, a luctus diam dui eu sapien. Sed at metus et dolor tincidunt convallis id
+ * a est. Donec quam nisl, scelerisque a feugiat id, mattis vel urna. Suspendisse facilisis, libero ac ultricies
+ * dictum, mi sem feugiat purus, ac aliquam metus purus sed leo. Sed a viverra metus.
*/
public class SetupWiringContainer
{
@@ -114,11 +114,14 @@ public class CreatingTransportConnections
// ----------------------------------------------------------------------------- //
+/**
+ * @snippet
+ */
class Snippets
{
/**
- * @callout Create a searate {@link IManagedContainer}.
- * @callout Create a factory with the <i>productGroup</i> "org.eclipse.net4j.connectors".
+ * @callout Create a separate {@link IManagedContainer}.
+ * @callout Create a factory of <i>type</i> "jms" in the <i>productGroup</i> "org.eclipse.net4j.connectors".
* @callout Create a JMS connector.
* @callout The new container can not be used when inactive.
*/
@@ -145,7 +148,7 @@ class Snippets
}
/**
- * @example
+ * @snippet
* @callout The channel must not be <code>null</code>.
*/
public class JMSConnector extends Connector
diff --git a/plugins/org.eclipse.emf.cdo.edit/build.properties b/plugins/org.eclipse.emf.cdo.edit/build.properties
index 80a9891187..a1a7f0b82b 100644
--- a/plugins/org.eclipse.emf.cdo.edit/build.properties
+++ b/plugins/org.eclipse.emf.cdo.edit/build.properties
@@ -22,4 +22,4 @@ output.. = bin/
src.includes = about.html,\
copyright.txt
-org.eclipse.emf.cdo.releng.javadoc.project = org.eclipse.emf.cdo.doc
+doc.project = org.eclipse.emf.cdo.doc
diff --git a/plugins/org.eclipse.emf.cdo.location/build.properties b/plugins/org.eclipse.emf.cdo.location/build.properties
index e47f4a10ff..fcf2463671 100644
--- a/plugins/org.eclipse.emf.cdo.location/build.properties
+++ b/plugins/org.eclipse.emf.cdo.location/build.properties
@@ -20,4 +20,4 @@ bin.includes = META-INF/,\
src.includes = about.html,\
copyright.txt
-org.eclipse.emf.cdo.releng.javadoc.project = org.eclipse.emf.cdo.doc
+doc.project = org.eclipse.emf.cdo.doc
diff --git a/plugins/org.eclipse.emf.cdo.net4j/build.properties b/plugins/org.eclipse.emf.cdo.net4j/build.properties
index 8eca4d7b93..3e02e4708e 100644
--- a/plugins/org.eclipse.emf.cdo.net4j/build.properties
+++ b/plugins/org.eclipse.emf.cdo.net4j/build.properties
@@ -22,4 +22,4 @@ jars.compile.order = .
source.. = src/
output.. = bin/
-org.eclipse.emf.cdo.releng.javadoc.project = org.eclipse.emf.cdo.doc
+doc.project = org.eclipse.emf.cdo.doc
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.doc/.settings/org.eclipse.core.resources.prefs
index df1928bafe..733c1cef97 100644
--- a/plugins/org.eclipse.emf.cdo.releng.doc/.settings/org.eclipse.core.resources.prefs
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/.settings/org.eclipse.core.resources.prefs
@@ -1,4 +1,4 @@
-#Mon Jul 11 16:02:40 CEST 2011
+#Tue Sep 13 09:26:41 CEST 2011
eclipse.preferences.version=1
encoding//model/org.eclipse.emf.cdo.defs.ecorediag=UTF-8
encoding/buckminster.cspex=UTF-8
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.doc/META-INF/MANIFEST.MF
index 8d014865e6..b4173b59b7 100644
--- a/plugins/org.eclipse.emf.cdo.releng.doc/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/META-INF/MANIFEST.MF
@@ -1,14 +1,18 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: CDO Release Engineering Documentation
-Bundle-SymbolicName: org.eclipse.emf.cdo.releng.doc
+Bundle-SymbolicName: org.eclipse.emf.cdo.releng.doc;singleton:=true
Bundle-Version: 4.1.0.qualifier
Bundle-Vendor: Eclipse Modeling Project
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Require-Bundle: org.eclipse.osgi.util;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.osgi;bundle-version="[3.0.0,4.0.0)"
+ org.eclipse.osgi;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)"
Export-Package: org.eclipse.emf.cdo.releng.doc;version="4.1.0";x-internal:=true,
org.eclipse.emf.cdo.releng.doc.article;version="4.1.0";x-internal:=true,
+ org.eclipse.emf.cdo.releng.doc.article.impl;version="4.1.0";x-internal:=true,
+ org.eclipse.emf.cdo.releng.doc.article.old;version="4.1.0";x-internal:=true,
+ org.eclipse.emf.cdo.releng.doc.article.old.util;version="4.1.0";x-internal:=true,
org.eclipse.emf.cdo.releng.doc.article.util;version="4.1.0";x-internal:=true,
org.eclipse.emf.cdo.releng.doc.java;version="4.1.0";x-internal:=true
Bundle-ClassPath: .
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/build.properties b/plugins/org.eclipse.emf.cdo.releng.doc/build.properties
index cf9b813b4f..a5e5ccf71b 100644
--- a/plugins/org.eclipse.emf.cdo.releng.doc/build.properties
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/build.properties
@@ -11,7 +11,9 @@ jars.compile.order = .
source.. = src/
output.. = bin/
bin.includes = .,\
- META-INF/
+ META-INF/,\
+ plugin.properties,\
+ plugin.xml
src.includes = CDO Generate JavaDocs.launch,\
debug/frame.html,\
debug/index.html,\
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/buildTemplate.ant b/plugins/org.eclipse.emf.cdo.releng.doc/buildTemplate.ant
index 4687659df1..8096a23c00 100644
--- a/plugins/org.eclipse.emf.cdo.releng.doc/buildTemplate.ant
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/buildTemplate.ant
@@ -7,13 +7,15 @@
<property name="emf.version" value="2.7.0" />
<property name="platform.version" value="juno" />
- <property name="javadoc.project" value="plugins/${PROJECT-NAME}" />
- <property file="${javadoc.project}/plugin.properties" />
+ <property name="project.path" value="plugins/${PROJECT-NAME}" />
+ <property file="${project.path}/plugin.properties" />
+ <property file="${project.path}/build.properties" />
<property name="javadoc.name" value="${pluginName}" />
- <property name="javadoc.destdir" value="${javadoc.project}/javadoc" />
- <property name="article.destdir" value="${javadoc.project}/html" />
- <property name="article.sources" value="${javadoc.project}/src" />
+ <property name="javadoc.destdir" value="${project.path}/javadoc" />
+ <property name="article.destdir" value="${project.path}/html" />
+ <property name="article.sources" value="${project.path}/src" />
<property name="supplemental" value="/develop/bin/org.eclipse.emf.cdo.releng.doc.supplemental" />
+ <!-- ARTICLE SKIP -->
<path id="javadoc.classpath">
<fileset dir="_target/plugins">
@@ -70,7 +72,7 @@
notree="true"
windowtitle="${javadoc.name}"
doctitle="&lt;h1>${javadoc.name}&lt;/h1>"
- overview="${javadoc.project}/overview.html"
+ overview="${project.path}/overview.html"
bottom="&lt;i>Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.&lt;/i>">
<doclet name="org.jboss.apiviz.APIviz" path="${supplemental}/bin">
@@ -88,7 +90,7 @@
<link href="http://download.oracle.com/javase/${jdk.version}/docs/api" />
<link href="http://help.eclipse.org/${platform.version}/topic/org.eclipse.platform.doc.isv/reference/api" />
<link href="http://download.eclipse.org/modeling/emf/emf/javadoc/${emf.version}" />
- <!-- DEPENDENCIES -->
+ <!-- JAVADOC DEPENDENCIES -->
<tag name="ADDED" description="Added" />
<tag name="Singleton" description="Singleton" />
@@ -105,7 +107,7 @@
<!-- COPY DOC FILES -->
<copy todir="${javadoc.destdir}/resources" verbose="true" failonerror="false">
- <fileset dir="${javadoc.project}/resources" defaultexcludes="true">
+ <fileset dir="${project.path}/resources" defaultexcludes="true">
<include name="**/*" />
<exclude name="README.txt" />
</fileset>
@@ -138,7 +140,11 @@
</java>
</target>
- <target name="build.article">
+ <target name="build.article" unless="article.skip">
+ <tstamp>
+ <format property="start.time" pattern="y-M-D-H-m-s-S" />
+ </tstamp>
+
<mkdir dir="${article.destdir}" />
<copy todir="${article.destdir}" verbose="true" failonerror="false">
<fileset dir="${article.sources}" defaultexcludes="true">
@@ -154,18 +160,19 @@
failonerror="true"
private="true">
- <doclet name="org.eclipse.emf.cdo.releng.doc.article.ArticleDoclet"
- path="plugins/org.eclipse.emf.cdo.releng.doc/bin;${supplemental}/bin">
+ <doclet name="org.eclipse.emf.cdo.releng.doc.article.impl.ArticleDoclet"
+ path="plugins/org.eclipse.emf.cdo.releng.doc/bin;${supplemental}/bin;C:\develop\ws\cdo\_target\plugins\org.eclipse.emf.ecore_2.7.0.v20110605-0747.jar;C:\develop\ws\cdo\_target\plugins\org.eclipse.emf.common_2.7.0.v20110605-0747.jar">
+ <param name="-starttime" value="${start.time}" />
<param name="-basefolder" value="${basedir}" />
- <param name="-outputpath" value="plugins/org.eclipse.emf.cdo.doc/html" />
+ <param name="-project" value="${PROJECT-NAME}" />
</doclet>
- <fileset dir="${article.sources}" defaultexcludes="yes">
- <include name="**/*.java" />
+ <fileset dir="plugins">
+ <include name="${PROJECT-NAME}/src/**/*.java" />
+ <!-- ARTICLE DEPENDENCIES -->
</fileset>
- <package name="org.eclipse.emf.cdo.doc.connectors" />
- <package name="org.eclipse.emf.cdo.doc.sessions" />
+ <!-- ARTICLE PACKAGES -->
</javadoc>
</target>
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/model/article.ecore b/plugins/org.eclipse.emf.cdo.releng.doc/model/article.ecore
new file mode 100644
index 0000000000..8454e8abb2
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/model/article.ecore
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="article"
+ nsURI="http://www.eclipse.org/ARTICLE/1.0" nsPrefix="article">
+ <eClassifiers xsi:type="ecore:EClass" name="Documentation" eSuperTypes="#//StructuralElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="context" lowerBound="1"
+ eType="#//Context" resolveProxies="false" eOpposite="#//Context/documentations"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="embeddableElements" upperBound="-1"
+ eType="#//EmbeddableElement" containment="true" resolveProxies="false" eOpposite="#//EmbeddableElement/documentation"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="dependencies" upperBound="-1"
+ eType="#//Documentation" resolveProxies="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="project" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" changeable="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Context">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseFolder" lowerBound="1"
+ eType="#//File" changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="project" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="documentations" lowerBound="1"
+ upperBound="-1" eType="#//Documentation" containment="true" resolveProxies="false"
+ eOpposite="#//Documentation/context"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="root" lowerBound="1" eType="#//RootDoc"
+ changeable="false" volatile="true" transient="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="RootDoc" instanceClassName="com.sun.javadoc.RootDoc"
+ serializable="false"/>
+ <eClassifiers xsi:type="ecore:EDataType" name="File" instanceClassName="java.io.File"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Category" eSuperTypes="#//Body"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Article" eSuperTypes="#//Chapter"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Chapter" eSuperTypes="#//Body">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="article" lowerBound="1"
+ eType="#//Article" changeable="false" volatile="true" transient="true" derived="true"
+ resolveProxies="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Snippet" eSuperTypes="#//EmbeddableElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="callouts" upperBound="-1"
+ eType="#//Callout" containment="true" resolveProxies="false" eOpposite="#//Callout/snippet"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Diagram" eSuperTypes="#//BodyElement">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="code" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Factory" eSuperTypes="#//EmbeddableElement"/>
+ <eClassifiers xsi:type="ecore:EClass" name="JavaElement" eSuperTypes="#//LinkTarget"/>
+ <eClassifiers xsi:type="ecore:EClass" name="StructuralElement" abstract="true" eSuperTypes="#//LinkTarget">
+ <eOperations name="generate"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="children" upperBound="-1"
+ eType="#//StructuralElement" containment="true" resolveProxies="false" eOpposite="#//StructuralElement/parent"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//StructuralElement"
+ resolveProxies="false" eOpposite="#//StructuralElement/children"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="path" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fullPath" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" changeable="false"
+ volatile="true" transient="true" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="outputFile" lowerBound="1"
+ eType="#//File" changeable="false" volatile="true" transient="true" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="documentation" lowerBound="1"
+ eType="#//Documentation" changeable="false" volatile="true" transient="true"
+ derived="true" resolveProxies="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="doc" lowerBound="1" eType="#//Doc"
+ changeable="false" volatile="true" transient="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkTarget" abstract="true" eSuperTypes="#//Identifiable">
+ <eOperations name="linkFrom" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eParameters name="source" lowerBound="1" eType="#//StructuralElement"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="label" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false" volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Callout">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="snippet" lowerBound="1"
+ eType="#//Snippet" resolveProxies="false" eOpposite="#//Snippet/callouts"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elements" lowerBound="1"
+ upperBound="-1" eType="#//BodyElement" containment="true" resolveProxies="false"
+ eOpposite="#//BodyElement/callout"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="Doc" instanceClassName="com.sun.javadoc.Doc"
+ serializable="false"/>
+ <eClassifiers xsi:type="ecore:EClass" name="EmbeddableElement" abstract="true" eSuperTypes="#//Identifiable">
+ <eOperations name="getHtml" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eParameters name="embedder" lowerBound="1" eType="#//Embedding"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="documentation" lowerBound="1"
+ eType="#//Documentation" resolveProxies="false" eOpposite="#//Documentation/embeddableElements"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ExternalTarget" eSuperTypes="#//LinkTarget"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Identifiable" abstract="true" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
+ changeable="false" volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Body" abstract="true" eSuperTypes="#//StructuralElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1"
+ eType="#//BodyElement" containment="true" resolveProxies="false" eOpposite="#//BodyElement/body"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="html" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="category" eType="#//Category"
+ changeable="false" volatile="true" transient="true" derived="true" resolveProxies="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BodyElement" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Body" resolveProxies="false"
+ eOpposite="#//Body/elements"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="html" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="callout" eType="#//Callout"
+ resolveProxies="false" eOpposite="#//Callout/elements"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Text" eSuperTypes="#//BodyElement">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Link" eSuperTypes="#//BodyElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#//LinkTarget"
+ resolveProxies="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Embedding" eSuperTypes="#//BodyElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ eType="#//EmbeddableElement" resolveProxies="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SourceCode" eSuperTypes="#//ExternalTarget"/>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/model/article.ecorediag b/plugins/org.eclipse.emf.cdo.releng.doc/model/article.ecorediag
new file mode 100644
index 0000000000..af51b9b7d5
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/model/article.ecorediag
@@ -0,0 +1,745 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_x6vDMdxNEeCpIJpgvmzkYA" type="EcoreTools" name="article" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_zVqwINxNEeCpIJpgvmzkYA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_zVtMYNxNEeCpIJpgvmzkYA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_zVvooNxNEeCpIJpgvmzkYA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_umgSsNyXEeCASdfyEtL6gA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="article.ecore#//Documentation/project"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_umgSsdyXEeCASdfyEtL6gA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_zVvoodxNEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zVvootxNEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zVwPsNxNEeCpIJpgvmzkYA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_zVw2wNxNEeCpIJpgvmzkYA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_zVw2wdxNEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zVw2wtxNEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zVw2w9xNEeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_zVqwIdxNEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="10011046" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="article.ecore#//Documentation"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zVqwItxNEeCpIJpgvmzkYA" x="480" y="440" width="157" height="70"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_9P3IYNxNEeCpIJpgvmzkYA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_9P3vcNxNEeCpIJpgvmzkYA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_9P3vcdxNEeCpIJpgvmzkYA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_DQOIUNxOEeCpIJpgvmzkYA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="article.ecore#//Context/baseFolder"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DQOIUdxOEeCpIJpgvmzkYA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FM9h0NxOEeCpIJpgvmzkYA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="article.ecore#//Context/project"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FM9h0dxOEeCpIJpgvmzkYA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_LCUawNySEeCASdfyEtL6gA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="article.ecore#//Context/root"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LCUawdySEeCASdfyEtL6gA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_9P3vctxNEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9P3vc9xNEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9P3vdNxNEeCpIJpgvmzkYA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_9P4WgNxNEeCpIJpgvmzkYA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_9P4WgdxNEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9P4WgtxNEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9P4Wg9xNEeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_9P3IYdxNEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="12632256" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="article.ecore#//Context"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9P3IYtxNEeCpIJpgvmzkYA" x="496" y="590"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_9akHENxOEeCpIJpgvmzkYA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_9alVMNxOEeCpIJpgvmzkYA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_9alVMdxOEeCpIJpgvmzkYA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_9alVMtxOEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9alVM9xOEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9alVNNxOEeCpIJpgvmzkYA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_9alVNdxOEeCpIJpgvmzkYA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_9alVNtxOEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9alVN9xOEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9alVONxOEeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_9akHEdxOEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="10011046" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="article.ecore#//Category"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9akHEtxOEeCpIJpgvmzkYA" x="812" y="785"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-tAmYNxOEeCpIJpgvmzkYA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_-tAmY9xOEeCpIJpgvmzkYA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_-tBNcNxOEeCpIJpgvmzkYA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_-tBNcdxOEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-tBNctxOEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-tBNc9xOEeCpIJpgvmzkYA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-tBNdNxOEeCpIJpgvmzkYA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_-tBNddxOEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-tBNdtxOEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-tBNd9xOEeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_-tAmYdxOEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="10011046" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="article.ecore#//Article"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-tAmYtxOEeCpIJpgvmzkYA" x="669" y="869"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__ov14NxOEeCpIJpgvmzkYA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="__owc8NxOEeCpIJpgvmzkYA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="__owc8dxOEeCpIJpgvmzkYA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="__owc8txOEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__owc89xOEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__owc9NxOEeCpIJpgvmzkYA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__owc9dxOEeCpIJpgvmzkYA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="__owc9txOEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__owc99xOEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__owc-NxOEeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="__ov14dxOEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="10011046" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="article.ecore#//Chapter"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__ov14txOEeCpIJpgvmzkYA" x="669" y="785"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Aoro4NxPEeCpIJpgvmzkYA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_AosP8NxPEeCpIJpgvmzkYA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_Aos3ANxPEeCpIJpgvmzkYA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Aos3AdxPEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Aos3AtxPEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Aos3A9xPEeCpIJpgvmzkYA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Aos3BNxPEeCpIJpgvmzkYA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Aos3BdxPEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Aos3BtxPEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Aos3B9xPEeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_Aoro4dxPEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="article.ecore#//Snippet"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Aoro4txPEeCpIJpgvmzkYA" x="55" y="561"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Bj9lYNxPEeCpIJpgvmzkYA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_Bj9lY9xPEeCpIJpgvmzkYA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_Bj-McNxPEeCpIJpgvmzkYA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_GitO8NxdEeCpIJpgvmzkYA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="article.ecore#//Diagram/code"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Git2ANxdEeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Bj-McdxPEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Bj-MctxPEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Bj-Mc9xPEeCpIJpgvmzkYA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Bj-MdNxPEeCpIJpgvmzkYA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Bj-MddxPEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Bj-MdtxPEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Bj-Md9xPEeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_Bj9lYdxPEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="article.ecore#//Diagram"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Bj9lYtxPEeCpIJpgvmzkYA" x="436" y="777"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_C44w8NxPEeCpIJpgvmzkYA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_C44w89xPEeCpIJpgvmzkYA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_C45YANxPEeCpIJpgvmzkYA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_C45YAdxPEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_C45YAtxPEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_C45YA9xPEeCpIJpgvmzkYA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_C45YBNxPEeCpIJpgvmzkYA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_C45YBdxPEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_C45YBtxPEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_C45YB9xPEeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_C44w8dxPEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="article.ecore#//Factory"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_C44w8txPEeCpIJpgvmzkYA" x="240" y="561"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_EOyM4NxPEeCpIJpgvmzkYA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_EOyz8NxPEeCpIJpgvmzkYA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_EOyz8dxPEeCpIJpgvmzkYA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_EOyz8txPEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_EOyz89xPEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_EOyz9NxPEeCpIJpgvmzkYA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_EOzbANxPEeCpIJpgvmzkYA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_EOzbAdxPEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_EOzbAtxPEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_EOzbA9xPEeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_EOyM4dxPEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="article.ecore#//JavaElement"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EOyM4txPEeCpIJpgvmzkYA" x="683" y="265" width="127"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_RFRXINxPEeCpIJpgvmzkYA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_RFR-MNxPEeCpIJpgvmzkYA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_RFR-MdxPEeCpIJpgvmzkYA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_LjDu8NxTEeCpIJpgvmzkYA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="article.ecore#//StructuralElement/title"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LjDu8dxTEeCpIJpgvmzkYA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_MRqq8NxfEeCpIJpgvmzkYA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="article.ecore#//StructuralElement/path"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MRqq8dxfEeCpIJpgvmzkYA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_jtfrsdztEeCBarmrqehCKg" type="2001">
+ <element xmi:type="ecore:EAttribute" href="article.ecore#//StructuralElement/fullPath"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jtfrstztEeCBarmrqehCKg"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_pbxLcNxQEeCpIJpgvmzkYA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="article.ecore#//StructuralElement/outputFile"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pbxLcdxQEeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_RFR-MtxPEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RFR-M9xPEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RFR-NNxPEeCpIJpgvmzkYA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_RFR-NdxPEeCpIJpgvmzkYA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_RFR-NtxPEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RFR-N9xPEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RFSlQNxPEeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_RFRXIdxPEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="10011046" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="article.ecore#//StructuralElement"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RFRXItxPEeCpIJpgvmzkYA" x="497" y="265" width="139"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_x5KOgNxQEeCpIJpgvmzkYA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_x5LcoNxQEeCpIJpgvmzkYA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_x5LcodxQEeCpIJpgvmzkYA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_2UnMgNxYEeCpIJpgvmzkYA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="article.ecore#//LinkTarget/label"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2UnMgdxYEeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_x5LcotxQEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_x5Lco9xQEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_x5LcpNxQEeCpIJpgvmzkYA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_x5LcpdxQEeCpIJpgvmzkYA" type="5002">
+ <children xmi:type="notation:Node" xmi:id="_ZIJWgNxREeCpIJpgvmzkYA" type="2002">
+ <element xmi:type="ecore:EOperation" href="article.ecore#//LinkTarget/linkFrom"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZIJWgdxREeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_x5LcptxQEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_x5Lcp9xQEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_x5MDsNxQEeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_x5KOgdxQEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="article.ecore#//LinkTarget"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x5KOgtxQEeCpIJpgvmzkYA" x="626" y="145"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_VHuYkNxSEeCpIJpgvmzkYA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_VHu_oNxSEeCpIJpgvmzkYA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_VHvmsNxSEeCpIJpgvmzkYA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_VHvmsdxSEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_VHvmstxSEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_VHvms9xSEeCpIJpgvmzkYA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_VHvmtNxSEeCpIJpgvmzkYA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_VHvmtdxSEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_VHvmttxSEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_VHvmt9xSEeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_VHuYkdxSEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="article.ecore#//Callout"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VHuYktxSEeCpIJpgvmzkYA" x="55" y="673"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_bhQRANxTEeCpIJpgvmzkYA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_bhQ4ENxTEeCpIJpgvmzkYA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_bhRfINxTEeCpIJpgvmzkYA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_bhRfIdxTEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_bhRfItxTEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_bhRfI9xTEeCpIJpgvmzkYA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_bhRfJNxTEeCpIJpgvmzkYA" type="5002">
+ <children xmi:type="notation:Node" xmi:id="_jyRrANxeEeCpIJpgvmzkYA" type="2002">
+ <element xmi:type="ecore:EOperation" href="article.ecore#//EmbeddableElement/getHtml"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jyRrAdxeEeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_bhRfJdxTEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_bhRfJtxTEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_bhRfJ9xTEeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_bhQRAdxTEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="article.ecore#//EmbeddableElement"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bhQRAtxTEeCpIJpgvmzkYA" x="115" y="441" width="213" height="63"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_fQWjgNxUEeCpIJpgvmzkYA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_fQXKkNxUEeCpIJpgvmzkYA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_fQXKkdxUEeCpIJpgvmzkYA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_fQXKktxUEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_fQXKk9xUEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_fQXKlNxUEeCpIJpgvmzkYA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_fQXKldxUEeCpIJpgvmzkYA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_fQXKltxUEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_fQXxoNxUEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_fQXxodxUEeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_fQWjgdxUEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="article.ecore#//ExternalTarget"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fQWjgtxUEeCpIJpgvmzkYA" x="850" y="265" width="124"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_HYp5INxVEeCpIJpgvmzkYA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_HYqgMNxVEeCpIJpgvmzkYA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_HYqgMdxVEeCpIJpgvmzkYA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_OwpaYNxVEeCpIJpgvmzkYA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="article.ecore#//Identifiable/id"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OwpaYdxVEeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_HYqgMtxVEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HYqgM9xVEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HYqgNNxVEeCpIJpgvmzkYA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_HYrHQNxVEeCpIJpgvmzkYA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_HYrHQdxVEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HYrHQtxVEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HYrHQ9xVEeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_HYp5IdxVEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="article.ecore#//Identifiable"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HYp5ItxVEeCpIJpgvmzkYA" x="497" y="35" width="124"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_OGiwoNxZEeCpIJpgvmzkYA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_OGj-wNxZEeCpIJpgvmzkYA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_OGj-wdxZEeCpIJpgvmzkYA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_OGj-wtxZEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_OGj-w9xZEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_OGj-xNxZEeCpIJpgvmzkYA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_OGkl0NxZEeCpIJpgvmzkYA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_OGkl0dxZEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_OGkl0txZEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_OGkl09xZEeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_OGiwodxZEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="10011046" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="article.ecore#//Body"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OGiwotxZEeCpIJpgvmzkYA" x="727" y="673"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_yWi_ANxZEeCpIJpgvmzkYA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_yWkNINxZEeCpIJpgvmzkYA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_yWkNIdxZEeCpIJpgvmzkYA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_yWkNItxZEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yWkNI9xZEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yWkNJNxZEeCpIJpgvmzkYA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_yWkNJdxZEeCpIJpgvmzkYA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_yWkNJtxZEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yWkNJ9xZEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yWkNKNxZEeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_yWi_AdxZEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="article.ecore#//BodyElement"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yWi_AtxZEeCpIJpgvmzkYA" x="250" y="673"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_hvZKENxaEeCpIJpgvmzkYA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_hvZxINxaEeCpIJpgvmzkYA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_hvaYMNxaEeCpIJpgvmzkYA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="__bJL0NxbEeCpIJpgvmzkYA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="article.ecore#//Text/value"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__bJy4NxbEeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_hvaYMdxaEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hvaYMtxaEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hvaYM9xaEeCpIJpgvmzkYA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_hvaYNNxaEeCpIJpgvmzkYA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_hvaYNdxaEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hvaYNtxaEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hvaYN9xaEeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_hvZKEdxaEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="article.ecore#//Text"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hvZKEtxaEeCpIJpgvmzkYA" x="66" y="777"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5fxPANxaEeCpIJpgvmzkYA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_5fx2ENxaEeCpIJpgvmzkYA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_5fx2EdxaEeCpIJpgvmzkYA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_5fx2EtxaEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5fx2E9xaEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5fx2FNxaEeCpIJpgvmzkYA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5fx2FdxaEeCpIJpgvmzkYA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_5fx2FtxaEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5fx2F9xaEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5fx2GNxaEeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5fxPAdxaEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="article.ecore#//Link"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5fxPAtxaEeCpIJpgvmzkYA" x="316" y="777"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-69sYNxaEeCpIJpgvmzkYA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_-6-TcNxaEeCpIJpgvmzkYA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_-6-TcdxaEeCpIJpgvmzkYA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_-6-TctxaEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-6-Tc9xaEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-6-TdNxaEeCpIJpgvmzkYA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-6-TddxaEeCpIJpgvmzkYA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_-6-TdtxaEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-6-Td9xaEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-6-TeNxaEeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_-69sYdxaEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="article.ecore#//Embedding"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-69sYtxaEeCpIJpgvmzkYA" x="192" y="777"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_VYZJcNxgEeCpIJpgvmzkYA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_VYZwgNxgEeCpIJpgvmzkYA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_VYaXkNxgEeCpIJpgvmzkYA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_VYaXkdxgEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_VYaXktxgEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_VYaXk9xgEeCpIJpgvmzkYA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_VYaXlNxgEeCpIJpgvmzkYA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_VYaXldxgEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_VYaXltxgEeCpIJpgvmzkYA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_VYaXl9xgEeCpIJpgvmzkYA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_VYZJcdxgEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="article.ecore#//SourceCode"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VYZJctxgEeCpIJpgvmzkYA" x="850" y="335" width="124"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_x6vqQNxNEeCpIJpgvmzkYA"/>
+ <element xmi:type="ecore:EPackage" href="article.ecore#/"/>
+ <edges xmi:type="notation:Edge" xmi:id="_qxw_8NxOEeCpIJpgvmzkYA" type="3002" source="_9P3IYNxNEeCpIJpgvmzkYA" target="_zVqwINxNEeCpIJpgvmzkYA">
+ <children xmi:type="notation:Node" xmi:id="_qxyOENxOEeCpIJpgvmzkYA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qxyOEdxOEeCpIJpgvmzkYA" y="-56"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_qxyOEtxOEeCpIJpgvmzkYA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qxyOE9xOEeCpIJpgvmzkYA" y="17"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_qxw_8dxOEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_qxw_8txOEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="article.ecore#//Context/documentations"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qxw_89xOEeCpIJpgvmzkYA" points="[-1, -41, 0, 154]$[-1, -161, 0, 34]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xLce0NxOEeCpIJpgvmzkYA" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xLdF4NxOEeCpIJpgvmzkYA" id="(0.5,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_vrgWENxOEeCpIJpgvmzkYA" type="3002" source="_zVqwINxNEeCpIJpgvmzkYA" target="_9P3IYNxNEeCpIJpgvmzkYA">
+ <children xmi:type="notation:Node" xmi:id="_vrhkMNxOEeCpIJpgvmzkYA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vrhkMdxOEeCpIJpgvmzkYA" x="-1" y="27"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_vrhkMtxOEeCpIJpgvmzkYA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vrhkM9xOEeCpIJpgvmzkYA" x="-1" y="-16"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_vrgWEdxOEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_vrgWEtxOEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="article.ecore#//Documentation/context"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vrgWE9xOEeCpIJpgvmzkYA" points="[0, 34, -1, -161]$[0, 154, -1, -41]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_S9QygNxaEeCpIJpgvmzkYA" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_S9QygdxaEeCpIJpgvmzkYA" id="(0.5,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_HmtyANxPEeCpIJpgvmzkYA" type="3003" source="_-tAmYNxOEeCpIJpgvmzkYA" target="__ov14NxOEeCpIJpgvmzkYA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_HmtyAdxPEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_HmtyAtxPEeCpIJpgvmzkYA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HmtyA9xPEeCpIJpgvmzkYA" points="[-1, -20, -1, 65]$[-1, -64, -1, 21]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_2wb78NxPEeCpIJpgvmzkYA" type="3002" source="_RFRXINxPEeCpIJpgvmzkYA" target="_RFRXINxPEeCpIJpgvmzkYA">
+ <children xmi:type="notation:Node" xmi:id="_2wb79NxPEeCpIJpgvmzkYA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2wb79dxPEeCpIJpgvmzkYA" x="-17" y="11"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_2wcjANxPEeCpIJpgvmzkYA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2wcjAdxPEeCpIJpgvmzkYA" x="34" y="11"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_2wb78dxPEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_2wb78txPEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="article.ecore#//StructuralElement/children"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2wb789xPEeCpIJpgvmzkYA" points="[-19, -8, -115, -11]$[-101, -8, -197, -11]$[-101, -88, -197, -91]$[7, -88, -89, -91]$[7, -63, -89, -66]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qsU-0N3ZEeC57Lb1Yvbj7Q" id="(0.14388489208633093,0.5116279069767442)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qsU-0d3ZEeC57Lb1Yvbj7Q" id="(0.841726618705036,0.5348837209302325)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_9SX-8NxPEeCpIJpgvmzkYA" type="3002" source="_RFRXINxPEeCpIJpgvmzkYA" target="_RFRXINxPEeCpIJpgvmzkYA">
+ <children xmi:type="notation:Node" xmi:id="_9SX-9NxPEeCpIJpgvmzkYA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9SX-9dxPEeCpIJpgvmzkYA" x="14" y="8"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_9SYmANxPEeCpIJpgvmzkYA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9SYmAdxPEeCpIJpgvmzkYA" x="22" y="-12"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_9SX-8dxPEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_9SX-8txPEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="article.ecore#//StructuralElement/parent"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9SX-89xPEeCpIJpgvmzkYA" points="[-89, -66, 7, -63]$[-89, -91, 7, -88]$[-197, -91, -101, -88]$[-197, -11, -101, -8]$[-115, -11, -19, -8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FNVqYNxQEeCpIJpgvmzkYA" id="(0.841726618705036,0.5348837209302325)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FNVqYdxQEeCpIJpgvmzkYA" id="(0.14388489208633093,0.5116279069767442)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_Ubi58NxQEeCpIJpgvmzkYA" type="3003" source="_zVqwINxNEeCpIJpgvmzkYA" target="_RFRXINxPEeCpIJpgvmzkYA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_Ubi58dxQEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Ubi58txQEeCpIJpgvmzkYA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Ubi589xQEeCpIJpgvmzkYA" points="[0, -34, -8, 89]$[0, -90, -8, 33]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_zvfBgNxREeCpIJpgvmzkYA" type="3003" source="_RFRXINxPEeCpIJpgvmzkYA" target="_x5KOgNxQEeCpIJpgvmzkYA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_zvfBgdxREeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_zvfBgtxREeCpIJpgvmzkYA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zvfBg9xREeCpIJpgvmzkYA" points="[-8, -62, -188, 92]$[-8, -87, -188, 67]$[180, -87, 0, 67]$[180, -125, 0, 29]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_W2eZYNxSEeCpIJpgvmzkYA" type="3002" source="_Aoro4NxPEeCpIJpgvmzkYA" target="_VHuYkNxSEeCpIJpgvmzkYA">
+ <children xmi:type="notation:Node" xmi:id="_W2fAcNxSEeCpIJpgvmzkYA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_W2fAcdxSEeCpIJpgvmzkYA" x="-4" y="-30"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_W2fActxSEeCpIJpgvmzkYA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_W2fAc9xSEeCpIJpgvmzkYA" x="-4" y="22"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_W2eZYdxSEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_W2eZYtxSEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="article.ecore#//Snippet/callouts"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_W2eZY9xSEeCpIJpgvmzkYA" points="[-2, -20, -2, -136]$[-2, 96, -2, -20]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bXcDINxSEeCpIJpgvmzkYA" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bXcDIdxSEeCpIJpgvmzkYA" id="(0.5,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_ZmLg4NxSEeCpIJpgvmzkYA" type="3002" source="_VHuYkNxSEeCpIJpgvmzkYA" target="_Aoro4NxPEeCpIJpgvmzkYA">
+ <children xmi:type="notation:Node" xmi:id="_ZmMH8NxSEeCpIJpgvmzkYA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZmMH8dxSEeCpIJpgvmzkYA" x="-9" y="-26"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ZmMH8txSEeCpIJpgvmzkYA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZmMH89xSEeCpIJpgvmzkYA" x="-9" y="13"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_ZmLg4dxSEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ZmLg4txSEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="article.ecore#//Callout/snippet"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ZmLg49xSEeCpIJpgvmzkYA" points="[-2, -20, -2, 96]$[-2, -136, -2, -20]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bXa1ANxSEeCpIJpgvmzkYA" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bXa1AdxSEeCpIJpgvmzkYA" id="(0.5,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_lzWL4NxTEeCpIJpgvmzkYA" type="3003" source="_Aoro4NxPEeCpIJpgvmzkYA" target="_bhQRANxTEeCpIJpgvmzkYA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_lzWL4dxTEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_lzWL4txTEeCpIJpgvmzkYA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_lzWL49xTEeCpIJpgvmzkYA" points="[14, -20, -101, 90]$[14, -54, -101, 56]$[115, -54, 0, 56]$[115, -79, 0, 31]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_nZNWcNxTEeCpIJpgvmzkYA" type="3003" source="_C44w8NxPEeCpIJpgvmzkYA" target="_bhQRANxTEeCpIJpgvmzkYA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_nZNWcdxTEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_nZNWctxTEeCpIJpgvmzkYA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nZNWc9xTEeCpIJpgvmzkYA" points="[-4, -20, 66, 90]$[-4, -54, 66, 56]$[-70, -54, 0, 56]$[-70, -79, 0, 31]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_AlwecNxUEeCpIJpgvmzkYA" type="3003" source="_EOyM4NxPEeCpIJpgvmzkYA" target="_x5KOgNxQEeCpIJpgvmzkYA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_AlwecdxUEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AlwectxUEeCpIJpgvmzkYA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Alwec9xUEeCpIJpgvmzkYA" points="[0, -20, 0, 96]$[0, -91, 0, 25]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_k0LYcNxUEeCpIJpgvmzkYA" type="3003" source="_fQWjgNxUEeCpIJpgvmzkYA" target="_x5KOgNxQEeCpIJpgvmzkYA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_k0LYcdxUEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_k0LYctxUEeCpIJpgvmzkYA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_k0LYc9xUEeCpIJpgvmzkYA" points="[-1, -20, 165, 92]$[-1, -45, 165, 67]$[-166, -45, 0, 67]$[-166, -83, 0, 29]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_j78TcNxVEeCpIJpgvmzkYA" type="3003" source="_x5KOgNxQEeCpIJpgvmzkYA" target="_HYp5INxVEeCpIJpgvmzkYA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_j78TcdxVEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_j78TctxVEeCpIJpgvmzkYA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_j78Tc9xVEeCpIJpgvmzkYA" points="[0, -28, 187, 101]$[0, -58, 187, 71]$[-188, -58, -1, 71]$[-188, -104, -1, 25]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_kreS8NxVEeCpIJpgvmzkYA" type="3003" source="_bhQRANxTEeCpIJpgvmzkYA" target="_HYp5INxVEeCpIJpgvmzkYA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_kreS8dxVEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kreS8txVEeCpIJpgvmzkYA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kreS89xVEeCpIJpgvmzkYA" points="[2, -30, -336, 382]$[2, -346, -336, 66]$[337, -346, -1, 66]$[337, -387, -1, 25]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_DI4QkNxWEeCpIJpgvmzkYA" type="3002" source="_zVqwINxNEeCpIJpgvmzkYA" target="_bhQRANxTEeCpIJpgvmzkYA">
+ <children xmi:type="notation:Node" xmi:id="_DI4QlNxWEeCpIJpgvmzkYA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DI43oNxWEeCpIJpgvmzkYA" x="-46" y="-15"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_DI43odxWEeCpIJpgvmzkYA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DI43otxWEeCpIJpgvmzkYA" x="8" y="13"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_DI4QkdxWEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_DI4QktxWEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="article.ecore#//Documentation/embeddableElements"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DI4Qk9xWEeCpIJpgvmzkYA" points="[-77, -1, 260, 2]$[-231, -1, 106, 2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_847J4NxfEeCpIJpgvmzkYA" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_847J4dxfEeCpIJpgvmzkYA" id="(0.5,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_IkI_YNxWEeCpIJpgvmzkYA" type="3002" source="_bhQRANxTEeCpIJpgvmzkYA" target="_zVqwINxNEeCpIJpgvmzkYA">
+ <children xmi:type="notation:Node" xmi:id="_IkJmcNxWEeCpIJpgvmzkYA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IkJmcdxWEeCpIJpgvmzkYA" x="-29" y="-14"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_IkJmctxWEeCpIJpgvmzkYA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IkJmc9xWEeCpIJpgvmzkYA" x="6" y="14"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_IkI_YdxWEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_IkI_YtxWEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="article.ecore#//EmbeddableElement/documentation"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IkI_Y9xWEeCpIJpgvmzkYA" points="[106, 2, -231, -1]$[260, 2, -77, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8dcu0NxfEeCpIJpgvmzkYA" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8dcu0dxfEeCpIJpgvmzkYA" id="(0.5,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_Dth48NxaEeCpIJpgvmzkYA" type="3003" source="_OGiwoNxZEeCpIJpgvmzkYA" target="_RFRXINxPEeCpIJpgvmzkYA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_Dth48dxaEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Dth48txaEeCpIJpgvmzkYA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Dth489xaEeCpIJpgvmzkYA" points="[0, -20, 214, 389]$[0, -281, 214, 128]$[-220, -281, -6, 128]$[-220, -345, -6, 64]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DtjHENxaEeCpIJpgvmzkYA" id="(0.48201438848920863,0.23529411764705882)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_G9qM8NxaEeCpIJpgvmzkYA" type="3003" source="_9akHENxOEeCpIJpgvmzkYA" target="_OGiwoNxZEeCpIJpgvmzkYA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_G9qM8dxaEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_G9qM8txaEeCpIJpgvmzkYA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_G9qM89xaEeCpIJpgvmzkYA" points="[1, -20, 83, 88]$[1, -47, 83, 61]$[-83, -47, -1, 61]$[-83, -83, -1, 25]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_HbG98NxaEeCpIJpgvmzkYA" type="3003" source="__ov14NxOEeCpIJpgvmzkYA" target="_OGiwoNxZEeCpIJpgvmzkYA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_HbG98dxaEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_HbG98txaEeCpIJpgvmzkYA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HbG989xaEeCpIJpgvmzkYA" points="[-1, -20, -62, 88]$[-1, -47, -62, 61]$[60, -47, -1, 61]$[60, -83, -1, 25]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_LHP4gNxaEeCpIJpgvmzkYA" type="3002" source="_OGiwoNxZEeCpIJpgvmzkYA" target="_yWi_ANxZEeCpIJpgvmzkYA">
+ <children xmi:type="notation:Node" xmi:id="_LHQfkNxaEeCpIJpgvmzkYA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LHQfkdxaEeCpIJpgvmzkYA" x="9" y="-11"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_LHRGoNxaEeCpIJpgvmzkYA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LHRGodxaEeCpIJpgvmzkYA" x="27" y="8"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_LHP4gdxaEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_LHP4gtxaEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="article.ecore#//Body/elements"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LHP4g9xaEeCpIJpgvmzkYA" points="[8, 21, -237, 21]$[195, 4, -50, 4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hJGMgN3CEeC57Lb1Yvbj7Q" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hJGMgd3CEeC57Lb1Yvbj7Q" id="(0.5,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_OGa_YNxaEeCpIJpgvmzkYA" type="3002" source="_yWi_ANxZEeCpIJpgvmzkYA" target="_OGiwoNxZEeCpIJpgvmzkYA">
+ <children xmi:type="notation:Node" xmi:id="_OGa_ZNxaEeCpIJpgvmzkYA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OGa_ZdxaEeCpIJpgvmzkYA" x="17" y="-16"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_OGbmcNxaEeCpIJpgvmzkYA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OGbmcdxaEeCpIJpgvmzkYA" x="29" y="11"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_OGa_YdxaEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_OGa_YtxaEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="article.ecore#//BodyElement/body"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_OGa_Y9xaEeCpIJpgvmzkYA" points="[-50, 4, 195, 4]$[-237, 21, 8, 21]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hJGzkN3CEeC57Lb1Yvbj7Q" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hJGzkd3CEeC57Lb1Yvbj7Q" id="(0.5,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_pSB1ENxaEeCpIJpgvmzkYA" type="3003" source="_hvZKENxaEeCpIJpgvmzkYA" target="_yWi_ANxZEeCpIJpgvmzkYA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_pSB1EdxaEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_pSB1EtxaEeCpIJpgvmzkYA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pSB1E9xaEeCpIJpgvmzkYA" points="[-3, -24, -182, 84]$[-3, -49, -182, 59]$[178, -49, -1, 59]$[178, -87, -1, 21]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_p1VWcNxaEeCpIJpgvmzkYA" type="3003" source="_Bj9lYNxPEeCpIJpgvmzkYA" target="_yWi_ANxZEeCpIJpgvmzkYA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_p1VWcdxaEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_p1VWctxaEeCpIJpgvmzkYA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_p1VWc9xaEeCpIJpgvmzkYA" points="[-4, -24, 187, 84]$[-4, -49, 187, 59]$[-192, -49, -1, 59]$[-192, -87, -1, 21]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_6-blYNxaEeCpIJpgvmzkYA" type="3003" source="_5fxPANxaEeCpIJpgvmzkYA" target="_yWi_ANxZEeCpIJpgvmzkYA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_6-blYdxaEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_6-blYtxaEeCpIJpgvmzkYA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6-blY9xaEeCpIJpgvmzkYA" points="[-3, -20, 63, 84]$[-3, -45, 63, 59]$[-67, -45, -1, 59]$[-67, -83, -1, 21]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_MrPI4NxcEeCpIJpgvmzkYA" type="3002" source="_-69sYNxaEeCpIJpgvmzkYA" target="_bhQRANxTEeCpIJpgvmzkYA">
+ <children xmi:type="notation:Node" xmi:id="_MrPI5NxcEeCpIJpgvmzkYA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MrPI5dxcEeCpIJpgvmzkYA" x="24" y="61"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_MrPv8NxcEeCpIJpgvmzkYA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MrPv8dxcEeCpIJpgvmzkYA" x="49" y="81"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_MrPI4dxcEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_MrPI4txcEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="article.ecore#//Embedding/element"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MrPI49xcEeCpIJpgvmzkYA" points="[-8, 21, 14, 347]$[-8, 128, 14, 454]$[-221, 128, -199, 454]$[-221, -326, -199, 0]$[-127, -326, -105, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_UGQI8NxcEeCpIJpgvmzkYA" type="3003" source="_-69sYNxaEeCpIJpgvmzkYA" target="_yWi_ANxZEeCpIJpgvmzkYA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_UGQI8dxcEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_UGQI8txcEeCpIJpgvmzkYA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UGQI89xcEeCpIJpgvmzkYA" points="[1, -20, -57, 84]$[1, -45, -57, 59]$[57, -45, -1, 59]$[57, -83, -1, 21]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_VIxV4NxcEeCpIJpgvmzkYA" type="3002" source="_5fxPANxaEeCpIJpgvmzkYA" target="_x5KOgNxQEeCpIJpgvmzkYA">
+ <children xmi:type="notation:Node" xmi:id="_VIx88NxcEeCpIJpgvmzkYA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VIx88dxcEeCpIJpgvmzkYA" x="96" y="-108"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_VIx88txcEeCpIJpgvmzkYA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VIx889xcEeCpIJpgvmzkYA" x="122" y="-115"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_VIxV4dxcEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_VIxV4txcEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="article.ecore#//Link/target"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_VIxV49xcEeCpIJpgvmzkYA" points="[-6, 21, -385, 645]$[-6, 128, -385, 752]$[640, 128, 261, 752]$[640, -624, 261, 0]$[499, -624, 120, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_fZ-DcNxdEeCpIJpgvmzkYA" type="3002" source="_zVqwINxNEeCpIJpgvmzkYA" target="_zVqwINxNEeCpIJpgvmzkYA">
+ <children xmi:type="notation:Node" xmi:id="_fZ-DdNxdEeCpIJpgvmzkYA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fZ-DddxdEeCpIJpgvmzkYA" x="18" y="48"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_fZ-qgNxdEeCpIJpgvmzkYA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fZ-qgdxdEeCpIJpgvmzkYA" x="18" y="-8"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_fZ-DcdxdEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_fZ-DctxdEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="article.ecore#//Documentation/dependencies"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fZ-Dc9xdEeCpIJpgvmzkYA" points="[122, 10, 29, 15]$[202, 10, 109, 15]$[202, 74, 109, 79]$[105, 74, 12, 79]$[105, 27, 12, 32]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fZ_4oNxdEeCpIJpgvmzkYA" id="(0.21656050955414013,0.6142857142857143)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fZ_4odxdEeCpIJpgvmzkYA" id="(0.8152866242038217,0.5428571428571428)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_cI5z8NxgEeCpIJpgvmzkYA" type="3003" source="_VYZJcNxgEeCpIJpgvmzkYA" target="_fQWjgNxUEeCpIJpgvmzkYA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_cI5z8dxgEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_cI5z8txgEeCpIJpgvmzkYA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cI5z89xgEeCpIJpgvmzkYA" points="[-1, -20, -1, 50]$[-1, -49, -1, 21]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_LaxiYNxjEeCpIJpgvmzkYA" type="3002" source="_RFRXINxPEeCpIJpgvmzkYA" target="_zVqwINxNEeCpIJpgvmzkYA">
+ <children xmi:type="notation:Node" xmi:id="_LayJcNxjEeCpIJpgvmzkYA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LayJcdxjEeCpIJpgvmzkYA" x="-11" y="51"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_LaywgNxjEeCpIJpgvmzkYA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LaywgdxjEeCpIJpgvmzkYA" x="-11" y="-15"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_LaxiYdxjEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_LaxiYtxjEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="article.ecore#//StructuralElement/documentation"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LaxiY9xjEeCpIJpgvmzkYA" points="[-5, 44, -37, -88]$[-5, 98, -37, -34]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Laz-oNxjEeCpIJpgvmzkYA" id="(0.20863309352517986,0.47058823529411764)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_TgH44NxjEeCpIJpgvmzkYA" type="3002" source="__ov14NxOEeCpIJpgvmzkYA" target="_-tAmYNxOEeCpIJpgvmzkYA">
+ <children xmi:type="notation:Node" xmi:id="_TgIf8NxjEeCpIJpgvmzkYA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TgIf8dxjEeCpIJpgvmzkYA" y="11"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_TgIf8txjEeCpIJpgvmzkYA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TgIf89xjEeCpIJpgvmzkYA" x="13" y="-19"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_TgH44dxjEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_TgH44txjEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="article.ecore#//Chapter/article"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TgH449xjEeCpIJpgvmzkYA" points="[-11, -1, -15, -66]$[-58, -1, -62, -66]$[-58, 83, -62, 18]$[-11, 83, -15, 18]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TgJuENxjEeCpIJpgvmzkYA" id="(0.11764705882352941,0.5581395348837209)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TgJuEdxjEeCpIJpgvmzkYA" id="(0.1568627450980392,0.09302325581395349)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_YY7a4NxjEeCpIJpgvmzkYA" type="3002" source="_OGiwoNxZEeCpIJpgvmzkYA" target="_9akHENxOEeCpIJpgvmzkYA">
+ <children xmi:type="notation:Node" xmi:id="_YY8B8NxjEeCpIJpgvmzkYA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YY8B8dxjEeCpIJpgvmzkYA" x="8" y="-11"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_YY8B8txjEeCpIJpgvmzkYA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YY8B89xjEeCpIJpgvmzkYA" x="24" y="13"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_YY7a4dxjEeCpIJpgvmzkYA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_YY7a4txjEeCpIJpgvmzkYA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="article.ecore#//Body/category"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YY7a49xjEeCpIJpgvmzkYA" points="[53, 0, -29, -108]$[177, 0, 95, -108]$[177, 109, 95, 1]$[132, 109, 50, 1]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_6d0OgN3BEeC57Lb1Yvbj7Q" type="3002" source="_VHuYkNxSEeCpIJpgvmzkYA" target="_yWi_ANxZEeCpIJpgvmzkYA">
+ <children xmi:type="notation:Node" xmi:id="_6d2DsN3BEeC57Lb1Yvbj7Q" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6d2qwN3BEeC57Lb1Yvbj7Q" x="-15" y="-16"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_6d2qwd3BEeC57Lb1Yvbj7Q" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6d2qwt3BEeC57Lb1Yvbj7Q" x="-5" y="8"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_6d0Ogd3BEeC57Lb1Yvbj7Q" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_6d0Ogt3BEeC57Lb1Yvbj7Q" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="article.ecore#//Callout/elements"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6d0Og93BEeC57Lb1Yvbj7Q" points="[50, 4, -148, 0]$[145, 4, -53, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EkFT4d3CEeC57Lb1Yvbj7Q" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EkFT4t3CEeC57Lb1Yvbj7Q" id="(0.5,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_9AjRAN3BEeC57Lb1Yvbj7Q" type="3002" source="_yWi_ANxZEeCpIJpgvmzkYA" target="_VHuYkNxSEeCpIJpgvmzkYA">
+ <children xmi:type="notation:Node" xmi:id="_9Aj4EN3BEeC57Lb1Yvbj7Q" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9Aj4Ed3BEeC57Lb1Yvbj7Q" x="-10" y="-12"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_9AkfIN3BEeC57Lb1Yvbj7Q" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9AkfId3BEeC57Lb1Yvbj7Q" x="-6" y="12"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_9AjRAd3BEeC57Lb1Yvbj7Q" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_9AjRAt3BEeC57Lb1Yvbj7Q" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="article.ecore#//BodyElement/callout"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9AjRA93BEeC57Lb1Yvbj7Q" points="[-53, 0, 145, 4]$[-148, 0, 50, 4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_clY5UN3ZEeC57Lb1Yvbj7Q" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_clY5Ud3ZEeC57Lb1Yvbj7Q" id="(0.5,0.5)"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/model/article.genmodel b/plugins/org.eclipse.emf.cdo.releng.doc/model/article.genmodel
new file mode 100644
index 0000000000..dfc8dbe205
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/model/article.genmodel
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.emf.cdo.releng.doc/src"
+ modelPluginID="org.eclipse.emf.cdo.releng.doc" modelName="Article" updateClasspath="false"
+ codeFormatting="true" importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0"
+ copyrightFields="false">
+ <foreignModel>article.ecore</foreignModel>
+ <genPackages prefix="Article" basePackage="org.eclipse.emf.cdo.releng.doc" disposableProviderFactory="true"
+ ecorePackage="article.ecore#/">
+ <genDataTypes ecoreDataType="article.ecore#//RootDoc"/>
+ <genDataTypes ecoreDataType="article.ecore#//File"/>
+ <genDataTypes ecoreDataType="article.ecore#//Doc"/>
+ <genClasses ecoreClass="article.ecore#//Documentation">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference article.ecore#//Documentation/context"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference article.ecore#//Documentation/embeddableElements"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference article.ecore#//Documentation/dependencies"/>
+ <genOperations ecoreOperation="article.ecore#//Documentation/generate"/>
+ </genClasses>
+ <genClasses ecoreClass="article.ecore#//Context">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute article.ecore#//Context/baseFolder"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute article.ecore#//Context/project"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference article.ecore#//Context/documentations"/>
+ </genClasses>
+ <genClasses ecoreClass="article.ecore#//Category"/>
+ <genClasses ecoreClass="article.ecore#//Article">
+ <genOperations ecoreOperation="article.ecore#//Article/generate"/>
+ </genClasses>
+ <genClasses ecoreClass="article.ecore#//Chapter"/>
+ <genClasses ecoreClass="article.ecore#//Snippet">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference article.ecore#//Snippet/callouts"/>
+ </genClasses>
+ <genClasses ecoreClass="article.ecore#//Diagram">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute article.ecore#//Diagram/code"/>
+ </genClasses>
+ <genClasses ecoreClass="article.ecore#//Factory"/>
+ <genClasses ecoreClass="article.ecore#//JavaElement"/>
+ <genClasses image="false" ecoreClass="article.ecore#//StructuralElement">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference article.ecore#//StructuralElement/children"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference article.ecore#//StructuralElement/parent"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute article.ecore#//StructuralElement/title"/>
+ <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute article.ecore#//StructuralElement/path"/>
+ <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute article.ecore#//StructuralElement/outputFile"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="article.ecore#//LinkTarget">
+ <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute article.ecore#//LinkTarget/label"/>
+ <genOperations ecoreOperation="article.ecore#//LinkTarget/linkFrom">
+ <genParameters ecoreParameter="article.ecore#//LinkTarget/linkFrom/source"/>
+ </genOperations>
+ </genClasses>
+ <genClasses ecoreClass="article.ecore#//Callout">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference article.ecore#//Callout/snippet"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="article.ecore#//EmbeddableElement">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference article.ecore#//EmbeddableElement/documentation"/>
+ <genOperations ecoreOperation="article.ecore#//EmbeddableElement/getHtml">
+ <genParameters ecoreParameter="article.ecore#//EmbeddableElement/getHtml/embedder"/>
+ </genOperations>
+ </genClasses>
+ <genClasses ecoreClass="article.ecore#//ExternalTarget"/>
+ <genClasses image="false" ecoreClass="article.ecore#//Identifiable">
+ <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute article.ecore#//Identifiable/id"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="article.ecore#//Body">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference article.ecore#//Body/elements"/>
+ <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute article.ecore#//Body/html"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="article.ecore#//BodyElement">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference article.ecore#//BodyElement/body"/>
+ <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute article.ecore#//BodyElement/html"/>
+ </genClasses>
+ <genClasses ecoreClass="article.ecore#//Text">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute article.ecore#//Text/value"/>
+ </genClasses>
+ <genClasses ecoreClass="article.ecore#//Link">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference article.ecore#//Link/target"/>
+ </genClasses>
+ <genClasses ecoreClass="article.ecore#//Embedding">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference article.ecore#//Embedding/element"/>
+ </genClasses>
+ <genClasses ecoreClass="article.ecore#//SourceCode"/>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.doc/plugin.properties
new file mode 100644
index 0000000000..2746d8821b
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/plugin.properties
@@ -0,0 +1,2 @@
+pluginName = Article Model
+providerName = Eclipse Modeling Project
diff --git a/plugins/org.eclipse.emf.cdo.releng.doc/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.doc/plugin.xml
new file mode 100644
index 0000000000..c07f813610
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.doc/plugin.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri="http://www.eclipse.org/ARTICLE/1.0"
+ class="org.eclipse.emf.cdo.releng.doc.article.ArticlePackage"
+ genModel="model/article.genmodel"/>
+ </extension>
+
+</plugin>
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 -->
+ *
+ * @para