You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2018/05/23 14:37:54 UTC
[1/5] groovy git commit: GROOVY-8600: BUG! exception in phase
'instruction selection'
Repository: groovy
Updated Branches:
refs/heads/master 5eab4a5ff -> c8e8c7b67
GROOVY-8600: BUG! exception in phase 'instruction selection'
Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/711d82a8
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/711d82a8
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/711d82a8
Branch: refs/heads/master
Commit: 711d82a8476ecabecc6101f676d32c2d9ad9e0cc
Parents: 1936f18
Author: Paul King <pa...@asert.com.au>
Authored: Thu May 24 00:07:10 2018 +1000
Committer: Paul King <pa...@asert.com.au>
Committed: Thu May 24 00:08:24 2018 +1000
----------------------------------------------------------------------
.../MethodCallExpressionTransformer.java | 2 +-
src/test/groovy/bugs/Groovy8600Bug.groovy | 37 ++++++++++++++++++++
2 files changed, 38 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/groovy/blob/711d82a8/src/main/java/org/codehaus/groovy/transform/sc/transformers/MethodCallExpressionTransformer.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/transform/sc/transformers/MethodCallExpressionTransformer.java b/src/main/java/org/codehaus/groovy/transform/sc/transformers/MethodCallExpressionTransformer.java
index c93db9e..5dd83ad 100644
--- a/src/main/java/org/codehaus/groovy/transform/sc/transformers/MethodCallExpressionTransformer.java
+++ b/src/main/java/org/codehaus/groovy/transform/sc/transformers/MethodCallExpressionTransformer.java
@@ -61,7 +61,7 @@ public class MethodCallExpressionTransformer {
}
Expression objectExpression = expr.getObjectExpression();
ClassNode type = staticCompilationTransformer.getTypeChooser().resolveType(objectExpression, staticCompilationTransformer.getClassNode());
- if (isCallOnClosure(expr)) {
+ if (isCallOnClosure(expr) && staticCompilationTransformer.getClassNode() != null) {
FieldNode field = staticCompilationTransformer.getClassNode().getField(expr.getMethodAsString());
if (field != null) {
VariableExpression vexp = new VariableExpression(field);
http://git-wip-us.apache.org/repos/asf/groovy/blob/711d82a8/src/test/groovy/bugs/Groovy8600Bug.groovy
----------------------------------------------------------------------
diff --git a/src/test/groovy/bugs/Groovy8600Bug.groovy b/src/test/groovy/bugs/Groovy8600Bug.groovy
new file mode 100644
index 0000000..43d4093
--- /dev/null
+++ b/src/test/groovy/bugs/Groovy8600Bug.groovy
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package groovy.bugs
+
+class Groovy8600Bug extends GroovyTestCase {
+ void testClosureFieldUseWithinMethod() {
+ assertScript '''
+ import groovy.transform.CompileStatic
+
+ class TestCompileStatic {
+ private Closure<String> func = { it.toUpperCase() }
+ @CompileStatic
+ def testCallFunc () {
+ func('foo') + func.call('bar')
+ }
+ }
+
+ assert new TestCompileStatic().testCallFunc() == 'FOOBAR'
+ '''
+ }
+}
[5/5] groovy git commit: GROOVY-8593: DocGenerator could be moved to
avoid split packages (closes #715)
Posted by pa...@apache.org.
GROOVY-8593: DocGenerator could be moved to avoid split packages (closes #715)
Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/c8e8c7b6
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/c8e8c7b6
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/c8e8c7b6
Branch: refs/heads/master
Commit: c8e8c7b67069a91a0e80e8be45140d42737c91c9
Parents: 711d82a
Author: Paul King <pa...@asert.com.au>
Authored: Wed May 23 00:05:21 2018 +1000
Committer: Paul King <pa...@asert.com.au>
Committed: Thu May 24 00:36:13 2018 +1000
----------------------------------------------------------------------
gradle/docs.gradle | 2 +-
.../codehaus/groovy/tools/DocGeneratorMain.java | 38 -
.../groovy/docgenerator/DocGenerator.groovy | 546 ++++
.../codehaus/groovy/tools/DocGenerator.groovy | 523 +---
.../groovy/docgenerator/DocGenerator.properties | 34 +
.../org/apache/groovy/docgenerator/groovy.ico | Bin 0 -> 9662 bytes
.../org/apache/groovy/docgenerator/index.html | 95 +
.../groovy/docgenerator/overview-summary.html | 58 +
.../apache/groovy/docgenerator/stylesheet.css | 2321 ++++++++++++++++++
.../docgenerator/template.allclasses-frame.html | 46 +
.../groovy/docgenerator/template.class.html | 196 ++
.../groovy/docgenerator/template.index-all.html | 93 +
.../docgenerator/template.overview-frame.html | 46 +
.../docgenerator/template.package-frame.html | 61 +
.../docgenerator/template.package-summary.html | 93 +
.../groovy/tools/DocGenerator.properties | 34 -
.../org/codehaus/groovy/tools/groovy.ico | Bin 9662 -> 0 bytes
.../org/codehaus/groovy/tools/index.html | 95 -
.../codehaus/groovy/tools/overview-summary.html | 58 -
.../org/codehaus/groovy/tools/stylesheet.css | 2321 ------------------
.../groovy/tools/template.allclasses-frame.html | 46 -
.../codehaus/groovy/tools/template.class.html | 196 --
.../groovy/tools/template.index-all.html | 93 -
.../groovy/tools/template.overview-frame.html | 46 -
.../groovy/tools/template.package-frame.html | 61 -
.../groovy/tools/template.package-summary.html | 93 -
26 files changed, 3595 insertions(+), 3600 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/groovy/blob/c8e8c7b6/gradle/docs.gradle
----------------------------------------------------------------------
diff --git a/gradle/docs.gradle b/gradle/docs.gradle
index de9c66b..a7643d0 100644
--- a/gradle/docs.gradle
+++ b/gradle/docs.gradle
@@ -128,7 +128,7 @@ task docGDK {
doLast { task ->
try {
ant {
- java(classname: 'org.codehaus.groovy.tools.DocGenerator',
+ java(classname: 'org.apache.groovy.docgenerator.DocGenerator',
fork: 'true',
failonerror: 'true',
classpath: (sourceSets.main.runtimeClasspath + rootProject.files(docProjectVersionInfo.destinationDir) + configurations.tools + groovydocAll.groovyClasspath + docGeneratorPath).asPath,
http://git-wip-us.apache.org/repos/asf/groovy/blob/c8e8c7b6/src/test/org/codehaus/groovy/tools/DocGeneratorMain.java
----------------------------------------------------------------------
diff --git a/src/test/org/codehaus/groovy/tools/DocGeneratorMain.java b/src/test/org/codehaus/groovy/tools/DocGeneratorMain.java
deleted file mode 100644
index b07685e..0000000
--- a/src/test/org/codehaus/groovy/tools/DocGeneratorMain.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.codehaus.groovy.tools;
-
-import groovy.lang.GroovyShell;
-
-import java.io.File;
-
-public class DocGeneratorMain {
-
- public static void main(String[] args) {
- try {
- GroovyShell shell = new GroovyShell();
- //shell.run("src/main/org/codehaus/groovy/tools/DocGenerator.groovy", "org.codehaus.groovy.tools.DocGenerator.groovy", args);
- shell.run(new File("src/main/groovy/org/codehaus/groovy/tools/DocGenerator.groovy"), args);
- }
- catch (Exception e) {
- System.out.println("Failed: " + e);
- e.printStackTrace();
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/groovy/blob/c8e8c7b6/subprojects/groovy-docgenerator/src/main/groovy/org/apache/groovy/docgenerator/DocGenerator.groovy
----------------------------------------------------------------------
diff --git a/subprojects/groovy-docgenerator/src/main/groovy/org/apache/groovy/docgenerator/DocGenerator.groovy b/subprojects/groovy-docgenerator/src/main/groovy/org/apache/groovy/docgenerator/DocGenerator.groovy
new file mode 100644
index 0000000..da325d7
--- /dev/null
+++ b/subprojects/groovy-docgenerator/src/main/groovy/org/apache/groovy/docgenerator/DocGenerator.groovy
@@ -0,0 +1,546 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.groovy.docgenerator
+
+import com.thoughtworks.qdox.JavaDocBuilder
+import com.thoughtworks.qdox.model.JavaClass
+import com.thoughtworks.qdox.model.JavaMethod
+import com.thoughtworks.qdox.model.JavaParameter
+import com.thoughtworks.qdox.model.Type
+import groovy.cli.picocli.CliBuilder
+import groovy.text.SimpleTemplateEngine
+import groovy.text.Template
+import groovy.text.TemplateEngine
+import org.codehaus.groovy.runtime.DefaultGroovyMethods
+import org.codehaus.groovy.tools.shell.util.Logger
+import org.codehaus.groovy.tools.shell.util.MessageSource
+
+import java.text.BreakIterator
+import java.util.concurrent.ConcurrentHashMap
+
+/**
+ * Generate documentation about the methods provided by the Groovy Development Kit
+ * that enhance the standard JDK classes.
+ */
+class DocGenerator {
+ private static final MessageSource messages = new MessageSource(DocGenerator)
+ private static final Logger log = Logger.create(DocGenerator)
+ private static final Comparator SORT_KEY_COMPARATOR = [compare: { a, b -> return a.sortKey.compareTo(b.sortKey) }] as Comparator
+ private static final Map<String, Object> CONFIG = new ConcurrentHashMap<String, Object>();
+
+ List<File> sourceFiles
+ File outputDir
+ DocSource docSource
+
+ DocGenerator(List<File> sourceFiles, File outputFolder) {
+ this.sourceFiles = sourceFiles
+ this.outputDir = outputFolder
+ this.docSource = parseSource(sourceFiles)
+ }
+
+ /**
+ * Parse the *GroovyMethods (DGM) classes to build a graph representing the structure of the class,
+ * with its methods, javadoc comments and tags.
+ */
+ private static DocSource parseSource(List<File> sourceFiles) {
+ JavaDocBuilder builder = new JavaDocBuilder()
+ sourceFiles.each {
+ if (it.exists()) {
+ builder.addSource(it.newReader())
+ log.debug "adding reader for $it"
+ } else {
+ log.debug "not found, skipping: $it.path"
+ }
+ }
+
+ def methods = builder.sources.collectMany { source ->
+ source.classes.collectMany { aClass ->
+ aClass.methods.findAll { !it.annotations.any { it.type.fullyQualifiedName == 'java.lang.Deprecated' } }
+ }
+ }
+
+ def docSource = new DocSource()
+ methods.each { JavaMethod method ->
+ if (!method.isPublic() || !method.isStatic()) {
+ return // skip it
+ }
+
+ def firstParam = method.parameters[0]
+ def firstParamType = firstParam.resolvedValue.isEmpty() ? firstParam.type : new Type(firstParam.resolvedValue, 0, firstParam.parentClass)
+ docSource.add(firstParamType, method)
+ }
+ docSource.populateInheritedMethods()
+ return docSource
+ }
+
+ /**
+ * Builds an HTML page from the structure of DefaultGroovyMethods.
+ */
+ void generateAll() {
+ def engine = new SimpleTemplateEngine()
+
+ // the index.html
+ def indexTemplate = createTemplate(engine, 'index.html')
+ new File(outputDir, 'index.html').withWriter {
+ it << indexTemplate.make(title: CONFIG.title)
+ }
+
+ // the overview-summary.html
+ def overviewTemplate = createTemplate(engine, 'overview-summary.html')
+ new File(outputDir, 'overview-summary.html').withWriter {
+ it << overviewTemplate.make(title: CONFIG.title)
+ }
+
+ // the overview-frame.html
+ def overviewFrameTemplate = createTemplate(engine, 'template.overview-frame.html')
+ new File(outputDir, 'overview-frame.html').withWriter {
+ def docPackagesExceptPrimitiveType = docSource.packages.findAll { !it.primitive }
+ it << overviewFrameTemplate.make(packages: docPackagesExceptPrimitiveType, title: CONFIG.title)
+ }
+
+ // the package-list
+ new File(outputDir, 'package-list').withWriter { writer ->
+ docSource.packages*.name.each { writer.println it }
+ }
+
+ // the allclasses-frame.html
+ def allClassesTemplate = createTemplate(engine, 'template.allclasses-frame.html')
+ new File(outputDir, 'allclasses-frame.html').withWriter {
+ it << allClassesTemplate.make(docTypes: docSource.allDocTypes, title: CONFIG.title)
+ }
+
+ // the package-frame.html and package-summary.html for each package
+ def packageFrameTemplate = createTemplate(engine, 'template.package-frame.html')
+ def packageSummaryTemplate = createTemplate(engine, 'template.package-summary.html')
+ docSource.packages.each { DocPackage docPackage ->
+ def dir = DocUtil.createPackageDirectory(outputDir, docPackage.name)
+ new File(dir, 'package-frame.html').withWriter {
+ it << packageFrameTemplate.make(docPackage: docPackage, title: CONFIG.title)
+ }
+ new File(dir, 'package-summary.html').withWriter {
+ it << packageSummaryTemplate.make(docPackage: docPackage, title: CONFIG.title)
+ }
+ }
+
+ // the class.html for each class
+ def classTemplate = createTemplate(engine, 'template.class.html')
+ docSource.allDocTypes.each { DocType docType ->
+ def dir = DocUtil.createPackageDirectory(outputDir, docType.packageName)
+ new File(dir, docType.simpleClassName + '.html').withWriter {
+ it << classTemplate.make(docType: docType, title: CONFIG.title)
+ }
+ }
+
+ // the index-all.html
+ def indexAllTemplate = createTemplate(engine, 'template.index-all.html')
+ new File(outputDir, 'index-all.html').withWriter {
+ it << indexAllTemplate.make('indexMap': generateIndexMap(), title: CONFIG.title)
+ }
+
+ // copy resources
+ ['groovy.ico', 'stylesheet.css'].each { String resource ->
+ new File(outputDir, resource) << getClass().getResource(resource).bytes
+ }
+ }
+
+ private Template createTemplate(TemplateEngine templateEngine, String resourceFile) {
+ def resourceUrl = getClass().getResource(resourceFile)
+ return templateEngine.createTemplate(resourceUrl.text)
+ }
+
+ /**
+ * Generate an index map for index-all.html.
+ * <p>
+ * This method creates a index map indexed by the first letter of the
+ * method in upper case, the map value is a list of methods.
+ * <p>
+ * e.g.: 'A' : [ m1, m2, m3 .. ]
+ * The values m1, m2, m3 are sorted by the method name, and the parameter signature.
+ * The method names of m1, m2, m3 start either with 'a', or 'A'.
+ *
+ * @return indexMap
+ */
+ private Map generateIndexMap() {
+ def indexItems = []
+ docSource.allDocTypes.each { DocType docType ->
+ // the class
+ indexItems << [
+ index: docType.simpleClassName.capitalize()[0],
+ docType: docType,
+ sortKey: docType.sortKey,
+ ]
+
+ // the methods
+ docType.docMethods.each { DocMethod docMethod ->
+ indexItems << [
+ index: docMethod.javaMethod.name.capitalize()[0],
+ docType: docType,
+ docMethod: docMethod,
+ sortKey: docMethod.sortKey
+ ]
+ }
+ }
+ def indexMap = new TreeMap().withDefault { new TreeSet(SORT_KEY_COMPARATOR) }
+ for (indexItem in indexItems) {
+ indexMap[indexItem['index']] << indexItem
+ }
+ return indexMap
+ }
+
+ /**
+ * Main entry point.
+ */
+ static void main(String... args) {
+ def cli = new CliBuilder(usage : 'DocGenerator [options] [sourcefiles]', posix:false)
+ cli.help(longOpt: 'help', messages['cli.option.help.description'])
+ cli._(longOpt: 'version', messages['cli.option.version.description'])
+ cli.o(longOpt: 'outputDir', args:1, argName: 'path', messages['cli.option.output.dir.description'])
+ cli.title(longOpt: 'title', args:1, argName: 'text', messages['cli.option.title.description'])
+ cli.link(args:2, valueSeparator:'=', argName:'comma-separated-package-prefixes=url',
+ messages['cli.option.link.patterns.description'])
+ def options = cli.parse(args)
+
+ if (options.help) {
+ cli.usage()
+ return
+ }
+
+ if (options.links && options.links.size() % 2 == 1) {
+ throw new IllegalArgumentException("Links should be specified in pattern=url pairs")
+ }
+
+ if (options.version) {
+ println messages.format('cli.info.version', GroovySystem.version)
+ return
+ }
+
+ def start = System.currentTimeMillis()
+
+ def outputDir = new File(options.outputDir ?: "target/html/groovy-jdk")
+ outputDir.mkdirs()
+ CONFIG.title = options.title ?: "Groovy JDK"
+ if (options.links) {
+ CONFIG.links = options.links.collate(2).collectMany{ prefixes, url -> prefixes.tokenize(',').collect{[it, url]} }.collectEntries()
+ }
+ CONFIG.locale = Locale.default // TODO allow locale to be passed in
+
+ def srcFiles = options.arguments().collect { DocUtil.sourceFileOf(it) }
+ try {
+ DefaultGroovyMethods.ADDITIONAL_CLASSES.each { aClass ->
+ def className = aClass.name.replaceAll(/\$.*/, '')
+ def additionalFile = DocUtil.sourceFileOf(className)
+ if (srcFiles.every { it.canonicalPath != additionalFile.canonicalPath }) {
+ srcFiles << additionalFile
+ }
+ }
+ } catch (MissingPropertyException e) { // TODO is it still needed?
+ // no call site change available, so ignore it
+ log.error e.message, e
+ }
+
+ def docGen = new DocGenerator(srcFiles, outputDir)
+ docGen.generateAll()
+
+ def end = System.currentTimeMillis()
+ log.debug "Done. Took ${end - start} milliseconds."
+ }
+
+ private static class DocSource {
+ SortedSet<DocPackage> packages = new TreeSet<DocPackage>(SORT_KEY_COMPARATOR)
+
+ void add(Type type, JavaMethod javaMethod) {
+ DocType tempDocType = new DocType(type: type)
+
+ DocPackage aPackage = packages.find { it.name == tempDocType.packageName }
+ if (!aPackage) {
+ aPackage = new DocPackage(name: tempDocType.packageName)
+ packages << aPackage
+ }
+
+ DocType docType = aPackage.docTypes.find { it.fullyQualifiedClassName == tempDocType.fullyQualifiedClassName }
+ if (!docType) {
+ docType = tempDocType
+ aPackage.docTypes << docType
+ }
+
+ def docMethod = new DocMethod(declaringDocType: docType, javaMethod: javaMethod)
+ docType.docMethods << docMethod
+ }
+
+ void populateInheritedMethods() {
+ def allTypes = allDocTypes.collectEntries{ [it.fullyQualifiedClassName, it] }
+ allTypes.each { name, docType ->
+ if (name.endsWith('[]') || name.startsWith('primitive-types')) return
+ Type next = docType.javaClass.superClass
+ while (next != null) {
+ if (allTypes.keySet().contains(next.value)) {
+ docType.inheritedMethods[allTypes[next.value]] = allTypes[next.value].docMethods
+ }
+ next = next.javaClass.superClass
+ }
+ def remaining = docType.javaClass.implementedInterfaces.toList()
+ while (!remaining.isEmpty()) {
+ def nextInt = remaining.remove(0)
+ if (allTypes.keySet().contains(nextInt.fullyQualifiedName)) {
+ docType.inheritedMethods[allTypes[nextInt.fullyQualifiedName]] = allTypes[nextInt.fullyQualifiedName].docMethods
+ }
+ remaining.addAll(nextInt.implementedInterfaces.toList())
+ }
+ }
+ }
+
+ SortedSet<DocType> getAllDocTypes() {
+ def allSet = new TreeSet(SORT_KEY_COMPARATOR)
+ allSet.addAll(packages.collectMany { it.docTypes })
+ return allSet
+ }
+ }
+
+ private static class DocPackage {
+ static final String PRIMITIVE_TYPE_PSEUDO_PACKAGE = 'primitive-types'
+ String name
+ SortedSet<DocType> docTypes = new TreeSet<DocType>(SORT_KEY_COMPARATOR)
+
+ boolean isPrimitive() {
+ name == PRIMITIVE_TYPE_PSEUDO_PACKAGE
+ }
+
+ String getSortKey() {
+ name
+ }
+ }
+
+ private static class DocType {
+ private Type type
+ final String shortComment = "" // empty because cannot get a comment of JDK
+ SortedSet<DocMethod> docMethods = new TreeSet<DocMethod>(SORT_KEY_COMPARATOR)
+ Map<String, List<DocMethod>> inheritedMethods = new LinkedHashMap<String, List<DocMethod>>()
+
+ JavaClass getJavaClass() {
+ type.javaClass
+ }
+
+ String getPackageName() {
+ if (type.primitive) {
+ return DocPackage.PRIMITIVE_TYPE_PSEUDO_PACKAGE
+ }
+ def fqcn = fullyQualifiedClassName
+ if (fqcn.indexOf(".") < 0) {
+ return ""
+ }
+ fqcn.replaceAll(/\.[^.]*$/, '')
+ }
+
+ String getSimpleClassName() {
+ fullyQualifiedClassName.replaceAll(/^.*\./, '')
+ }
+
+ String getFullyQualifiedClassName() {
+ if (type.primitive) {
+ return DocPackage.PRIMITIVE_TYPE_PSEUDO_PACKAGE + '.' + type.toString()
+ }
+ DocUtil.resolveJdkClassName(type.toString())
+ }
+
+ boolean isInterface() {
+ type.javaClass.isInterface()
+ }
+
+ String getSortKey() {
+ simpleClassName + ' ' + fullyQualifiedClassName
+ }
+
+ String linkAnchor(DocType otherDocType) {
+ DocUtil.getLinkAnchor(otherDocType.fullyQualifiedClassName, packageName)
+ }
+ }
+
+ private static class DocMethod {
+ DocType declaringDocType
+ JavaMethod javaMethod
+
+ String getName() {
+ javaMethod.name
+ }
+
+ /**
+ * Retrieve the parameters of the method.
+ *
+ * @param method a method
+ * @return a list of parameters without the first one
+ */
+ List<JavaParameter> getParameters() {
+ if (javaMethod.getParameters().size() > 1) {
+ return javaMethod.getParameters().toList()[1..-1]
+ }
+ return []
+ }
+
+ String getParametersSignature() {
+ parameters.collect { DocUtil.resolveJdkClassName(it.type.toString()) }.join(", ")
+ }
+
+ String getParametersDocUrl() {
+ parameters.collect { "${DocUtil.getLinkAnchor(it.type.toString(), declaringDocType.packageName)} $it.name" }.join(", ")
+ }
+
+ String getReturnTypeDocUrl() {
+ def returnType = javaMethod.returnType
+ def resolvedReturnType = (returnType) ? DocUtil.resolveJdkClassName(returnType.toString()) : ""
+ DocUtil.getLinkAnchor(resolvedReturnType, declaringDocType.packageName)
+ }
+
+ String getComment() {
+ DocUtil.formatJavadocText(javaMethod.comment ?: '', declaringDocType.packageName)
+ }
+
+ String getShortComment() {
+ DocUtil.formatJavadocText(DocUtil.getFirstSentence(javaMethod.comment ?: ''), declaringDocType.packageName)
+ }
+
+ String getReturnComment() {
+ DocUtil.formatJavadocText(javaMethod.getTagByName("return")?.value ?: '', declaringDocType.packageName)
+ }
+
+ Map getParameterComments() {
+ javaMethod.getTagsByName("param").drop(1).collectEntries { // first arg is the "real this"
+ def name = it.value.replaceAll(/ .*/, '')
+ def comment = DocUtil.formatJavadocText(it.value.replaceAll(/^\w*/, ''), declaringDocType.packageName)
+ [name, comment]
+ }
+ }
+
+ List<String> getSeeComments() {
+ javaMethod.getTagsByName("see").collect { DocUtil.getLinkAnchor(it.value, declaringDocType.packageName) }
+ }
+
+ String getSinceComment() {
+ javaMethod.getTagByName("since")?.value
+ }
+
+ boolean isStatic() {
+ javaMethod.parentClass.name == 'DefaultGroovyStaticMethods'
+ }
+
+ String getSortKey() {
+ name + ' ' + parametersSignature + ' ' + declaringDocType.fullyQualifiedClassName
+ }
+ }
+
+ private static class DocUtil {
+ static String resolveJdkClassName(String className) {
+ if (className in 'A'..'Z') {
+ return 'java.lang.Object'
+ }
+ if (className in ('A'..'Z').collect{ it + '[]' }) {
+ return 'java.lang.Object[]'
+ }
+ return className
+ }
+
+ static String formatJavadocText(String text, String packageName) {
+ linkify(codify(text), packageName)
+ }
+
+ private static String linkify(String text, String packageName) {
+ text.replaceAll(/\{@link\s+([^}]*)\s*\}/) { String all, String destination ->
+ // A class name cannot be omitted: https://issues.apache.org/jira/browse/GROOVY-6740 TODO: remove DocUtil once fixed?
+ DocUtil.getLinkAnchor(destination, packageName)
+ }
+ }
+
+ private static String codify(String text) {
+ text.replaceAll(/\{@code\s+([^}]*)\s*\}/) { String all, String code -> """<code>${code}</code>""" }
+ }
+
+ static String getFirstSentence(String text) {
+ def boundary = BreakIterator.getSentenceInstance(CONFIG.locale)
+ boundary.setText(text)
+ int start = boundary.first()
+ int end = boundary.next()
+ if (start > -1 && end > -1) {
+ return text.substring(start, end)
+ }
+ return text
+ }
+
+ static String getLinkAnchor(String destination, String originPackageName) {
+ // resolving a destination if it's in GDK.
+ def inGdk = destination.startsWith('#')
+ if (inGdk) {
+ (destination =~ /#([^(]*)\(([^)]+)\)/).each { String all, String name, String argsText ->
+ def args = argsText.split(/,\s?/).toList()
+ def first = args.remove(0)
+ destination = "$first#$name(${args.join(', ')})".toString()
+ }
+ }
+
+ def fullyQualifiedClassName = resolveJdkClassName(destination.replaceFirst(/#.*$/, ''))
+ def methodSignatureHash = destination.replaceFirst(/^[^#]*/, '')
+ def simpleClassName = fullyQualifiedClassName.replaceFirst(/.*\./, "")
+ def packageName = fullyQualifiedClassName.replaceFirst(/.?[^.]+$/, '')
+
+ // If a package is empty, a destination text should be just returned
+ // because a link to the right documentation location cannot be made.
+ if (packageName.empty) {
+ return destination
+ }
+
+ def apiBaseUrl, title
+ if (inGdk) {
+ apiBaseUrl = '../' * (originPackageName.count('.') + 1)
+ title = "GDK enhancement for ${fullyQualifiedClassName}"
+ } else {
+ title = "Class in $packageName"
+ apiBaseUrl = './'
+ String key = CONFIG.links.keySet().find{ packageName.startsWith(it) }
+ if (key) {
+ apiBaseUrl = CONFIG.links[key]
+ if (apiBaseUrl.startsWith('..')) apiBaseUrl = '../' * (originPackageName.count('.') + 1) + apiBaseUrl
+
+ }
+ }
+
+ def url = "${apiBaseUrl}${packageName.replace('.', '/')}/${simpleClassName}.html${methodSignatureHash}"
+ return """<a href="$url" title="$title">${simpleClassName}${methodSignatureHash}</a>"""
+ }
+
+ static File createPackageDirectory(File outputDir, String packageName) {
+ def packagePath = filePathOf(packageName)
+ def dir = new File(outputDir, packagePath)
+ dir.mkdirs()
+ return dir
+ }
+
+ private static String filePathOf(String packageName) {
+ def fileSep = File.separator
+ // need to escape separator on windows for regex's sake
+ if (fileSep == '\\') fileSep *= 2
+ return packageName.replaceAll(/\./, fileSep)
+ }
+
+ static File sourceFileOf(String pathOrClassName) {
+ // TODO don't hardcode like this
+ if (pathOrClassName.contains("/")) {
+ return new File(pathOrClassName)
+ }
+ new File("src/main/java/" + pathOrClassName.replace('.', '/') + ".java")
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/groovy/blob/c8e8c7b6/subprojects/groovy-docgenerator/src/main/groovy/org/codehaus/groovy/tools/DocGenerator.groovy
----------------------------------------------------------------------
diff --git a/subprojects/groovy-docgenerator/src/main/groovy/org/codehaus/groovy/tools/DocGenerator.groovy b/subprojects/groovy-docgenerator/src/main/groovy/org/codehaus/groovy/tools/DocGenerator.groovy
index 3822935..79b33cb 100644
--- a/subprojects/groovy-docgenerator/src/main/groovy/org/codehaus/groovy/tools/DocGenerator.groovy
+++ b/subprojects/groovy-docgenerator/src/main/groovy/org/codehaus/groovy/tools/DocGenerator.groovy
@@ -18,529 +18,16 @@
*/
package org.codehaus.groovy.tools
-import com.thoughtworks.qdox.JavaDocBuilder
-import com.thoughtworks.qdox.model.JavaClass
-import com.thoughtworks.qdox.model.JavaMethod
-import com.thoughtworks.qdox.model.JavaParameter
-import com.thoughtworks.qdox.model.Type
-import groovy.cli.picocli.CliBuilder
-import groovy.text.SimpleTemplateEngine
-import groovy.text.Template
-import groovy.text.TemplateEngine
-import org.codehaus.groovy.runtime.DefaultGroovyMethods
-import org.codehaus.groovy.tools.shell.util.Logger
-import org.codehaus.groovy.tools.shell.util.MessageSource
-
-import java.text.BreakIterator
-import java.util.concurrent.ConcurrentHashMap
-
-/**
- * Generate documentation about the methods provided by the Groovy Development Kit
- * that enhance the standard JDK classes.
- */
+@Deprecated
class DocGenerator {
- private static final MessageSource messages = new MessageSource(DocGenerator)
- private static final Logger log = Logger.create(DocGenerator)
- private static final Comparator SORT_KEY_COMPARATOR = [compare: { a, b -> return a.sortKey.compareTo(b.sortKey) }] as Comparator
- private static final Map<String, Object> CONFIG = new ConcurrentHashMap<String, Object>();
-
- List<File> sourceFiles
- File outputDir
- DocSource docSource
+ @Delegate
+ org.apache.groovy.docgenerator.DocGenerator delegate
DocGenerator(List<File> sourceFiles, File outputFolder) {
- this.sourceFiles = sourceFiles
- this.outputDir = outputFolder
- this.docSource = parseSource(sourceFiles)
- }
-
- /**
- * Parse the *GroovyMethods (DGM) classes to build a graph representing the structure of the class,
- * with its methods, javadoc comments and tags.
- */
- private static DocSource parseSource(List<File> sourceFiles) {
- JavaDocBuilder builder = new JavaDocBuilder()
- sourceFiles.each {
- if (it.exists()) {
- builder.addSource(it.newReader())
- log.debug "adding reader for $it"
- } else {
- log.debug "not found, skipping: $it.path"
- }
- }
-
- def methods = builder.sources.collectMany { source ->
- source.classes.collectMany { aClass ->
- aClass.methods.findAll { !it.annotations.any { it.type.fullyQualifiedName == 'java.lang.Deprecated' } }
- }
- }
-
- def docSource = new DocSource()
- methods.each { JavaMethod method ->
- if (!method.isPublic() || !method.isStatic()) {
- return // skip it
- }
-
- def firstParam = method.parameters[0]
- def firstParamType = firstParam.resolvedValue.isEmpty() ? firstParam.type : new Type(firstParam.resolvedValue, 0, firstParam.parentClass)
- docSource.add(firstParamType, method)
- }
- docSource.populateInheritedMethods()
- return docSource
- }
-
- /**
- * Builds an HTML page from the structure of DefaultGroovyMethods.
- */
- void generateAll() {
- def engine = new SimpleTemplateEngine()
-
- // the index.html
- def indexTemplate = createTemplate(engine, 'index.html')
- new File(outputDir, 'index.html').withWriter {
- it << indexTemplate.make(title: CONFIG.title)
- }
-
- // the overview-summary.html
- def overviewTemplate = createTemplate(engine, 'overview-summary.html')
- new File(outputDir, 'overview-summary.html').withWriter {
- it << overviewTemplate.make(title: CONFIG.title)
- }
-
- // the overview-frame.html
- def overviewFrameTemplate = createTemplate(engine, 'template.overview-frame.html')
- new File(outputDir, 'overview-frame.html').withWriter {
- def docPackagesExceptPrimitiveType = docSource.packages.findAll { !it.primitive }
- it << overviewFrameTemplate.make(packages: docPackagesExceptPrimitiveType, title: CONFIG.title)
- }
-
- // the package-list
- new File(outputDir, 'package-list').withWriter { writer ->
- docSource.packages*.name.each { writer.println it }
- }
-
- // the allclasses-frame.html
- def allClassesTemplate = createTemplate(engine, 'template.allclasses-frame.html')
- new File(outputDir, 'allclasses-frame.html').withWriter {
- it << allClassesTemplate.make(docTypes: docSource.allDocTypes, title: CONFIG.title)
- }
-
- // the package-frame.html and package-summary.html for each package
- def packageFrameTemplate = createTemplate(engine, 'template.package-frame.html')
- def packageSummaryTemplate = createTemplate(engine, 'template.package-summary.html')
- docSource.packages.each { DocPackage docPackage ->
- def dir = DocUtil.createPackageDirectory(outputDir, docPackage.name)
- new File(dir, 'package-frame.html').withWriter {
- it << packageFrameTemplate.make(docPackage: docPackage, title: CONFIG.title)
- }
- new File(dir, 'package-summary.html').withWriter {
- it << packageSummaryTemplate.make(docPackage: docPackage, title: CONFIG.title)
- }
- }
-
- // the class.html for each class
- def classTemplate = createTemplate(engine, 'template.class.html')
- docSource.allDocTypes.each { DocType docType ->
- def dir = DocUtil.createPackageDirectory(outputDir, docType.packageName)
- new File(dir, docType.simpleClassName + '.html').withWriter {
- it << classTemplate.make(docType: docType, title: CONFIG.title)
- }
- }
-
- // the index-all.html
- def indexAllTemplate = createTemplate(engine, 'template.index-all.html')
- new File(outputDir, 'index-all.html').withWriter {
- it << indexAllTemplate.make('indexMap': generateIndexMap(), title: CONFIG.title)
- }
-
- // copy resources
- ['groovy.ico', 'stylesheet.css'].each { String resource ->
- new File(outputDir, resource) << getClass().getResource(resource).bytes
- }
- }
-
- private Template createTemplate(TemplateEngine templateEngine, String resourceFile) {
- def resourceUrl = getClass().getResource(resourceFile)
- return templateEngine.createTemplate(resourceUrl.text)
- }
-
- /**
- * Generate an index map for index-all.html.
- * <p>
- * This method creates a index map indexed by the first letter of the
- * method in upper case, the map value is a list of methods.
- * <p>
- * e.g.: 'A' : [ m1, m2, m3 .. ]
- * The values m1, m2, m3 are sorted by the method name, and the parameter signature.
- * The method names of m1, m2, m3 start either with 'a', or 'A'.
- *
- * @return indexMap
- */
- private Map generateIndexMap() {
- def indexItems = []
- docSource.allDocTypes.each { DocType docType ->
- // the class
- indexItems << [
- index: docType.simpleClassName.capitalize()[0],
- docType: docType,
- sortKey: docType.sortKey,
- ]
-
- // the methods
- docType.docMethods.each { DocMethod docMethod ->
- indexItems << [
- index: docMethod.javaMethod.name.capitalize()[0],
- docType: docType,
- docMethod: docMethod,
- sortKey: docMethod.sortKey
- ]
- }
- }
- def indexMap = new TreeMap().withDefault { new TreeSet(SORT_KEY_COMPARATOR) }
- for (indexItem in indexItems) {
- indexMap[indexItem['index']] << indexItem
- }
- return indexMap
+ delegate = new org.apache.groovy.docgenerator.DocGenerator(sourceFiles, outputFolder)
}
- /**
- * Main entry point.
- */
static void main(String... args) {
- def cli = new CliBuilder(usage : 'DocGenerator [options] [sourcefiles]', posix:false)
- cli.help(longOpt: 'help', messages['cli.option.help.description'])
- cli._(longOpt: 'version', messages['cli.option.version.description'])
- cli.o(longOpt: 'outputDir', args:1, argName: 'path', messages['cli.option.output.dir.description'])
- cli.title(longOpt: 'title', args:1, argName: 'text', messages['cli.option.title.description'])
- cli.link(args:2, valueSeparator:'=', argName:'comma-separated-package-prefixes=url',
- messages['cli.option.link.patterns.description'])
- def options = cli.parse(args)
-
- if (options.help) {
- cli.usage()
- return
- }
-
- if (options.links && options.links.size() % 2 == 1) {
- throw new IllegalArgumentException("Links should be specified in pattern=url pairs")
- }
-
- if (options.version) {
- println messages.format('cli.info.version', GroovySystem.version)
- return
- }
-
- def start = System.currentTimeMillis()
-
- def outputDir = new File(options.outputDir ?: "target/html/groovy-jdk")
- outputDir.mkdirs()
- CONFIG.title = options.title ?: "Groovy JDK"
- if (options.links) {
- CONFIG.links = options.links.collate(2).collectMany{ prefixes, url -> prefixes.tokenize(',').collect{[it, url]} }.collectEntries()
- }
- CONFIG.locale = Locale.default // TODO allow locale to be passed in
-
- def srcFiles = options.arguments().collect { DocUtil.sourceFileOf(it) }
- try {
- DefaultGroovyMethods.ADDITIONAL_CLASSES.each { aClass ->
- def className = aClass.name.replaceAll(/\$.*/, '')
- def additionalFile = DocUtil.sourceFileOf(className)
- if (srcFiles.every { it.canonicalPath != additionalFile.canonicalPath }) {
- srcFiles << additionalFile
- }
- }
- } catch (MissingPropertyException e) { // TODO is it still needed?
- // no call site change available, so ignore it
- log.error e.message, e
- }
-
- def docGen = new DocGenerator(srcFiles, outputDir)
- docGen.generateAll()
-
- def end = System.currentTimeMillis()
- log.debug "Done. Took ${end - start} milliseconds."
- }
-
- private static class DocSource {
- SortedSet<DocPackage> packages = new TreeSet<DocPackage>(SORT_KEY_COMPARATOR)
-
- void add(Type type, JavaMethod javaMethod) {
- DocType tempDocType = new DocType(type: type)
-
- DocPackage aPackage = packages.find { it.name == tempDocType.packageName }
- if (!aPackage) {
- aPackage = new DocPackage(name: tempDocType.packageName)
- packages << aPackage
- }
-
- DocType docType = aPackage.docTypes.find { it.fullyQualifiedClassName == tempDocType.fullyQualifiedClassName }
- if (!docType) {
- docType = tempDocType
- aPackage.docTypes << docType
- }
-
- def docMethod = new DocMethod(declaringDocType: docType, javaMethod: javaMethod)
- docType.docMethods << docMethod
- }
-
- void populateInheritedMethods() {
- def allTypes = allDocTypes.collectEntries{ [it.fullyQualifiedClassName, it] }
- allTypes.each { name, docType ->
- if (name.endsWith('[]') || name.startsWith('primitive-types')) return
- Type next = docType.javaClass.superClass
- while (next != null) {
- if (allTypes.keySet().contains(next.value)) {
- docType.inheritedMethods[allTypes[next.value]] = allTypes[next.value].docMethods
- }
- next = next.javaClass.superClass
- }
- def remaining = docType.javaClass.implementedInterfaces.toList()
- while (!remaining.isEmpty()) {
- def nextInt = remaining.remove(0)
- if (allTypes.keySet().contains(nextInt.fullyQualifiedName)) {
- docType.inheritedMethods[allTypes[nextInt.fullyQualifiedName]] = allTypes[nextInt.fullyQualifiedName].docMethods
- }
- remaining.addAll(nextInt.implementedInterfaces.toList())
- }
- }
- }
-
- SortedSet<DocType> getAllDocTypes() {
- def allSet = new TreeSet(SORT_KEY_COMPARATOR)
- allSet.addAll(packages.collectMany { it.docTypes })
- return allSet
- }
- }
-
- private static class DocPackage {
- static final String PRIMITIVE_TYPE_PSEUDO_PACKAGE = 'primitive-types'
- String name
- SortedSet<DocType> docTypes = new TreeSet<DocType>(SORT_KEY_COMPARATOR)
-
- boolean isPrimitive() {
- name == PRIMITIVE_TYPE_PSEUDO_PACKAGE
- }
-
- String getSortKey() {
- name
- }
- }
-
- private static class DocType {
- private Type type
- final String shortComment = "" // empty because cannot get a comment of JDK
- SortedSet<DocMethod> docMethods = new TreeSet<DocMethod>(SORT_KEY_COMPARATOR)
- Map<String, List<DocMethod>> inheritedMethods = new LinkedHashMap<String, List<DocMethod>>()
-
- JavaClass getJavaClass() {
- type.javaClass
- }
-
- String getPackageName() {
- if (type.primitive) {
- return DocPackage.PRIMITIVE_TYPE_PSEUDO_PACKAGE
- }
- def fqcn = fullyQualifiedClassName
- if (fqcn.indexOf(".") < 0) {
- return ""
- }
- fqcn.replaceAll(/\.[^.]*$/, '')
- }
-
- String getSimpleClassName() {
- fullyQualifiedClassName.replaceAll(/^.*\./, '')
- }
-
- String getFullyQualifiedClassName() {
- if (type.primitive) {
- return DocPackage.PRIMITIVE_TYPE_PSEUDO_PACKAGE + '.' + type.toString()
- }
- DocUtil.resolveJdkClassName(type.toString())
- }
-
- boolean isInterface() {
- type.javaClass.isInterface()
- }
-
- String getSortKey() {
- simpleClassName + ' ' + fullyQualifiedClassName
- }
-
- String linkAnchor(DocType otherDocType) {
- DocUtil.getLinkAnchor(otherDocType.fullyQualifiedClassName, packageName)
- }
- }
-
- private static class DocMethod {
- DocType declaringDocType
- JavaMethod javaMethod
-
- String getName() {
- javaMethod.name
- }
-
- /**
- * Retrieve the parameters of the method.
- *
- * @param method a method
- * @return a list of parameters without the first one
- */
- List<JavaParameter> getParameters() {
- if (javaMethod.getParameters().size() > 1) {
- return javaMethod.getParameters().toList()[1..-1]
- }
- return []
- }
-
- String getParametersSignature() {
- parameters.collect { DocUtil.resolveJdkClassName(it.type.toString()) }.join(", ")
- }
-
- String getParametersDocUrl() {
- parameters.collect { "${DocUtil.getLinkAnchor(it.type.toString(), declaringDocType.packageName)} $it.name" }.join(", ")
- }
-
- String getReturnTypeDocUrl() {
- def returnType = javaMethod.returnType
- def resolvedReturnType = (returnType) ? DocUtil.resolveJdkClassName(returnType.toString()) : ""
- DocUtil.getLinkAnchor(resolvedReturnType, declaringDocType.packageName)
- }
-
- String getComment() {
- DocUtil.formatJavadocText(javaMethod.comment ?: '', declaringDocType.packageName)
- }
-
- String getShortComment() {
- DocUtil.formatJavadocText(DocUtil.getFirstSentence(javaMethod.comment ?: ''), declaringDocType.packageName)
- }
-
- String getReturnComment() {
- DocUtil.formatJavadocText(javaMethod.getTagByName("return")?.value ?: '', declaringDocType.packageName)
- }
-
- Map getParameterComments() {
- javaMethod.getTagsByName("param").drop(1).collectEntries { // first arg is the "real this"
- def name = it.value.replaceAll(/ .*/, '')
- def comment = DocUtil.formatJavadocText(it.value.replaceAll(/^\w*/, ''), declaringDocType.packageName)
- [name, comment]
- }
- }
-
- List<String> getSeeComments() {
- javaMethod.getTagsByName("see").collect { DocUtil.getLinkAnchor(it.value, declaringDocType.packageName) }
- }
-
- String getSinceComment() {
- javaMethod.getTagByName("since")?.value
- }
-
- boolean isStatic() {
- javaMethod.parentClass.name == 'DefaultGroovyStaticMethods'
- }
-
- String getSortKey() {
- name + ' ' + parametersSignature + ' ' + declaringDocType.fullyQualifiedClassName
- }
- }
-
- private static class DocUtil {
- static String resolveJdkClassName(String className) {
- if (className in 'A'..'Z') {
- return 'java.lang.Object'
- }
- if (className in ('A'..'Z').collect{ it + '[]' }) {
- return 'java.lang.Object[]'
- }
- return className
- }
-
- static String formatJavadocText(String text, String packageName) {
- linkify(codify(text), packageName)
- }
-
- private static String linkify(String text, String packageName) {
- text.replaceAll(/\{@link\s+([^}]*)\s*\}/) { String all, String destination ->
- // A class name cannot be omitted: https://issues.apache.org/jira/browse/GROOVY-6740 TODO: remove DocUtil once fixed?
- DocUtil.getLinkAnchor(destination, packageName)
- }
- }
-
- private static String codify(String text) {
- text.replaceAll(/\{@code\s+([^}]*)\s*\}/) { String all, String code -> """<code>${code}</code>""" }
- }
-
- static String getFirstSentence(String text) {
- def boundary = BreakIterator.getSentenceInstance(CONFIG.locale)
- boundary.setText(text)
- int start = boundary.first()
- int end = boundary.next()
- if (start > -1 && end > -1) {
- return text.substring(start, end)
- }
- return text
- }
-
- static String getLinkAnchor(String destination, String originPackageName) {
- // resolving a destination if it's in GDK.
- def inGdk = destination.startsWith('#')
- if (inGdk) {
- (destination =~ /#([^(]*)\(([^)]+)\)/).each { String all, String name, String argsText ->
- def args = argsText.split(/,\s?/).toList()
- def first = args.remove(0)
- destination = "$first#$name(${args.join(', ')})".toString()
- }
- }
-
- def fullyQualifiedClassName = resolveJdkClassName(destination.replaceFirst(/#.*$/, ''))
- def methodSignatureHash = destination.replaceFirst(/^[^#]*/, '')
- def simpleClassName = fullyQualifiedClassName.replaceFirst(/.*\./, "")
- def packageName = fullyQualifiedClassName.replaceFirst(/.?[^.]+$/, '')
-
- // If a package is empty, a destination text should be just returned
- // because a link to the right documentation location cannot be made.
- if (packageName.empty) {
- return destination
- }
-
- def apiBaseUrl, title
- if (inGdk) {
- apiBaseUrl = '../' * (originPackageName.count('.') + 1)
- title = "GDK enhancement for ${fullyQualifiedClassName}"
- } else {
- title = "Class in $packageName"
- apiBaseUrl = './'
- String key = CONFIG.links.keySet().find{ packageName.startsWith(it) }
- if (key) {
- apiBaseUrl = CONFIG.links[key]
- if (apiBaseUrl.startsWith('..')) apiBaseUrl = '../' * (originPackageName.count('.') + 1) + apiBaseUrl
-
- }
- }
-
- def url = "${apiBaseUrl}${packageName.replace('.', '/')}/${simpleClassName}.html${methodSignatureHash}"
- return """<a href="$url" title="$title">${simpleClassName}${methodSignatureHash}</a>"""
- }
-
- static File createPackageDirectory(File outputDir, String packageName) {
- def packagePath = filePathOf(packageName)
- def dir = new File(outputDir, packagePath)
- dir.mkdirs()
- return dir
- }
-
- private static String filePathOf(String packageName) {
- def fileSep = File.separator
- // need to escape separator on windows for regex's sake
- if (fileSep == '\\') fileSep *= 2
- return packageName.replaceAll(/\./, fileSep)
- }
-
- static File sourceFileOf(String pathOrClassName) {
- // TODO don't hardcode like this
- if (pathOrClassName.contains("/")) {
- return new File(pathOrClassName)
- }
- new File("src/main/java/" + pathOrClassName.replace('.', '/') + ".java")
- }
+ org.apache.groovy.docgenerator.DocGenerator.main(args)
}
}
http://git-wip-us.apache.org/repos/asf/groovy/blob/c8e8c7b6/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/DocGenerator.properties
----------------------------------------------------------------------
diff --git a/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/DocGenerator.properties b/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/DocGenerator.properties
new file mode 100644
index 0000000..5c54aec
--- /dev/null
+++ b/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/DocGenerator.properties
@@ -0,0 +1,34 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+#
+# CLI messages
+#
+
+cli.option.help.description=Display this help message
+
+cli.option.version.description=Display the version
+
+cli.option.title.description=Title to appear in html, default "Groovy JDK"
+
+cli.option.output.dir.description=The output directory, default "target/html/groovy-jdk"
+
+cli.option.link.patterns.description=The JavaDoc URLs for the given package prefixes
+
+cli.info.version=@|green DocGenerator|@ {0}
http://git-wip-us.apache.org/repos/asf/groovy/blob/c8e8c7b6/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/groovy.ico
----------------------------------------------------------------------
diff --git a/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/groovy.ico b/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/groovy.ico
new file mode 100644
index 0000000..9e9b8d8
Binary files /dev/null and b/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/groovy.ico differ
http://git-wip-us.apache.org/repos/asf/groovy/blob/c8e8c7b6/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/index.html
----------------------------------------------------------------------
diff --git a/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/index.html b/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/index.html
new file mode 100644
index 0000000..87d9028
--- /dev/null
+++ b/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/index.html
@@ -0,0 +1,95 @@
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<html>
+<head>
+<title>
+$title
+</title>
+<link href="groovy.ico" type="image/x-icon" rel="shortcut icon">
+<link href="groovy.ico" type="image/x-icon" rel="icon">
+
+<script type="text/javascript">
+ targetPage = "" + window.location.search;
+ if (targetPage != "" && targetPage != "undefined")
+ targetPage = targetPage.substring(1);
+ if (targetPage.indexOf(":") != -1)
+ targetPage = "undefined";
+ if (targetPage != "" && !validURL(targetPage))
+ targetPage = "undefined";
+ function validURL(url) {
+ var pos = url.indexOf(".html");
+ if (pos == -1 || pos != url.length - 5)
+ return false;
+ var allowNumber = false;
+ var allowSep = false;
+ var seenDot = false;
+ for (var i = 0; i < url.length - 5; i++) {
+ var ch = url.charAt(i);
+ if ('a' <= ch && ch <= 'z' ||
+ 'A' <= ch && ch <= 'Z' ||
+ ch == '\$' ||
+ ch == '_') {
+ allowNumber = true;
+ allowSep = true;
+ } else if ('0' <= ch && ch <= '9'
+ || ch == '-') {
+ if (!allowNumber)
+ return false;
+ } else if (ch == '/' || ch == '.') {
+ if (!allowSep)
+ return false;
+ allowNumber = false;
+ allowSep = false;
+ if (ch == '.')
+ seenDot = true;
+ if (ch == '/' && seenDot)
+ return false;
+ } else {
+ return false;
+ }
+ }
+ return true;
+ }
+ function loadFrames() {
+ if (targetPage != "" && targetPage != "undefined")
+ top.classFrame.location = top.targetPage;
+ }
+</script>
+</head>
+<frameset cols="20%,80%" title="" onLoad="top.loadFrames()">
+<frameset rows="30%,70%" title="" onLoad="top.loadFrames()">
+ <frame src="overview-frame.html" name="packageListFrame" title="All Packages">
+ <frame src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
+</frameset>
+
+<frame src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
+<noframes>
+<h2>
+Frame Alert</h2>
+<P>
+This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
+<br>
+Link to<A HREF="overview-summary.html">Non-frame version.</A>
+</P>
+</noframes>
+</frameset>
+</html>
http://git-wip-us.apache.org/repos/asf/groovy/blob/c8e8c7b6/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/overview-summary.html
----------------------------------------------------------------------
diff --git a/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/overview-summary.html b/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/overview-summary.html
new file mode 100644
index 0000000..17ab69f
--- /dev/null
+++ b/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/overview-summary.html
@@ -0,0 +1,58 @@
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<html>
+<head>
+ <title>Overview ($title)</title>
+ <link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+ <script type="text/javascript">
+ function windowTitle() {
+ parent.document.title = document.title;
+ }
+ </script>
+</head>
+
+<body class="center" onload="windowTitle();">
+
+ <!-- ========== START OF NAVBAR ========== -->
+ <a name="navbar_top"><!-- --></a>
+
+ <div class="topNav">
+ <ul class="navList" title="Navigation">
+ <li class="navBarCell1Rev">Overview</li>
+ <li>Package</li>
+ <li>Class</li>
+ <li><a href="index-all.html">Index</a></li>
+ </ul>
+ </div>
+ <!-- =========== END OF NAVBAR =========== -->
+
+ <div class="header">
+ <h1>Groovy JDK API Documentation</h1>
+ <h2>Version ${GroovySystem.version}</h2>
+ </div>
+
+ <div class="container">
+ <p>This document describes the methods added to the JDK to make it more groovy.</p>
+ </div>
+
+</body>
+</html>
[4/5] groovy git commit: GROOVY-8593: DocGenerator could be moved to
avoid split packages (closes #715)
Posted by pa...@apache.org.
http://git-wip-us.apache.org/repos/asf/groovy/blob/c8e8c7b6/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/stylesheet.css
----------------------------------------------------------------------
diff --git a/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/stylesheet.css b/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/stylesheet.css
new file mode 100644
index 0000000..3aba844
--- /dev/null
+++ b/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/stylesheet.css
@@ -0,0 +1,2321 @@
+@charset "${props.charset}";
+
+/*! normalize.css v2.1.0 | MIT License | git.io/normalize */
+article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary {
+ display: block
+}
+
+audio, canvas, video {
+ display: inline-block
+}
+
+audio:not([controls]) {
+ display: none;
+ height: 0
+}
+
+[hidden] {
+ display: none
+}
+
+html {
+ font-family: sans-serif;
+ -webkit-text-size-adjust: 100%;
+ -ms-text-size-adjust: 100%
+}
+
+body {
+ margin: 0
+}
+
+a:focus {
+ outline: thin dotted
+}
+
+a:active, a:hover {
+ outline: 0
+}
+
+h1 {
+ font-size: 2em;
+ margin: .67em 0
+}
+
+abbr[title] {
+ border-bottom: 1px dotted
+}
+
+b, strong {
+ font-weight: bold
+}
+
+dfn {
+ font-style: italic
+}
+
+hr {
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ height: 0
+}
+
+mark {
+ background: #ff0;
+ color: #000
+}
+
+code, kbd, pre, samp {
+ font-family: monospace, serif;
+ font-size: 1em
+}
+
+pre {
+ white-space: pre-wrap
+}
+
+q {
+ quotes: "\201C" "\201D" "\2018" "\2019"
+}
+
+small {
+ font-size: 80%
+}
+
+sub, sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline
+}
+
+sup {
+ top: -0.5em
+}
+
+sub {
+ bottom: -0.25em
+}
+
+img {
+ border: 0
+}
+
+svg:not(:root) {
+ overflow: hidden
+}
+
+figure {
+ margin: 0
+}
+
+fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: .35em .625em .75em
+}
+
+legend {
+ border: 0;
+ padding: 0
+}
+
+button, input, select, textarea {
+ font-family: inherit;
+ font-size: 100%;
+ margin: 0
+}
+
+button, input {
+ line-height: normal
+}
+
+button, select {
+ text-transform: none
+}
+
+button, html input[type="button"], input[type="reset"], input[type="submit"] {
+ -webkit-appearance: button;
+ cursor: pointer
+}
+
+button[disabled], html input[disabled] {
+ cursor: default
+}
+
+input[type="checkbox"], input[type="radio"] {
+ box-sizing: border-box;
+ padding: 0
+}
+
+input[type="search"] {
+ -webkit-appearance: textfield;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box
+}
+
+input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none
+}
+
+button::-moz-focus-inner, input::-moz-focus-inner {
+ border: 0;
+ padding: 0
+}
+
+textarea {
+ overflow: auto;
+ vertical-align: top
+}
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0
+}
+
+@-ms-viewport {
+ width: device-width
+}
+
+@media screen and (max-width: 400px) {
+ @-ms-viewport {
+ width: 320px
+ }
+}
+
+.hidden {
+ display: none !important;
+ visibility: hidden !important
+}
+
+.visible-xs {
+ display: none !important
+}
+
+tr.visible-xs {
+ display: none !important
+}
+
+th.visible-xs, td.visible-xs {
+ display: none !important
+}
+
+@media (max-width: 767px) {
+ .visible-xs {
+ display: block !important
+ }
+
+ tr.visible-xs {
+ display: table-row !important
+ }
+
+ th.visible-xs, td.visible-xs {
+ display: table-cell !important
+ }
+}
+
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-xs.visible-sm {
+ display: block !important
+ }
+
+ tr.visible-xs.visible-sm {
+ display: table-row !important
+ }
+
+ th.visible-xs.visible-sm, td.visible-xs.visible-sm {
+ display: table-cell !important
+ }
+}
+
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-xs.visible-md {
+ display: block !important
+ }
+
+ tr.visible-xs.visible-md {
+ display: table-row !important
+ }
+
+ th.visible-xs.visible-md, td.visible-xs.visible-md {
+ display: table-cell !important
+ }
+}
+
+@media (min-width: 1200px) {
+ .visible-xs.visible-lg {
+ display: block !important
+ }
+
+ tr.visible-xs.visible-lg {
+ display: table-row !important
+ }
+
+ th.visible-xs.visible-lg, td.visible-xs.visible-lg {
+ display: table-cell !important
+ }
+}
+
+.visible-sm {
+ display: none !important
+}
+
+tr.visible-sm {
+ display: none !important
+}
+
+th.visible-sm, td.visible-sm {
+ display: none !important
+}
+
+@media (max-width: 767px) {
+ .visible-sm.visible-xs {
+ display: block !important
+ }
+
+ tr.visible-sm.visible-xs {
+ display: table-row !important
+ }
+
+ th.visible-sm.visible-xs, td.visible-sm.visible-xs {
+ display: table-cell !important
+ }
+}
+
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm {
+ display: block !important
+ }
+
+ tr.visible-sm {
+ display: table-row !important
+ }
+
+ th.visible-sm, td.visible-sm {
+ display: table-cell !important
+ }
+}
+
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-sm.visible-md {
+ display: block !important
+ }
+
+ tr.visible-sm.visible-md {
+ display: table-row !important
+ }
+
+ th.visible-sm.visible-md, td.visible-sm.visible-md {
+ display: table-cell !important
+ }
+}
+
+@media (min-width: 1200px) {
+ .visible-sm.visible-lg {
+ display: block !important
+ }
+
+ tr.visible-sm.visible-lg {
+ display: table-row !important
+ }
+
+ th.visible-sm.visible-lg, td.visible-sm.visible-lg {
+ display: table-cell !important
+ }
+}
+
+.visible-md {
+ display: none !important
+}
+
+tr.visible-md {
+ display: none !important
+}
+
+th.visible-md, td.visible-md {
+ display: none !important
+}
+
+@media (max-width: 767px) {
+ .visible-md.visible-xs {
+ display: block !important
+ }
+
+ tr.visible-md.visible-xs {
+ display: table-row !important
+ }
+
+ th.visible-md.visible-xs, td.visible-md.visible-xs {
+ display: table-cell !important
+ }
+}
+
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-md.visible-sm {
+ display: block !important
+ }
+
+ tr.visible-md.visible-sm {
+ display: table-row !important
+ }
+
+ th.visible-md.visible-sm, td.visible-md.visible-sm {
+ display: table-cell !important
+ }
+}
+
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md {
+ display: block !important
+ }
+
+ tr.visible-md {
+ display: table-row !important
+ }
+
+ th.visible-md, td.visible-md {
+ display: table-cell !important
+ }
+}
+
+@media (min-width: 1200px) {
+ .visible-md.visible-lg {
+ display: block !important
+ }
+
+ tr.visible-md.visible-lg {
+ display: table-row !important
+ }
+
+ th.visible-md.visible-lg, td.visible-md.visible-lg {
+ display: table-cell !important
+ }
+}
+
+.visible-lg {
+ display: none !important
+}
+
+tr.visible-lg {
+ display: none !important
+}
+
+th.visible-lg, td.visible-lg {
+ display: none !important
+}
+
+@media (max-width: 767px) {
+ .visible-lg.visible-xs {
+ display: block !important
+ }
+
+ tr.visible-lg.visible-xs {
+ display: table-row !important
+ }
+
+ th.visible-lg.visible-xs, td.visible-lg.visible-xs {
+ display: table-cell !important
+ }
+}
+
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-lg.visible-sm {
+ display: block !important
+ }
+
+ tr.visible-lg.visible-sm {
+ display: table-row !important
+ }
+
+ th.visible-lg.visible-sm, td.visible-lg.visible-sm {
+ display: table-cell !important
+ }
+}
+
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-lg.visible-md {
+ display: block !important
+ }
+
+ tr.visible-lg.visible-md {
+ display: table-row !important
+ }
+
+ th.visible-lg.visible-md, td.visible-lg.visible-md {
+ display: table-cell !important
+ }
+}
+
+@media (min-width: 1200px) {
+ .visible-lg {
+ display: block !important
+ }
+
+ tr.visible-lg {
+ display: table-row !important
+ }
+
+ th.visible-lg, td.visible-lg {
+ display: table-cell !important
+ }
+}
+
+.hidden-xs {
+ display: block !important
+}
+
+tr.hidden-xs {
+ display: table-row !important
+}
+
+th.hidden-xs, td.hidden-xs {
+ display: table-cell !important
+}
+
+@media (max-width: 767px) {
+ .hidden-xs {
+ display: none !important
+ }
+
+ tr.hidden-xs {
+ display: none !important
+ }
+
+ th.hidden-xs, td.hidden-xs {
+ display: none !important
+ }
+}
+
+@media (min-width: 768px) and (max-width: 991px) {
+ .hidden-xs.hidden-sm {
+ display: none !important
+ }
+
+ tr.hidden-xs.hidden-sm {
+ display: none !important
+ }
+
+ th.hidden-xs.hidden-sm, td.hidden-xs.hidden-sm {
+ display: none !important
+ }
+}
+
+@media (min-width: 992px) and (max-width: 1199px) {
+ .hidden-xs.hidden-md {
+ display: none !important
+ }
+
+ tr.hidden-xs.hidden-md {
+ display: none !important
+ }
+
+ th.hidden-xs.hidden-md, td.hidden-xs.hidden-md {
+ display: none !important
+ }
+}
+
+@media (min-width: 1200px) {
+ .hidden-xs.hidden-lg {
+ display: none !important
+ }
+
+ tr.hidden-xs.hidden-lg {
+ display: none !important
+ }
+
+ th.hidden-xs.hidden-lg, td.hidden-xs.hidden-lg {
+ display: none !important
+ }
+}
+
+.hidden-sm {
+ display: block !important
+}
+
+tr.hidden-sm {
+ display: table-row !important
+}
+
+th.hidden-sm, td.hidden-sm {
+ display: table-cell !important
+}
+
+@media (max-width: 767px) {
+ .hidden-sm.hidden-xs {
+ display: none !important
+ }
+
+ tr.hidden-sm.hidden-xs {
+ display: none !important
+ }
+
+ th.hidden-sm.hidden-xs, td.hidden-sm.hidden-xs {
+ display: none !important
+ }
+}
+
+@media (min-width: 768px) and (max-width: 991px) {
+ .hidden-sm {
+ display: none !important
+ }
+
+ tr.hidden-sm {
+ display: none !important
+ }
+
+ th.hidden-sm, td.hidden-sm {
+ display: none !important
+ }
+}
+
+@media (min-width: 992px) and (max-width: 1199px) {
+ .hidden-sm.hidden-md {
+ display: none !important
+ }
+
+ tr.hidden-sm.hidden-md {
+ display: none !important
+ }
+
+ th.hidden-sm.hidden-md, td.hidden-sm.hidden-md {
+ display: none !important
+ }
+}
+
+@media (min-width: 1200px) {
+ .hidden-sm.hidden-lg {
+ display: none !important
+ }
+
+ tr.hidden-sm.hidden-lg {
+ display: none !important
+ }
+
+ th.hidden-sm.hidden-lg, td.hidden-sm.hidden-lg {
+ display: none !important
+ }
+}
+
+.hidden-md {
+ display: block !important
+}
+
+tr.hidden-md {
+ display: table-row !important
+}
+
+th.hidden-md, td.hidden-md {
+ display: table-cell !important
+}
+
+@media (max-width: 767px) {
+ .hidden-md.hidden-xs {
+ display: none !important
+ }
+
+ tr.hidden-md.hidden-xs {
+ display: none !important
+ }
+
+ th.hidden-md.hidden-xs, td.hidden-md.hidden-xs {
+ display: none !important
+ }
+}
+
+@media (min-width: 768px) and (max-width: 991px) {
+ .hidden-md.hidden-sm {
+ display: none !important
+ }
+
+ tr.hidden-md.hidden-sm {
+ display: none !important
+ }
+
+ th.hidden-md.hidden-sm, td.hidden-md.hidden-sm {
+ display: none !important
+ }
+}
+
+@media (min-width: 992px) and (max-width: 1199px) {
+ .hidden-md {
+ display: none !important
+ }
+
+ tr.hidden-md {
+ display: none !important
+ }
+
+ th.hidden-md, td.hidden-md {
+ display: none !important
+ }
+}
+
+@media (min-width: 1200px) {
+ .hidden-md.hidden-lg {
+ display: none !important
+ }
+
+ tr.hidden-md.hidden-lg {
+ display: none !important
+ }
+
+ th.hidden-md.hidden-lg, td.hidden-md.hidden-lg {
+ display: none !important
+ }
+}
+
+.hidden-lg {
+ display: block !important
+}
+
+tr.hidden-lg {
+ display: table-row !important
+}
+
+th.hidden-lg, td.hidden-lg {
+ display: table-cell !important
+}
+
+@media (max-width: 767px) {
+ .hidden-lg.hidden-xs {
+ display: none !important
+ }
+
+ tr.hidden-lg.hidden-xs {
+ display: none !important
+ }
+
+ th.hidden-lg.hidden-xs, td.hidden-lg.hidden-xs {
+ display: none !important
+ }
+}
+
+@media (min-width: 768px) and (max-width: 991px) {
+ .hidden-lg.hidden-sm {
+ display: none !important
+ }
+
+ tr.hidden-lg.hidden-sm {
+ display: none !important
+ }
+
+ th.hidden-lg.hidden-sm, td.hidden-lg.hidden-sm {
+ display: none !important
+ }
+}
+
+@media (min-width: 992px) and (max-width: 1199px) {
+ .hidden-lg.hidden-md {
+ display: none !important
+ }
+
+ tr.hidden-lg.hidden-md {
+ display: none !important
+ }
+
+ th.hidden-lg.hidden-md, td.hidden-lg.hidden-md {
+ display: none !important
+ }
+}
+
+@media (min-width: 1200px) {
+ .hidden-lg {
+ display: none !important
+ }
+
+ tr.hidden-lg {
+ display: none !important
+ }
+
+ th.hidden-lg, td.hidden-lg {
+ display: none !important
+ }
+}
+
+.visible-print {
+ display: none !important
+}
+
+tr.visible-print {
+ display: none !important
+}
+
+th.visible-print, td.visible-print {
+ display: none !important
+}
+
+@media print {
+ .visible-print {
+ display: block !important
+ }
+
+ tr.visible-print {
+ display: table-row !important
+ }
+
+ th.visible-print, td.visible-print {
+ display: table-cell !important
+ }
+
+ .hidden-print {
+ display: none !important
+ }
+
+ tr.hidden-print {
+ display: none !important
+ }
+
+ th.hidden-print, td.hidden-print {
+ display: none !important
+ }
+}
+
+.container {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: 15px;
+ padding-right: 15px
+}
+
+.container:before, .container:after {
+ content: " ";
+ display: table
+}
+
+.container:after {
+ clear: both
+}
+
+.row-fluid {
+ margin-left: -15px;
+ margin-right: -15px
+}
+
+.row-fluid:before, .row-fluid:after {
+ content: " ";
+ display: table
+}
+
+.row-fluid:after {
+ clear: both
+}
+
+.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
+ position: relative;
+ min-height: 1px;
+ padding-left: 15px;
+ padding-right: 15px
+}
+
+.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11 {
+ float: left
+}
+
+.col-xs-1 {
+ width: 8.333333333333332%
+}
+
+.col-xs-2 {
+ width: 16.666666666666664%
+}
+
+.col-xs-3 {
+ width: 25%
+}
+
+.col-xs-4 {
+ width: 33.33333333333333%
+}
+
+.col-xs-5 {
+ width: 41.66666666666667%
+}
+
+.col-xs-6 {
+ width: 50%
+}
+
+.col-xs-7 {
+ width: 58.333333333333336%
+}
+
+.col-xs-8 {
+ width: 66.66666666666666%
+}
+
+.col-xs-9 {
+ width: 75%
+}
+
+.col-xs-10 {
+ width: 83.33333333333334%
+}
+
+.col-xs-11 {
+ width: 91.66666666666666%
+}
+
+.col-xs-12 {
+ width: 100%
+}
+
+@media (min-width: 768px) {
+ .container {
+ max-width: 750px
+ }
+
+ .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11 {
+ float: left
+ }
+
+ .col-sm-1 {
+ width: 8.333333333333332%
+ }
+
+ .col-sm-2 {
+ width: 16.666666666666664%
+ }
+
+ .col-sm-3 {
+ width: 25%
+ }
+
+ .col-sm-4 {
+ width: 33.33333333333333%
+ }
+
+ .col-sm-5 {
+ width: 41.66666666666667%
+ }
+
+ .col-sm-6 {
+ width: 50%
+ }
+
+ .col-sm-7 {
+ width: 58.333333333333336%
+ }
+
+ .col-sm-8 {
+ width: 66.66666666666666%
+ }
+
+ .col-sm-9 {
+ width: 75%
+ }
+
+ .col-sm-10 {
+ width: 83.33333333333334%
+ }
+
+ .col-sm-11 {
+ width: 91.66666666666666%
+ }
+
+ .col-sm-12 {
+ width: 100%
+ }
+
+ .col-sm-push-1 {
+ left: 8.333333333333332%
+ }
+
+ .col-sm-push-2 {
+ left: 16.666666666666664%
+ }
+
+ .col-sm-push-3 {
+ left: 25%
+ }
+
+ .col-sm-push-4 {
+ left: 33.33333333333333%
+ }
+
+ .col-sm-push-5 {
+ left: 41.66666666666667%
+ }
+
+ .col-sm-push-6 {
+ left: 50%
+ }
+
+ .col-sm-push-7 {
+ left: 58.333333333333336%
+ }
+
+ .col-sm-push-8 {
+ left: 66.66666666666666%
+ }
+
+ .col-sm-push-9 {
+ left: 75%
+ }
+
+ .col-sm-push-10 {
+ left: 83.33333333333334%
+ }
+
+ .col-sm-push-11 {
+ left: 91.66666666666666%
+ }
+
+ .col-sm-pull-1 {
+ right: 8.333333333333332%
+ }
+
+ .col-sm-pull-2 {
+ right: 16.666666666666664%
+ }
+
+ .col-sm-pull-3 {
+ right: 25%
+ }
+
+ .col-sm-pull-4 {
+ right: 33.33333333333333%
+ }
+
+ .col-sm-pull-5 {
+ right: 41.66666666666667%
+ }
+
+ .col-sm-pull-6 {
+ right: 50%
+ }
+
+ .col-sm-pull-7 {
+ right: 58.333333333333336%
+ }
+
+ .col-sm-pull-8 {
+ right: 66.66666666666666%
+ }
+
+ .col-sm-pull-9 {
+ right: 75%
+ }
+
+ .col-sm-pull-10 {
+ right: 83.33333333333334%
+ }
+
+ .col-sm-pull-11 {
+ right: 91.66666666666666%
+ }
+
+ .col-sm-offset-1 {
+ margin-left: 8.333333333333332%
+ }
+
+ .col-sm-offset-2 {
+ margin-left: 16.666666666666664%
+ }
+
+ .col-sm-offset-3 {
+ margin-left: 25%
+ }
+
+ .col-sm-offset-4 {
+ margin-left: 33.33333333333333%
+ }
+
+ .col-sm-offset-5 {
+ margin-left: 41.66666666666667%
+ }
+
+ .col-sm-offset-6 {
+ margin-left: 50%
+ }
+
+ .col-sm-offset-7 {
+ margin-left: 58.333333333333336%
+ }
+
+ .col-sm-offset-8 {
+ margin-left: 66.66666666666666%
+ }
+
+ .col-sm-offset-9 {
+ margin-left: 75%
+ }
+
+ .col-sm-offset-10 {
+ margin-left: 83.33333333333334%
+ }
+
+ .col-sm-offset-11 {
+ margin-left: 91.66666666666666%
+ }
+}
+
+@media (min-width: 992px) {
+ .container {
+ max-width: 970px
+ }
+
+ .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11 {
+ float: left
+ }
+
+ .col-md-1 {
+ width: 8.333333333333332%
+ }
+
+ .col-md-2 {
+ width: 16.666666666666664%
+ }
+
+ .col-md-3 {
+ width: 25%
+ }
+
+ .col-md-4 {
+ width: 33.33333333333333%
+ }
+
+ .col-md-5 {
+ width: 41.66666666666667%
+ }
+
+ .col-md-6 {
+ width: 50%
+ }
+
+ .col-md-7 {
+ width: 58.333333333333336%
+ }
+
+ .col-md-8 {
+ width: 66.66666666666666%
+ }
+
+ .col-md-9 {
+ width: 75%
+ }
+
+ .col-md-10 {
+ width: 83.33333333333334%
+ }
+
+ .col-md-11 {
+ width: 91.66666666666666%
+ }
+
+ .col-md-12 {
+ width: 100%
+ }
+
+ .col-md-push-0 {
+ left: auto
+ }
+
+ .col-md-push-1 {
+ left: 8.333333333333332%
+ }
+
+ .col-md-push-2 {
+ left: 16.666666666666664%
+ }
+
+ .col-md-push-3 {
+ left: 25%
+ }
+
+ .col-md-push-4 {
+ left: 33.33333333333333%
+ }
+
+ .col-md-push-5 {
+ left: 41.66666666666667%
+ }
+
+ .col-md-push-6 {
+ left: 50%
+ }
+
+ .col-md-push-7 {
+ left: 58.333333333333336%
+ }
+
+ .col-md-push-8 {
+ left: 66.66666666666666%
+ }
+
+ .col-md-push-9 {
+ left: 75%
+ }
+
+ .col-md-push-10 {
+ left: 83.33333333333334%
+ }
+
+ .col-md-push-11 {
+ left: 91.66666666666666%
+ }
+
+ .col-md-pull-0 {
+ right: auto
+ }
+
+ .col-md-pull-1 {
+ right: 8.333333333333332%
+ }
+
+ .col-md-pull-2 {
+ right: 16.666666666666664%
+ }
+
+ .col-md-pull-3 {
+ right: 25%
+ }
+
+ .col-md-pull-4 {
+ right: 33.33333333333333%
+ }
+
+ .col-md-pull-5 {
+ right: 41.66666666666667%
+ }
+
+ .col-md-pull-6 {
+ right: 50%
+ }
+
+ .col-md-pull-7 {
+ right: 58.333333333333336%
+ }
+
+ .col-md-pull-8 {
+ right: 66.66666666666666%
+ }
+
+ .col-md-pull-9 {
+ right: 75%
+ }
+
+ .col-md-pull-10 {
+ right: 83.33333333333334%
+ }
+
+ .col-md-pull-11 {
+ right: 91.66666666666666%
+ }
+
+ .col-md-offset-0 {
+ margin-left: 0
+ }
+
+ .col-md-offset-1 {
+ margin-left: 8.333333333333332%
+ }
+
+ .col-md-offset-2 {
+ margin-left: 16.666666666666664%
+ }
+
+ .col-md-offset-3 {
+ margin-left: 25%
+ }
+
+ .col-md-offset-4 {
+ margin-left: 33.33333333333333%
+ }
+
+ .col-md-offset-5 {
+ margin-left: 41.66666666666667%
+ }
+
+ .col-md-offset-6 {
+ margin-left: 50%
+ }
+
+ .col-md-offset-7 {
+ margin-left: 58.333333333333336%
+ }
+
+ .col-md-offset-8 {
+ margin-left: 66.66666666666666%
+ }
+
+ .col-md-offset-9 {
+ margin-left: 75%
+ }
+
+ .col-md-offset-10 {
+ margin-left: 83.33333333333334%
+ }
+
+ .col-md-offset-11 {
+ margin-left: 91.66666666666666%
+ }
+}
+
+@media (min-width: 1200px) {
+ .container {
+ max-width: 1170px
+ }
+
+ .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11 {
+ float: left
+ }
+
+ .col-lg-1 {
+ width: 8.333333333333332%
+ }
+
+ .col-lg-2 {
+ width: 16.666666666666664%
+ }
+
+ .col-lg-3 {
+ width: 25%
+ }
+
+ .col-lg-4 {
+ width: 33.33333333333333%
+ }
+
+ .col-lg-5 {
+ width: 41.66666666666667%
+ }
+
+ .col-lg-6 {
+ width: 50%
+ }
+
+ .col-lg-7 {
+ width: 58.333333333333336%
+ }
+
+ .col-lg-8 {
+ width: 66.66666666666666%
+ }
+
+ .col-lg-9 {
+ width: 75%
+ }
+
+ .col-lg-10 {
+ width: 83.33333333333334%
+ }
+
+ .col-lg-11 {
+ width: 91.66666666666666%
+ }
+
+ .col-lg-12 {
+ width: 100%
+ }
+
+ .col-lg-push-0 {
+ left: auto
+ }
+
+ .col-lg-push-1 {
+ left: 8.333333333333332%
+ }
+
+ .col-lg-push-2 {
+ left: 16.666666666666664%
+ }
+
+ .col-lg-push-3 {
+ left: 25%
+ }
+
+ .col-lg-push-4 {
+ left: 33.33333333333333%
+ }
+
+ .col-lg-push-5 {
+ left: 41.66666666666667%
+ }
+
+ .col-lg-push-6 {
+ left: 50%
+ }
+
+ .col-lg-push-7 {
+ left: 58.333333333333336%
+ }
+
+ .col-lg-push-8 {
+ left: 66.66666666666666%
+ }
+
+ .col-lg-push-9 {
+ left: 75%
+ }
+
+ .col-lg-push-10 {
+ left: 83.33333333333334%
+ }
+
+ .col-lg-push-11 {
+ left: 91.66666666666666%
+ }
+
+ .col-lg-pull-0 {
+ right: auto
+ }
+
+ .col-lg-pull-1 {
+ right: 8.333333333333332%
+ }
+
+ .col-lg-pull-2 {
+ right: 16.666666666666664%
+ }
+
+ .col-lg-pull-3 {
+ right: 25%
+ }
+
+ .col-lg-pull-4 {
+ right: 33.33333333333333%
+ }
+
+ .col-lg-pull-5 {
+ right: 41.66666666666667%
+ }
+
+ .col-lg-pull-6 {
+ right: 50%
+ }
+
+ .col-lg-pull-7 {
+ right: 58.333333333333336%
+ }
+
+ .col-lg-pull-8 {
+ right: 66.66666666666666%
+ }
+
+ .col-lg-pull-9 {
+ right: 75%
+ }
+
+ .col-lg-pull-10 {
+ right: 83.33333333333334%
+ }
+
+ .col-lg-pull-11 {
+ right: 91.66666666666666%
+ }
+
+ .col-lg-offset-0 {
+ margin-left: 0
+ }
+
+ .col-lg-offset-1 {
+ margin-left: 8.333333333333332%
+ }
+
+ .col-lg-offset-2 {
+ margin-left: 16.666666666666664%
+ }
+
+ .col-lg-offset-3 {
+ margin-left: 25%
+ }
+
+ .col-lg-offset-4 {
+ margin-left: 33.33333333333333%
+ }
+
+ .col-lg-offset-5 {
+ margin-left: 41.66666666666667%
+ }
+
+ .col-lg-offset-6 {
+ margin-left: 50%
+ }
+
+ .col-lg-offset-7 {
+ margin-left: 58.333333333333336%
+ }
+
+ .col-lg-offset-8 {
+ margin-left: 66.66666666666666%
+ }
+
+ .col-lg-offset-9 {
+ margin-left: 75%
+ }
+
+ .col-lg-offset-10 {
+ margin-left: 83.33333333333334%
+ }
+
+ .col-lg-offset-11 {
+ margin-left: 91.66666666666666%
+ }
+}
+
+.btn {
+ display: inline-block;
+ padding: 6px 12px;
+ margin-bottom: 0;
+ font-size: 14px;
+ font-weight: normal;
+ line-height: 1.428571429;
+ text-align: center;
+ vertical-align: middle;
+ cursor: pointer;
+ border: 1px solid transparent;
+ border-radius: 0;
+ white-space: nowrap;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ -o-user-select: none;
+ user-select: none
+}
+
+.btn:focus {
+ outline: thin dotted #333;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px
+}
+
+.btn:hover, .btn:focus {
+ color: #333;
+ text-decoration: none
+}
+
+.btn:active, .btn.active {
+ outline: 0;
+ background-image: none
+}
+
+.btn.disabled, .btn[disabled], fieldset[disabled] .btn {
+ cursor: not-allowed;
+ pointer-events: none;
+ opacity: .65;
+ filter: alpha(opacity=65);
+ -webkit-box-shadow: none;
+ box-shadow: none
+}
+
+.btn-default {
+ color: #333;
+ background-color: #fff;
+ border-color: #ccc
+}
+
+.btn-default:hover, .btn-default:focus, .btn-default:active, .btn-default.active, .open .dropdown-toggle.btn-default {
+ color: #333;
+ background-color: #ebebeb;
+ border-color: #adadad
+}
+
+.btn-default:active, .btn-default.active, .open .dropdown-toggle.btn-default {
+ background-image: none
+}
+
+.btn-default.disabled, .btn-default[disabled], fieldset[disabled] .btn-default, .btn-default.disabled:hover, .btn-default[disabled]:hover, fieldset[disabled] .btn-default:hover, .btn-default.disabled:focus, .btn-default[disabled]:focus, fieldset[disabled] .btn-default:focus, .btn-default.disabled:active, .btn-default[disabled]:active, fieldset[disabled] .btn-default:active, .btn-default.disabled.active, .btn-default[disabled].active, fieldset[disabled] .btn-default.active {
+ background-color: #fff;
+ border-color: #ccc
+}
+
+.btn-primary {
+ color: #fff;
+ background-color: #428bca;
+ border-color: #357ebd
+}
+
+.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, .open .dropdown-toggle.btn-primary {
+ color: #fff;
+ background-color: #3276b1;
+ border-color: #285e8e
+}
+
+.btn-primary:active, .btn-primary.active, .open .dropdown-toggle.btn-primary {
+ background-image: none
+}
+
+.btn-primary.disabled, .btn-primary[disabled], fieldset[disabled] .btn-primary, .btn-primary.disabled:hover, .btn-primary[disabled]:hover, fieldset[disabled] .btn-primary:hover, .btn-primary.disabled:focus, .btn-primary[disabled]:focus, fieldset[disabled] .btn-primary:focus, .btn-primary.disabled:active, .btn-primary[disabled]:active, fieldset[disabled] .btn-primary:active, .btn-primary.disabled.active, .btn-primary[disabled].active, fieldset[disabled] .btn-primary.active {
+ background-color: #428bca;
+ border-color: #357ebd
+}
+
+.btn-warning {
+ color: #fff;
+ background-color: #f0ad4e;
+ border-color: #eea236
+}
+
+.btn-warning:hover, .btn-warning:focus, .btn-warning:active, .btn-warning.active, .open .dropdown-toggle.btn-warning {
+ color: #fff;
+ background-color: #ed9c28;
+ border-color: #d58512
+}
+
+.btn-warning:active, .btn-warning.active, .open .dropdown-toggle.btn-warning {
+ background-image: none
+}
+
+.btn-warning.disabled, .btn-warning[disabled], fieldset[disabled] .btn-warning, .btn-warning.disabled:hover, .btn-warning[disabled]:hover, fieldset[disabled] .btn-warning:hover, .btn-warning.disabled:focus, .btn-warning[disabled]:focus, fieldset[disabled] .btn-warning:focus, .btn-warning.disabled:active, .btn-warning[disabled]:active, fieldset[disabled] .btn-warning:active, .btn-warning.disabled.active, .btn-warning[disabled].active, fieldset[disabled] .btn-warning.active {
+ background-color: #f0ad4e;
+ border-color: #eea236
+}
+
+.btn-danger {
+ color: #fff;
+ background-color: #d9534f;
+ border-color: #d43f3a
+}
+
+.btn-danger:hover, .btn-danger:focus, .btn-danger:active, .btn-danger.active, .open .dropdown-toggle.btn-danger {
+ color: #fff;
+ background-color: #d2322d;
+ border-color: #ac2925
+}
+
+.btn-danger:active, .btn-danger.active, .open .dropdown-toggle.btn-danger {
+ background-image: none
+}
+
+.btn-danger.disabled, .btn-danger[disabled], fieldset[disabled] .btn-danger, .btn-danger.disabled:hover, .btn-danger[disabled]:hover, fieldset[disabled] .btn-danger:hover, .btn-danger.disabled:focus, .btn-danger[disabled]:focus, fieldset[disabled] .btn-danger:focus, .btn-danger.disabled:active, .btn-danger[disabled]:active, fieldset[disabled] .btn-danger:active, .btn-danger.disabled.active, .btn-danger[disabled].active, fieldset[disabled] .btn-danger.active {
+ background-color: #d9534f;
+ border-color: #d43f3a
+}
+
+.btn-success {
+ color: #fff;
+ background-color: #5cb85c;
+ border-color: #4cae4c
+}
+
+.btn-success:hover, .btn-success:focus, .btn-success:active, .btn-success.active, .open .dropdown-toggle.btn-success {
+ color: #fff;
+ background-color: #47a447;
+ border-color: #398439
+}
+
+.btn-success:active, .btn-success.active, .open .dropdown-toggle.btn-success {
+ background-image: none
+}
+
+.btn-success.disabled, .btn-success[disabled], fieldset[disabled] .btn-success, .btn-success.disabled:hover, .btn-success[disabled]:hover, fieldset[disabled] .btn-success:hover, .btn-success.disabled:focus, .btn-success[disabled]:focus, fieldset[disabled] .btn-success:focus, .btn-success.disabled:active, .btn-success[disabled]:active, fieldset[disabled] .btn-success:active, .btn-success.disabled.active, .btn-success[disabled].active, fieldset[disabled] .btn-success.active {
+ background-color: #5cb85c;
+ border-color: #4cae4c
+}
+
+.btn-info {
+ color: #fff;
+ background-color: #5bc0de;
+ border-color: #46b8da
+}
+
+.btn-info:hover, .btn-info:focus, .btn-info:active, .btn-info.active, .open .dropdown-toggle.btn-info {
+ color: #fff;
+ background-color: #39b3d7;
+ border-color: #269abc
+}
+
+.btn-info:active, .btn-info.active, .open .dropdown-toggle.btn-info {
+ background-image: none
+}
+
+.btn-info.disabled, .btn-info[disabled], fieldset[disabled] .btn-info, .btn-info.disabled:hover, .btn-info[disabled]:hover, fieldset[disabled] .btn-info:hover, .btn-info.disabled:focus, .btn-info[disabled]:focus, fieldset[disabled] .btn-info:focus, .btn-info.disabled:active, .btn-info[disabled]:active, fieldset[disabled] .btn-info:active, .btn-info.disabled.active, .btn-info[disabled].active, fieldset[disabled] .btn-info.active {
+ background-color: #5bc0de;
+ border-color: #46b8da
+}
+
+.btn-link {
+ color: #428bca;
+ font-weight: normal;
+ cursor: pointer;
+ border-radius: 0
+}
+
+.btn-link, .btn-link:active, .btn-link[disabled], fieldset[disabled] .btn-link {
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none
+}
+
+.btn-link, .btn-link:hover, .btn-link:focus, .btn-link:active {
+ border-color: transparent
+}
+
+.btn-link:hover, .btn-link:focus {
+ color: #2a6496;
+ text-decoration: underline;
+ background-color: transparent
+}
+
+.btn-link[disabled]:hover, fieldset[disabled] .btn-link:hover, .btn-link[disabled]:focus, fieldset[disabled] .btn-link:focus {
+ color: #999;
+ text-decoration: none
+}
+
+.btn-lg {
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.33;
+ border-radius: 6px
+}
+
+.btn-sm, .btn-xs {
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px
+}
+
+.btn-xs {
+ padding: 1px 5px
+}
+
+.btn-block {
+ display: block;
+ width: 100%;
+ padding-left: 0;
+ padding-right: 0
+}
+
+.btn-block + .btn-block {
+ margin-top: 5px
+}
+
+input[type="submit"].btn-block, input[type="reset"].btn-block, input[type="button"].btn-block {
+ width: 100%
+}
+
+.btn-default .caret {
+ border-top-color: #333
+}
+
+.btn-primary .caret, .btn-success .caret, .btn-warning .caret, .btn-danger .caret, .btn-info .caret {
+ border-top-color: #fff
+}
+
+.dropup .btn-default .caret {
+ border-bottom-color: #333
+}
+
+.dropup .btn-primary .caret, .dropup .btn-success .caret, .dropup .btn-warning .caret, .dropup .btn-danger .caret, .dropup .btn-info .caret {
+ border-bottom-color: #fff
+}
+
+.btn-group, .btn-group-vertical {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle
+}
+
+.btn-group > .btn, .btn-group-vertical > .btn {
+ position: relative;
+ float: left
+}
+
+.btn-group > .btn:hover, .btn-group-vertical > .btn:hover, .btn-group > .btn:focus, .btn-group-vertical > .btn:focus, .btn-group > .btn:active, .btn-group-vertical > .btn:active, .btn-group > .btn.active, .btn-group-vertical > .btn.active {
+ z-index: 2
+}
+
+.btn-group > .btn:focus, .btn-group-vertical > .btn:focus {
+ outline: 0
+}
+
+.btn-group .btn + .btn, .btn-group .btn + .btn-group, .btn-group .btn-group + .btn, .btn-group .btn-group + .btn-group {
+ margin-left: -1px
+}
+
+.btn-toolbar:before, .btn-toolbar:after {
+ content: " ";
+ display: table
+}
+
+.btn-toolbar:after {
+ clear: both
+}
+
+.btn-toolbar .btn-group {
+ float: left
+}
+
+.btn-toolbar > .btn + .btn, .btn-toolbar > .btn-group + .btn, .btn-toolbar > .btn + .btn-group, .btn-toolbar > .btn-group + .btn-group {
+ margin-left: 5px
+}
+
+.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
+ border-radius: 0
+}
+
+.btn-group > .btn:first-child {
+ margin-left: 0
+}
+
+.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0
+}
+
+.btn-group > .btn:last-child:not(:first-child), .btn-group > .dropdown-toggle:not(:first-child) {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0
+}
+
+.btn-group > .btn-group {
+ float: left
+}
+
+.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0
+}
+
+.btn-group > .btn-group:first-child > .btn:last-child, .btn-group > .btn-group:first-child > .dropdown-toggle {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0
+}
+
+.btn-group > .btn-group:last-child > .btn:first-child {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0
+}
+
+.btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle {
+ outline: 0
+}
+
+.btn-group-xs > .btn {
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+ padding: 1px 5px
+}
+
+.btn-group-sm > .btn {
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px
+}
+
+.btn-group-lg > .btn {
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.33;
+ border-radius: 6px
+}
+
+.btn-group > .btn + .dropdown-toggle {
+ padding-left: 8px;
+ padding-right: 8px
+}
+
+.btn-group > .btn-lg + .dropdown-toggle {
+ padding-left: 12px;
+ padding-right: 12px
+}
+
+.btn-group.open .dropdown-toggle {
+ background: #f2f2f2
+}
+
+.btn .caret {
+ margin-left: 0
+}
+
+.btn-lg .caret {
+ border-width: 5px 5px 0;
+ border-bottom-width: 0
+}
+
+.dropup .btn-lg .caret {
+ border-width: 0 5px 5px
+}
+
+.btn-group-vertical > .btn, .btn-group-vertical > .btn-group {
+ display: block;
+ float: none;
+ width: 100%;
+ max-width: 100%
+}
+
+.btn-group-vertical > .btn-group:before, .btn-group-vertical > .btn-group:after {
+ content: " ";
+ display: table
+}
+
+.btn-group-vertical > .btn-group:after {
+ clear: both
+}
+
+.btn-group-vertical > .btn-group > .btn {
+ float: none
+}
+
+.btn-group-vertical > .btn + .btn, .btn-group-vertical > .btn + .btn-group, .btn-group-vertical > .btn-group + .btn, .btn-group-vertical > .btn-group + .btn-group {
+ margin-top: -1px;
+ margin-left: 0
+}
+
+.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
+ border-radius: 0
+}
+
+.btn-group-vertical > .btn:first-child:not(:last-child) {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0
+}
+
+.btn-group-vertical > .btn:last-child:not(:first-child) {
+ border-bottom-left-radius: 0;
+ border-top-right-radius: 0;
+ border-top-left-radius: 0
+}
+
+.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0
+}
+
+.btn-group-vertical > .btn-group:first-child > .btn:last-child, .btn-group-vertical > .btn-group:first-child > .dropdown-toggle {
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0
+}
+
+.btn-group-vertical > .btn-group:last-child > .btn:first-child {
+ border-top-right-radius: 0;
+ border-top-left-radius: 0
+}
+
+.btn-group-justified {
+ display: table;
+ width: 100%;
+ table-layout: fixed;
+ border-collapse: separate
+}
+
+.btn-group-justified .btn {
+ float: none;
+ display: table-cell;
+ width: 1%
+}
+
+[data-toggle="buttons"] > .btn > input[type="radio"], [data-toggle="buttons"] > .btn > input[type="checkbox"] {
+ display: none
+}
+
+.caret {
+ display: inline-block;
+ width: 0;
+ height: 0;
+ margin-left: 2px;
+ vertical-align: middle;
+ border-top: 4px solid #000;
+ border-right: 4px solid transparent;
+ border-left: 4px solid transparent;
+ border-bottom: 0 dotted;
+ content: ""
+}
+
+.dropdown {
+ position: relative
+}
+
+.dropdown-toggle:focus {
+ outline: 0
+}
+
+.dropdown-menu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: 1000;
+ display: none;
+ float: left;
+ min-width: 160px;
+ padding: 5px 0;
+ margin: 2px 0 0;
+ list-style: none;
+ font-size: 14px;
+ background-color: #fff;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ border-radius: 0;
+ background-clip: padding-box
+}
+
+.dropdown-menu.pull-right {
+ right: 0;
+ left: auto
+}
+
+.dropdown-menu .divider {
+ height: 1px;
+ margin: 9px 0;
+ overflow: hidden;
+ background-color: #e5e5e5
+}
+
+.dropdown-menu > li > a {
+ font-size: 14px;
+ text-decoration: none;
+ display: block;
+ padding: 5px 20px;
+ clear: both;
+ font-weight: normal;
+ line-height: 1.428571429;
+ color: #333;
+ white-space: nowrap
+}
+
+.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus {
+ text-decoration: none;
+ color: #fff;
+ background-color: #428bca
+}
+
+.dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus {
+ color: #fff;
+ text-decoration: none;
+ outline: 0;
+ background-color: #428bca
+}
+
+.dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus {
+ color: #999
+}
+
+.dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus {
+ text-decoration: none;
+ background-color: transparent;
+ background-image: none;
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ cursor: not-allowed
+}
+
+.open > .dropdown-menu {
+ display: block
+}
+
+.open > a {
+ outline: 0
+}
+
+.dropdown-header {
+ display: block;
+ padding: 3px 20px;
+ font-size: 12px;
+ line-height: 1.428571429;
+ color: #999
+}
+
+.dropdown-backdrop {
+ position: fixed;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ top: 0;
+ z-index: 990
+}
+
+.pull-right > .dropdown-menu {
+ right: 0;
+ left: auto
+}
+
+.dropup .caret, .navbar-fixed-bottom .dropdown .caret {
+ border-top: 0 dotted;
+ border-bottom: 4px solid #000;
+ content: ""
+}
+
+.dropup .dropdown-menu, .navbar-fixed-bottom .dropdown .dropdown-menu {
+ top: auto;
+ bottom: 100%;
+ margin-bottom: 1px
+}
+
+@media (min-width: 768px) {
+ .navbar-right .dropdown-menu {
+ right: 0;
+ left: auto
+ }
+}
+
+body, html {
+ font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
+ margin: 0;
+ background: #ededed;
+ color: #343437;
+ line-height: 2em;
+ font-weight: 300;
+ font-size: .95em
+}
+
+h1 {
+ font-size: 2.5em;
+ margin: .8em 0
+}
+
+body.center {
+ padding: 0 30px;
+ background: #FFF;
+ font-size: 1em
+}
+
+ul li {
+ list-style-type: disc
+}
+
+a {
+ color: #4290ad;
+ text-decoration: none;
+ font-weight: normal
+}
+
+a:hover {
+ text-decoration: underline
+}
+
+h1, h2, h3 {
+ font-weight: 300;
+ line-height: 1.2em
+}
+
+.topNav, .bottomNav {
+ background: #f2f2f2;
+ margin: 0 -30px;
+ margin-bottom: 20px
+}
+
+.topNav:before, .bottomNav:before, .topNav:after, .bottomNav:after {
+ content: " ";
+ display: table
+}
+
+.topNav:after, .bottomNav:after {
+ clear: both
+}
+
+.topNav ul.navList, .bottomNav ul.navList {
+ padding: 10px 20px;
+ margin: 0;
+ list-style-type: none
+}
+
+.topNav ul.navList li, .bottomNav ul.navList li {
+ display: inline;
+ padding: 0 10px
+}
+
+.topNav ul.navList li.navBarCell1Rev, .bottomNav ul.navList li.navBarCell1Rev {
+ font-weight: bold
+}
+
+.bottomNav {
+ margin-top: 30px;
+ margin-bottom: 0
+}
+
+.aboutLanguage {
+ color: #BBB;
+ background: white;
+ text-align: center;
+ padding: 20px 0
+}
+
+.subNav {
+ padding-bottom: 10px;
+ margin-bottom: 10px;
+ border-bottom: 1px solid #EEE
+}
+
+.subNav:before, .subNav:after {
+ content: " ";
+ display: table
+}
+
+.subNav:after {
+ clear: both
+}
+
+.subNav div:before, .subNav div:after {
+ content: " ";
+ display: table
+}
+
+.subNav div:after {
+ clear: both
+}
+
+.subNav ul.navList, .subNav ul {
+ font-size: .9em;
+ margin: 0;
+ padding: 00;
+ float: left;
+ list-style-type: none
+}
+
+.subNav ul.navList li, .subNav ul li {
+ padding: 0 5px;
+ display: inline
+}
+
+table.overviewSummary tr {
+ border-left: 1px solid #EEE;
+ border-right: 1px solid #EEE;
+}
+
+table.overviewSummary tr:first-child {
+ border-top: 1px solid #EEE;
+ border-bottom: 1px solid #EEE;
+}
+
+table.overviewSummary tr:last-child {
+ border-bottom: 1px solid #EEE;
+}
+
+table.overviewSummary, .contentContainer ul li table {
+ width: 100%;
+ margin: 20px 0
+}
+
+table.overviewSummary caption, .contentContainer ul li table caption {
+ text-align: left;
+ font-weight: 100;
+ font-size: 1em;
+ float: left;
+ padding: 0 10px;
+ margin-top: 10px;
+ background: #db4800;
+ color: white
+}
+
+table.overviewSummary tr th, .contentContainer ul li table tr th {
+ padding: 5px 10px;
+ font-weight: bold;
+ font-size: 1em;
+ text-align: left;
+ white-space: nowrap;
+ background: #f2f2f2
+}
+
+table.overviewSummary tr td, .contentContainer ul li table tr td {
+ vertical-align: top;
+ font-size: .9em;
+ padding: 5px 10px
+}
+
+table.overviewSummary tbody > tr:nth-child(odd) > td, .contentContainer ul li table tbody > tr:nth-child(odd) > td {
+ background-color: #f9f9f9
+}
+
+body.left {
+ padding-top: 10px
+}
+
+body.left h1, body.left h2 {
+ display: inline;
+ text-align: left;
+ font-weight: 100;
+ font-size: 1em;
+ margin: 0 10px;
+ padding: 3px 10px;
+ margin-top: 10px;
+ background: #db4800;
+ color: white;
+ line-height: 40px
+}
+
+body.left .indexHeader {
+ margin: 0;
+ padding: 0 15px;
+ font-size: .9em
+}
+
+body.left ul {
+ list-style-type: none;
+ margin: 0;
+ padding: 0
+}
+
+body.left ul li {
+ margin: 0;
+ padding: 0
+}
+
+body.left ul li a {
+ display: block;
+ padding: 0 15px;
+ text-decoration: none
+}
+
+body.left ul li a:hover {
+ text-decoration: underline
+}
+
+.contentContainer .header ul, .contentContainer ul.blockList {
+ padding: 0
+}
+
+.contentContainer .header ul > li, .contentContainer ul.blockList > li {
+ list-style-type: none
+}
+
+.contentContainer ul.inheritance {
+ margin-left: 0;
+ padding-left: 0
+}
+
+.contentContainer ul.inheritance li {
+ list-style-type: none
+}
+
+.contentContainer ul.inheritance ul.inheritance {
+ padding-left: 20px
+}
+
+.contentContainer hr {
+ border: 0 none;
+ border-top: 1px solid #EEE;
+ margin-top: 30px;
+ margin-botom: 0
+}
+
+ul.blockList ul.blockList, ul.blockList ul.blockListLast {
+ border: 1px solid #EEE;
+ margin: 20px 0;
+ padding: 0 20px
+}
+
+ul.blockList ul.blockList h4, ul.blockList ul.blockListLast h4, ul.blockList ul.blockList h3, ul.blockList ul.blockListLast h3 {
+ font-size: 1em;
+ font-weight: bold;
+ line-height: 2em;
+ text-indent: 10px;
+ border-bottom: 1px solid #EEE;
+ margin: 0 -20px;
+ padding: 5px 0;
+ background: #f2f2f2
+}
+
+ul.blockList ul.blockList li, ul.blockList ul.blockListLast li {
+ list-style-type: none
+}
+
+ul.horizontal {
+ list-style-type: none;
+ padding: 0;
+ margin: 0;
+ font-size: .9em
+}
+
+ul.horizontal li {
+ display: inline
+}
+
+span.strong {
+ font-weight: bold
+}
+
+a span.strong {
+ font-weight: normal
+}
http://git-wip-us.apache.org/repos/asf/groovy/blob/c8e8c7b6/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/template.allclasses-frame.html
----------------------------------------------------------------------
diff --git a/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/template.allclasses-frame.html b/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/template.allclasses-frame.html
new file mode 100644
index 0000000..6710dbb
--- /dev/null
+++ b/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/template.allclasses-frame.html
@@ -0,0 +1,46 @@
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+ <title>All Classes ($title)</title>
+ <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+
+<body class="left">
+
+<div class="indexContainer">
+ <h2 title="All Classes">All Classes</h2>
+ <ul>
+ <% docTypes.each { docType -> %>
+ <li><a href="${docType.fullyQualifiedClassName.replaceAll(/\./, '/')}.html" title="${docType.interface ? 'interface' : 'class'} in ${docType.packageName}" target="classFrame">
+ <% if (docType.interface) { %>
+ <i>${docType.simpleClassName}</i>
+ <% } else { %>
+ ${docType.simpleClassName}
+ <% } %>
+ </a></li>
+ <% } %>
+ </ul>
+</div>
+
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/groovy/blob/c8e8c7b6/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/template.class.html
----------------------------------------------------------------------
diff --git a/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/template.class.html b/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/template.class.html
new file mode 100644
index 0000000..4b13f72
--- /dev/null
+++ b/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/template.class.html
@@ -0,0 +1,196 @@
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+ <title>${docType.simpleClassName} ($title)</title>
+ <%
+ int dotCount = docType.packageName.count('.')
+ String pathPref = '../' * (dotCount + 1)
+ %>
+ <link rel="stylesheet" type="text/css" href="${pathPref}stylesheet.css" title="Style">
+ <script type="text/javascript">
+ function windowTitle() {
+ parent.document.title = document.title;
+ }
+ </script>
+</head>
+
+<body class="center" onload="windowTitle();">
+
+ <!-- ========== START OF NAVBAR ========== -->
+ <a name="navbar_top"><!-- --></a>
+
+ <div class="topNav">
+ <ul class="navList" title="Navigation">
+ <li><a href="${pathPref}overview-summary.html">Overview</a></li>
+ <li><a href="package-summary.html">Package</a></li>
+ <li class="navBarCell1Rev">Class</li>
+ <li><a href="${pathPref}index-all.html">Index</a></li>
+ </ul>
+ </div>
+
+ <!-- =========== END OF NAVBAR =========== -->
+
+ <!-- ======== START OF class DATA ======== -->
+
+ <div class="header">
+ <div class="subTitle">Package: <strong>${docType.packageName}</strong></div>
+ <h2>${docType.interface ? 'Interface' : 'Class'} ${docType.simpleClassName}</h2>
+ </div>
+
+ <div class="contentContainer">
+
+ <!-- ========== METHOD SUMMARY =========== -->
+
+ <a name="method_summary"><!-- --></a>
+
+ <div class="summary">
+ <ul class="blockList">
+ <li class="blockList">
+ <ul class="blockList">
+ <li class="blockList">
+ <h3>Methods Summary</h3>
+ <table border="0" cellpadding="3" cellspacing="0" class="overviewSummary">
+ <caption><span>Methods</span><span class="tabEnd"> </span></caption>
+ <tbody>
+ <tr>
+ <th>Return type</th>
+ <th>Name and parameters</th>
+ </tr>
+ <% docType.docMethods.eachWithIndex { docMethod, i -> %>
+ <tr class="${i % 2 == 0 ? 'altColor' : 'rawColor'}">
+ <td align="right" valign="top" width="1%">
+ <span> <code>${docMethod.isStatic() ? 'static ' : ''}${docMethod.returnTypeDocUrl}</code></span>
+ </td>
+ <td>
+ <code><strong><a href="#${docMethod.name}(${docMethod.parametersSignature})">${docMethod.name}</a></strong>(${docMethod.parametersDocUrl})</code>
+ <br>
+ ${docMethod.shortComment}
+ </td>
+ </tr>
+ <% } %>
+ </tbody>
+ </table>
+ </li>
+ <% docType.inheritedMethods.each { inhDocType, inhDocMethods -> %>
+ <ul class="blockList">
+ <li class="blockList">
+ <h4>Methods inherited from ${inhDocType.interface ? 'interface' : 'class'} ${inhDocType.packageName}.${docType.linkAnchor(inhDocType)}</h4>
+ <p>
+ <%= inhDocMethods.findAll { !it.static }.collect { docMethod ->
+ """<code><strong><a href="${pathPref}${inhDocType.fullyQualifiedClassName.replace('.', '/')}.html#${docMethod.name}(${docMethod.parametersSignature})">${docMethod.name}</a></strong></code>"""
+ }.join(", ") %>
+ </p>
+ </li>
+ </ul>
+ <% } %>
+ </ul>
+ </li>
+ </ul>
+ </div>
+
+ <!-- ============ METHOD DETAIL ========== -->
+
+ <a name="method_detail"><!-- --></a>
+
+
+ <div class="details">
+ <ul class="blockList">
+ <li class="blockList">
+ <ul class="blockList">
+ <li class="blockList">
+ <h3>Methods Detail</h3>
+
+ <% docType.docMethods.eachWithIndex { docMethod, i -> %>
+ <a name="${docMethod.name}(${docMethod.parametersSignature})"><!-- --></a>
+
+ <ul class="blockListLast">
+ <li class="blockList">
+
+ <h4>public ${docMethod.isStatic() ? 'static ' : ''}${docMethod.returnTypeDocUrl} <b>${docMethod.name}</b>(${docMethod.parametersDocUrl})</h4>
+
+ <p>${docMethod.comment}</p>
+
+ <% if (docMethod.parametersSignature) { %>
+ <dl>
+ <dt><b>Parameters:</b></dt>
+ <% docMethod.parameterComments.each { name, comment -> %>
+ <dd><code>${name}</code> - ${comment}</dd>
+ <% } %>
+ </dl>
+ <%
+ } %>
+
+ <% if (docMethod.returnComment) { %>
+ <dl>
+ <dt><b>Returns:</b></dt>
+ <dd>${docMethod.returnComment}</dd>
+ </dl>
+ <% } %>
+
+ <%if (docMethod.sinceComment) { %>
+ <dl>
+ <dt><b>Since:</b></dt>
+ <dd>${docMethod.sinceComment}</dd>
+ </dl>
+ <%}%>
+
+ <% if (docMethod.seeComments) { %>
+ <dl>
+ <dt><b>See Also:</b></dt>
+ <% docMethod.seeComments.each { %>
+ <dd>${it}</dd>
+ <% }%>
+ </dl>
+ <% } %>
+
+ </li>
+ </ul>
+
+ <% } %>
+
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+
+ </div>
+
+ <!-- ========= END OF class DATA ========= -->
+
+ <!-- ======= START OF BOTTOM NAVBAR ====== -->
+ <a name="navbar_bottom"><!-- --></a>
+ <a href="#skip-navbar_bottom" title="Skip navigation links"></a>
+
+ <div class="topNav">
+ <ul class="navList" title="Navigation">
+ <li><a href="${pathPref}overview-summary.html">Overview</a></li>
+ <li><a href="package-summary.html">Package</a></li>
+ <li class="navBarCell1Rev">Class</li>
+ <li><a href="${pathPref}index-all.html">Index</a></li>
+ </ul>
+ </div>
+ <!-- =========== END OF NAVBAR =========== -->
+
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/groovy/blob/c8e8c7b6/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/template.index-all.html
----------------------------------------------------------------------
diff --git a/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/template.index-all.html b/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/template.index-all.html
new file mode 100644
index 0000000..31c5c4b
--- /dev/null
+++ b/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/template.index-all.html
@@ -0,0 +1,93 @@
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//Dtd HTML 4.0 transitional//EN""http://www.w3.org/tr/REC-html40/loose.dtd">
+<html>
+ <head>
+ <title>Index ($title)</title>
+ <link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+ <script type="text/javascript">
+ function windowTitle() {
+ parent.document.title = document.title;
+ }
+ </script>
+ </head>
+ <body class="center" onload="windowTitle();">
+
+ <!-- ========== START OF NAVBAR ========== -->
+ <a name="navbar_top"><!-- --></a>
+
+ <div class="topNav">
+ <ul class="navList" title="Navigation">
+ <li><a href="overview-summary.html">Overview</a></li>
+ <li>Package</li>
+ <li>Class</li>
+ <li class="navBarCell1Rev">Index</li>
+ </ul>
+ </div>
+ <!-- =========== END OF NAVBAR =========== -->
+ <!--
+ <a HREF="#_A_">A</a>
+ -->
+ <% indexMap.each { it -> %>
+ <a HREF="#_${it.key}_">${it.key}</a>
+ <% } %>
+ <hr>
+
+ <% indexMap.each { indexMapEntry -> %>
+ <a name="_${indexMapEntry.key}_"><!-- --></a>
+ <h2><b>${indexMapEntry.key}</b></h2>
+ <dl>
+ <% indexMapEntry.value.each { it -> %>
+ <% final String classUrl = it.docType.fullyQualifiedClassName.replaceAll('\\.','/') + '.html' %>
+ <% if (it.docMethod) { %>
+ <% final String methodUrl = classUrl + '#' + it.docMethod.name + '(' + it.docMethod.parametersSignature + ')' %>
+ <dt><a href="${methodUrl}"><b>${it.docMethod.name}(${it.docMethod.parametersSignature})</b></a> - Method in ${it.docType.interface ? 'interface' : 'class'} ${it.docType.packageName}.<a href="${classUrl}">${it.docType.simpleClassName}</a></dt>
+ <dd> ${it.docMethod.shortComment}</dd>
+ <% } else { %>
+ <dt><a href="${classUrl}"><b>${it.docType.simpleClassName}</b></a> - ${it.docType.interface ? 'Interface' : 'Class'} in ${it.docType.packageName}</dt>
+ <dd> ${it.docType.shortComment}</dd>
+ <% } %>
+
+ <% } %>
+ </dl>
+ <% } %>
+
+ <!--
+ <a HREF="#_A_">A</a>
+ -->
+ <% indexMap.each { it -> %>
+ <a href="#_${it.key}_">${it.key}</a>
+ <% } %>
+
+ <!-- ========== START OF NAVBAR ========== -->
+ <a name="navbar_bottom"><!-- --></a>
+ <div class="topNav">
+ <ul class="navList" title="Navigation">
+ <li><a href="overview-summary.html">Overview</a></li>
+ <li>Package</li>
+ <li>Class</li>
+ <li class="navBarCell1Rev">Index</li>
+ </ul>
+ </div>
+ <!-- =========== END OF NAVBAR =========== -->
+
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/groovy/blob/c8e8c7b6/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/template.overview-frame.html
----------------------------------------------------------------------
diff --git a/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/template.overview-frame.html b/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/template.overview-frame.html
new file mode 100644
index 0000000..2504982
--- /dev/null
+++ b/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/template.overview-frame.html
@@ -0,0 +1,46 @@
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<html>
+<head>
+ <title>Overview (${title})</title>
+ <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+
+<body class="left">
+
+<div class="indexHeader">
+ <a href="allclasses-frame.html" target="packageFrame">All Classes</a>
+</div>
+
+<div class="indexContainer">
+ <h2 title="Packages">Packages</h2>
+ <ul>
+ <li><a href="primitive-types/package-frame.html" title="Primitive types" target="packageFrame">Primitive types</a></li>
+ <% packages.grep().each { %>
+ <li><a href="${it.name.replaceAll('\\.', '/')}/package-frame.html" title="${it.name}" target="packageFrame">${it.name}</a></li>
+ <% } %>
+ </ul>
+</div>
+
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/groovy/blob/c8e8c7b6/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/template.package-frame.html
----------------------------------------------------------------------
diff --git a/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/template.package-frame.html b/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/template.package-frame.html
new file mode 100644
index 0000000..92a6b75
--- /dev/null
+++ b/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/template.package-frame.html
@@ -0,0 +1,61 @@
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+ <title>${docPackage.name} ($title)</title>
+ <%
+ int dotCount = docPackage.name.count('.')
+ String pathPref = '../' * (dotCount + 1)
+ %>
+ <link rel="stylesheet" type="text/css" href="${pathPref}stylesheet.css" title="Style">
+</head>
+
+<body class="left">
+
+<div class="indexHeader">
+ <b><a href="package-summary.html" target="classFrame">${docPackage.name}</a></b>
+</div>
+
+<% if (docPackage.docTypes.any { it.interface }) { %>
+<div class="indexContainer">
+ <h2 title="Interfaces">Interfaces</h2>
+ <ul>
+ <% docPackage.docTypes.findAll { it.interface }.each { docType -> %>
+ <li><a href="${docType.simpleClassName}.html" title="interface in ${docType.packageName}" target="classFrame"><i>${docType.simpleClassName}</i></a></li>
+ <% } %>
+ </ul>
+</div>
+<% } %>
+
+<% if (docPackage.docTypes.any { !it.interface }) { %>
+<div class="indexContainer">
+ <h2 title="Classes">Classes</h2>
+ <ul>
+ <% docPackage.docTypes.findAll { !it.interface }.each { docType -> %>
+ <li><a href="${docType.simpleClassName}.html" title="class in ${docType.packageName}" target="classFrame">${docType.simpleClassName}</a></li>
+ <% } %>
+ </ul>
+</div>
+<% } %>
+
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/groovy/blob/c8e8c7b6/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/template.package-summary.html
----------------------------------------------------------------------
diff --git a/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/template.package-summary.html b/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/template.package-summary.html
new file mode 100644
index 0000000..0d922f0
--- /dev/null
+++ b/subprojects/groovy-docgenerator/src/main/resources/org/apache/groovy/docgenerator/template.package-summary.html
@@ -0,0 +1,93 @@
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+ <title>${docPackage.name} ($title)</title>
+ <%
+ int dotCount = docPackage.name.count('.')
+ String pathPref = '../' * (dotCount + 1)
+ %>
+ <link rel="stylesheet" type="text/css" href="${pathPref}stylesheet.css" title="Style">
+ <script type="text/javascript">
+ function windowTitle() {
+ parent.document.title = document.title;
+ }
+ </script>
+</head>
+
+<body class="center" onload="windowTitle();">
+
+<!-- ========== START OF NAVBAR ========== -->
+<a name="navbar_top"><!-- --></a>
+
+<div class="topNav">
+ <ul class="navList" title="Navigation">
+ <li><a href="${pathPref}overview-summary.html">Overview</a></li>
+ <li class="navBarCell1Rev">Package</li>
+ <li>Class</li>
+ <li><a href="${pathPref}index-all.html">Index</a></li>
+ </ul>
+</div>
+<!-- =========== END OF NAVBAR =========== -->
+
+<div class="header">
+ <h1>Package ${docPackage.name}</h1>
+</div>
+
+<% if (docPackage.docTypes.any { it.interface }) { %>
+<div class="indexContainer">
+ <h2 title="Interfaces">Interfaces</h2>
+ <ul>
+ <% docPackage.docTypes.findAll { it.interface }.each { docType -> %>
+ <li><a href="${docType.simpleClassName}.html" title="interface in ${docType.packageName}" target="classFrame"><i>${docType.simpleClassName}</i></a></li>
+ <% } %>
+ </ul>
+</div>
+<% } %>
+
+<% if (docPackage.docTypes.any { !it.interface }) { %>
+<div class="indexContainer">
+ <h2 title="Classes">Classes</h2>
+ <ul>
+ <% docPackage.docTypes.findAll { !it.interface }.each { docType -> %>
+ <li><a href="${docType.simpleClassName}.html" title="class in ${docType.packageName}" target="classFrame">${docType.simpleClassName}</a></li>
+ <% } %>
+ </ul>
+</div>
+<% } %>
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<a name="navbar_bottom"><!-- --></a>
+<a href="#skip-navbar_bottom" title="Skip navigation links"></a>
+
+<div class="topNav">
+ <ul class="navList" title="Navigation">
+ <li><a href="${pathPref}overview-summary.html">Overview</a></li>
+ <li class="navBarCell1Rev">Package</li>
+ <li>Class</li>
+ <li><a href="${pathPref}index-all.html">Index</a></li>
+ </ul>
+</div>
+<!-- =========== END OF NAVBAR =========== -->
+
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/groovy/blob/c8e8c7b6/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/DocGenerator.properties
----------------------------------------------------------------------
diff --git a/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/DocGenerator.properties b/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/DocGenerator.properties
deleted file mode 100644
index 5c54aec..0000000
--- a/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/DocGenerator.properties
+++ /dev/null
@@ -1,34 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-#
-# CLI messages
-#
-
-cli.option.help.description=Display this help message
-
-cli.option.version.description=Display the version
-
-cli.option.title.description=Title to appear in html, default "Groovy JDK"
-
-cli.option.output.dir.description=The output directory, default "target/html/groovy-jdk"
-
-cli.option.link.patterns.description=The JavaDoc URLs for the given package prefixes
-
-cli.info.version=@|green DocGenerator|@ {0}
http://git-wip-us.apache.org/repos/asf/groovy/blob/c8e8c7b6/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/groovy.ico
----------------------------------------------------------------------
diff --git a/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/groovy.ico b/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/groovy.ico
deleted file mode 100644
index 9e9b8d8..0000000
Binary files a/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/groovy.ico and /dev/null differ
http://git-wip-us.apache.org/repos/asf/groovy/blob/c8e8c7b6/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/index.html
----------------------------------------------------------------------
diff --git a/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/index.html b/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/index.html
deleted file mode 100644
index 87d9028..0000000
--- a/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/index.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
-<html>
-<head>
-<title>
-$title
-</title>
-<link href="groovy.ico" type="image/x-icon" rel="shortcut icon">
-<link href="groovy.ico" type="image/x-icon" rel="icon">
-
-<script type="text/javascript">
- targetPage = "" + window.location.search;
- if (targetPage != "" && targetPage != "undefined")
- targetPage = targetPage.substring(1);
- if (targetPage.indexOf(":") != -1)
- targetPage = "undefined";
- if (targetPage != "" && !validURL(targetPage))
- targetPage = "undefined";
- function validURL(url) {
- var pos = url.indexOf(".html");
- if (pos == -1 || pos != url.length - 5)
- return false;
- var allowNumber = false;
- var allowSep = false;
- var seenDot = false;
- for (var i = 0; i < url.length - 5; i++) {
- var ch = url.charAt(i);
- if ('a' <= ch && ch <= 'z' ||
- 'A' <= ch && ch <= 'Z' ||
- ch == '\$' ||
- ch == '_') {
- allowNumber = true;
- allowSep = true;
- } else if ('0' <= ch && ch <= '9'
- || ch == '-') {
- if (!allowNumber)
- return false;
- } else if (ch == '/' || ch == '.') {
- if (!allowSep)
- return false;
- allowNumber = false;
- allowSep = false;
- if (ch == '.')
- seenDot = true;
- if (ch == '/' && seenDot)
- return false;
- } else {
- return false;
- }
- }
- return true;
- }
- function loadFrames() {
- if (targetPage != "" && targetPage != "undefined")
- top.classFrame.location = top.targetPage;
- }
-</script>
-</head>
-<frameset cols="20%,80%" title="" onLoad="top.loadFrames()">
-<frameset rows="30%,70%" title="" onLoad="top.loadFrames()">
- <frame src="overview-frame.html" name="packageListFrame" title="All Packages">
- <frame src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
-</frameset>
-
-<frame src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
-<noframes>
-<h2>
-Frame Alert</h2>
-<P>
-This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
-<br>
-Link to<A HREF="overview-summary.html">Non-frame version.</A>
-</P>
-</noframes>
-</frameset>
-</html>
http://git-wip-us.apache.org/repos/asf/groovy/blob/c8e8c7b6/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/overview-summary.html
----------------------------------------------------------------------
diff --git a/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/overview-summary.html b/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/overview-summary.html
deleted file mode 100644
index 17ab69f..0000000
--- a/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/overview-summary.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
-<html>
-<head>
- <title>Overview ($title)</title>
- <link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
- <script type="text/javascript">
- function windowTitle() {
- parent.document.title = document.title;
- }
- </script>
-</head>
-
-<body class="center" onload="windowTitle();">
-
- <!-- ========== START OF NAVBAR ========== -->
- <a name="navbar_top"><!-- --></a>
-
- <div class="topNav">
- <ul class="navList" title="Navigation">
- <li class="navBarCell1Rev">Overview</li>
- <li>Package</li>
- <li>Class</li>
- <li><a href="index-all.html">Index</a></li>
- </ul>
- </div>
- <!-- =========== END OF NAVBAR =========== -->
-
- <div class="header">
- <h1>Groovy JDK API Documentation</h1>
- <h2>Version ${GroovySystem.version}</h2>
- </div>
-
- <div class="container">
- <p>This document describes the methods added to the JDK to make it more groovy.</p>
- </div>
-
-</body>
-</html>
[2/5] groovy git commit: fix typo
Posted by pa...@apache.org.
fix typo
Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/1936f184
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/1936f184
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/1936f184
Branch: refs/heads/master
Commit: 1936f1844e952a08eb8eacdb6eebb0233f4eed44
Parents: 5eab4a5
Author: Paul King <pa...@asert.com.au>
Authored: Wed May 23 10:09:42 2018 +1000
Committer: Paul King <pa...@asert.com.au>
Committed: Thu May 24 00:08:24 2018 +1000
----------------------------------------------------------------------
src/spec/doc/core-semantics.adoc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/groovy/blob/1936f184/src/spec/doc/core-semantics.adoc
----------------------------------------------------------------------
diff --git a/src/spec/doc/core-semantics.adoc b/src/spec/doc/core-semantics.adoc
index 37f5b42..5fe3f5d 100644
--- a/src/spec/doc/core-semantics.adoc
+++ b/src/spec/doc/core-semantics.adoc
@@ -1591,8 +1591,8 @@ The type checker will now fail at compile time, because it knows that `o` is a `
so it's a type error.
It is important to understand that it is not the fact of declaring a variable with `def` that triggers type inference.
-Flow typing works for *any* variable of any type. Declaring a variable with an explicit type only constraints what you
-can assign to a variable:
+Flow typing works for *any* variable of any type. Declaring a variable with an explicit type only constrains what you
+can assign to the variable:
[source,groovy]
----
[3/5] groovy git commit: GROOVY-8593: DocGenerator could be moved to
avoid split packages (closes #715)
Posted by pa...@apache.org.
http://git-wip-us.apache.org/repos/asf/groovy/blob/c8e8c7b6/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/stylesheet.css
----------------------------------------------------------------------
diff --git a/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/stylesheet.css b/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/stylesheet.css
deleted file mode 100644
index 3aba844..0000000
--- a/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/stylesheet.css
+++ /dev/null
@@ -1,2321 +0,0 @@
-@charset "${props.charset}";
-
-/*! normalize.css v2.1.0 | MIT License | git.io/normalize */
-article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary {
- display: block
-}
-
-audio, canvas, video {
- display: inline-block
-}
-
-audio:not([controls]) {
- display: none;
- height: 0
-}
-
-[hidden] {
- display: none
-}
-
-html {
- font-family: sans-serif;
- -webkit-text-size-adjust: 100%;
- -ms-text-size-adjust: 100%
-}
-
-body {
- margin: 0
-}
-
-a:focus {
- outline: thin dotted
-}
-
-a:active, a:hover {
- outline: 0
-}
-
-h1 {
- font-size: 2em;
- margin: .67em 0
-}
-
-abbr[title] {
- border-bottom: 1px dotted
-}
-
-b, strong {
- font-weight: bold
-}
-
-dfn {
- font-style: italic
-}
-
-hr {
- -moz-box-sizing: content-box;
- box-sizing: content-box;
- height: 0
-}
-
-mark {
- background: #ff0;
- color: #000
-}
-
-code, kbd, pre, samp {
- font-family: monospace, serif;
- font-size: 1em
-}
-
-pre {
- white-space: pre-wrap
-}
-
-q {
- quotes: "\201C" "\201D" "\2018" "\2019"
-}
-
-small {
- font-size: 80%
-}
-
-sub, sup {
- font-size: 75%;
- line-height: 0;
- position: relative;
- vertical-align: baseline
-}
-
-sup {
- top: -0.5em
-}
-
-sub {
- bottom: -0.25em
-}
-
-img {
- border: 0
-}
-
-svg:not(:root) {
- overflow: hidden
-}
-
-figure {
- margin: 0
-}
-
-fieldset {
- border: 1px solid #c0c0c0;
- margin: 0 2px;
- padding: .35em .625em .75em
-}
-
-legend {
- border: 0;
- padding: 0
-}
-
-button, input, select, textarea {
- font-family: inherit;
- font-size: 100%;
- margin: 0
-}
-
-button, input {
- line-height: normal
-}
-
-button, select {
- text-transform: none
-}
-
-button, html input[type="button"], input[type="reset"], input[type="submit"] {
- -webkit-appearance: button;
- cursor: pointer
-}
-
-button[disabled], html input[disabled] {
- cursor: default
-}
-
-input[type="checkbox"], input[type="radio"] {
- box-sizing: border-box;
- padding: 0
-}
-
-input[type="search"] {
- -webkit-appearance: textfield;
- -moz-box-sizing: content-box;
- -webkit-box-sizing: content-box;
- box-sizing: content-box
-}
-
-input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration {
- -webkit-appearance: none
-}
-
-button::-moz-focus-inner, input::-moz-focus-inner {
- border: 0;
- padding: 0
-}
-
-textarea {
- overflow: auto;
- vertical-align: top
-}
-
-table {
- border-collapse: collapse;
- border-spacing: 0
-}
-
-@-ms-viewport {
- width: device-width
-}
-
-@media screen and (max-width: 400px) {
- @-ms-viewport {
- width: 320px
- }
-}
-
-.hidden {
- display: none !important;
- visibility: hidden !important
-}
-
-.visible-xs {
- display: none !important
-}
-
-tr.visible-xs {
- display: none !important
-}
-
-th.visible-xs, td.visible-xs {
- display: none !important
-}
-
-@media (max-width: 767px) {
- .visible-xs {
- display: block !important
- }
-
- tr.visible-xs {
- display: table-row !important
- }
-
- th.visible-xs, td.visible-xs {
- display: table-cell !important
- }
-}
-
-@media (min-width: 768px) and (max-width: 991px) {
- .visible-xs.visible-sm {
- display: block !important
- }
-
- tr.visible-xs.visible-sm {
- display: table-row !important
- }
-
- th.visible-xs.visible-sm, td.visible-xs.visible-sm {
- display: table-cell !important
- }
-}
-
-@media (min-width: 992px) and (max-width: 1199px) {
- .visible-xs.visible-md {
- display: block !important
- }
-
- tr.visible-xs.visible-md {
- display: table-row !important
- }
-
- th.visible-xs.visible-md, td.visible-xs.visible-md {
- display: table-cell !important
- }
-}
-
-@media (min-width: 1200px) {
- .visible-xs.visible-lg {
- display: block !important
- }
-
- tr.visible-xs.visible-lg {
- display: table-row !important
- }
-
- th.visible-xs.visible-lg, td.visible-xs.visible-lg {
- display: table-cell !important
- }
-}
-
-.visible-sm {
- display: none !important
-}
-
-tr.visible-sm {
- display: none !important
-}
-
-th.visible-sm, td.visible-sm {
- display: none !important
-}
-
-@media (max-width: 767px) {
- .visible-sm.visible-xs {
- display: block !important
- }
-
- tr.visible-sm.visible-xs {
- display: table-row !important
- }
-
- th.visible-sm.visible-xs, td.visible-sm.visible-xs {
- display: table-cell !important
- }
-}
-
-@media (min-width: 768px) and (max-width: 991px) {
- .visible-sm {
- display: block !important
- }
-
- tr.visible-sm {
- display: table-row !important
- }
-
- th.visible-sm, td.visible-sm {
- display: table-cell !important
- }
-}
-
-@media (min-width: 992px) and (max-width: 1199px) {
- .visible-sm.visible-md {
- display: block !important
- }
-
- tr.visible-sm.visible-md {
- display: table-row !important
- }
-
- th.visible-sm.visible-md, td.visible-sm.visible-md {
- display: table-cell !important
- }
-}
-
-@media (min-width: 1200px) {
- .visible-sm.visible-lg {
- display: block !important
- }
-
- tr.visible-sm.visible-lg {
- display: table-row !important
- }
-
- th.visible-sm.visible-lg, td.visible-sm.visible-lg {
- display: table-cell !important
- }
-}
-
-.visible-md {
- display: none !important
-}
-
-tr.visible-md {
- display: none !important
-}
-
-th.visible-md, td.visible-md {
- display: none !important
-}
-
-@media (max-width: 767px) {
- .visible-md.visible-xs {
- display: block !important
- }
-
- tr.visible-md.visible-xs {
- display: table-row !important
- }
-
- th.visible-md.visible-xs, td.visible-md.visible-xs {
- display: table-cell !important
- }
-}
-
-@media (min-width: 768px) and (max-width: 991px) {
- .visible-md.visible-sm {
- display: block !important
- }
-
- tr.visible-md.visible-sm {
- display: table-row !important
- }
-
- th.visible-md.visible-sm, td.visible-md.visible-sm {
- display: table-cell !important
- }
-}
-
-@media (min-width: 992px) and (max-width: 1199px) {
- .visible-md {
- display: block !important
- }
-
- tr.visible-md {
- display: table-row !important
- }
-
- th.visible-md, td.visible-md {
- display: table-cell !important
- }
-}
-
-@media (min-width: 1200px) {
- .visible-md.visible-lg {
- display: block !important
- }
-
- tr.visible-md.visible-lg {
- display: table-row !important
- }
-
- th.visible-md.visible-lg, td.visible-md.visible-lg {
- display: table-cell !important
- }
-}
-
-.visible-lg {
- display: none !important
-}
-
-tr.visible-lg {
- display: none !important
-}
-
-th.visible-lg, td.visible-lg {
- display: none !important
-}
-
-@media (max-width: 767px) {
- .visible-lg.visible-xs {
- display: block !important
- }
-
- tr.visible-lg.visible-xs {
- display: table-row !important
- }
-
- th.visible-lg.visible-xs, td.visible-lg.visible-xs {
- display: table-cell !important
- }
-}
-
-@media (min-width: 768px) and (max-width: 991px) {
- .visible-lg.visible-sm {
- display: block !important
- }
-
- tr.visible-lg.visible-sm {
- display: table-row !important
- }
-
- th.visible-lg.visible-sm, td.visible-lg.visible-sm {
- display: table-cell !important
- }
-}
-
-@media (min-width: 992px) and (max-width: 1199px) {
- .visible-lg.visible-md {
- display: block !important
- }
-
- tr.visible-lg.visible-md {
- display: table-row !important
- }
-
- th.visible-lg.visible-md, td.visible-lg.visible-md {
- display: table-cell !important
- }
-}
-
-@media (min-width: 1200px) {
- .visible-lg {
- display: block !important
- }
-
- tr.visible-lg {
- display: table-row !important
- }
-
- th.visible-lg, td.visible-lg {
- display: table-cell !important
- }
-}
-
-.hidden-xs {
- display: block !important
-}
-
-tr.hidden-xs {
- display: table-row !important
-}
-
-th.hidden-xs, td.hidden-xs {
- display: table-cell !important
-}
-
-@media (max-width: 767px) {
- .hidden-xs {
- display: none !important
- }
-
- tr.hidden-xs {
- display: none !important
- }
-
- th.hidden-xs, td.hidden-xs {
- display: none !important
- }
-}
-
-@media (min-width: 768px) and (max-width: 991px) {
- .hidden-xs.hidden-sm {
- display: none !important
- }
-
- tr.hidden-xs.hidden-sm {
- display: none !important
- }
-
- th.hidden-xs.hidden-sm, td.hidden-xs.hidden-sm {
- display: none !important
- }
-}
-
-@media (min-width: 992px) and (max-width: 1199px) {
- .hidden-xs.hidden-md {
- display: none !important
- }
-
- tr.hidden-xs.hidden-md {
- display: none !important
- }
-
- th.hidden-xs.hidden-md, td.hidden-xs.hidden-md {
- display: none !important
- }
-}
-
-@media (min-width: 1200px) {
- .hidden-xs.hidden-lg {
- display: none !important
- }
-
- tr.hidden-xs.hidden-lg {
- display: none !important
- }
-
- th.hidden-xs.hidden-lg, td.hidden-xs.hidden-lg {
- display: none !important
- }
-}
-
-.hidden-sm {
- display: block !important
-}
-
-tr.hidden-sm {
- display: table-row !important
-}
-
-th.hidden-sm, td.hidden-sm {
- display: table-cell !important
-}
-
-@media (max-width: 767px) {
- .hidden-sm.hidden-xs {
- display: none !important
- }
-
- tr.hidden-sm.hidden-xs {
- display: none !important
- }
-
- th.hidden-sm.hidden-xs, td.hidden-sm.hidden-xs {
- display: none !important
- }
-}
-
-@media (min-width: 768px) and (max-width: 991px) {
- .hidden-sm {
- display: none !important
- }
-
- tr.hidden-sm {
- display: none !important
- }
-
- th.hidden-sm, td.hidden-sm {
- display: none !important
- }
-}
-
-@media (min-width: 992px) and (max-width: 1199px) {
- .hidden-sm.hidden-md {
- display: none !important
- }
-
- tr.hidden-sm.hidden-md {
- display: none !important
- }
-
- th.hidden-sm.hidden-md, td.hidden-sm.hidden-md {
- display: none !important
- }
-}
-
-@media (min-width: 1200px) {
- .hidden-sm.hidden-lg {
- display: none !important
- }
-
- tr.hidden-sm.hidden-lg {
- display: none !important
- }
-
- th.hidden-sm.hidden-lg, td.hidden-sm.hidden-lg {
- display: none !important
- }
-}
-
-.hidden-md {
- display: block !important
-}
-
-tr.hidden-md {
- display: table-row !important
-}
-
-th.hidden-md, td.hidden-md {
- display: table-cell !important
-}
-
-@media (max-width: 767px) {
- .hidden-md.hidden-xs {
- display: none !important
- }
-
- tr.hidden-md.hidden-xs {
- display: none !important
- }
-
- th.hidden-md.hidden-xs, td.hidden-md.hidden-xs {
- display: none !important
- }
-}
-
-@media (min-width: 768px) and (max-width: 991px) {
- .hidden-md.hidden-sm {
- display: none !important
- }
-
- tr.hidden-md.hidden-sm {
- display: none !important
- }
-
- th.hidden-md.hidden-sm, td.hidden-md.hidden-sm {
- display: none !important
- }
-}
-
-@media (min-width: 992px) and (max-width: 1199px) {
- .hidden-md {
- display: none !important
- }
-
- tr.hidden-md {
- display: none !important
- }
-
- th.hidden-md, td.hidden-md {
- display: none !important
- }
-}
-
-@media (min-width: 1200px) {
- .hidden-md.hidden-lg {
- display: none !important
- }
-
- tr.hidden-md.hidden-lg {
- display: none !important
- }
-
- th.hidden-md.hidden-lg, td.hidden-md.hidden-lg {
- display: none !important
- }
-}
-
-.hidden-lg {
- display: block !important
-}
-
-tr.hidden-lg {
- display: table-row !important
-}
-
-th.hidden-lg, td.hidden-lg {
- display: table-cell !important
-}
-
-@media (max-width: 767px) {
- .hidden-lg.hidden-xs {
- display: none !important
- }
-
- tr.hidden-lg.hidden-xs {
- display: none !important
- }
-
- th.hidden-lg.hidden-xs, td.hidden-lg.hidden-xs {
- display: none !important
- }
-}
-
-@media (min-width: 768px) and (max-width: 991px) {
- .hidden-lg.hidden-sm {
- display: none !important
- }
-
- tr.hidden-lg.hidden-sm {
- display: none !important
- }
-
- th.hidden-lg.hidden-sm, td.hidden-lg.hidden-sm {
- display: none !important
- }
-}
-
-@media (min-width: 992px) and (max-width: 1199px) {
- .hidden-lg.hidden-md {
- display: none !important
- }
-
- tr.hidden-lg.hidden-md {
- display: none !important
- }
-
- th.hidden-lg.hidden-md, td.hidden-lg.hidden-md {
- display: none !important
- }
-}
-
-@media (min-width: 1200px) {
- .hidden-lg {
- display: none !important
- }
-
- tr.hidden-lg {
- display: none !important
- }
-
- th.hidden-lg, td.hidden-lg {
- display: none !important
- }
-}
-
-.visible-print {
- display: none !important
-}
-
-tr.visible-print {
- display: none !important
-}
-
-th.visible-print, td.visible-print {
- display: none !important
-}
-
-@media print {
- .visible-print {
- display: block !important
- }
-
- tr.visible-print {
- display: table-row !important
- }
-
- th.visible-print, td.visible-print {
- display: table-cell !important
- }
-
- .hidden-print {
- display: none !important
- }
-
- tr.hidden-print {
- display: none !important
- }
-
- th.hidden-print, td.hidden-print {
- display: none !important
- }
-}
-
-.container {
- margin-right: auto;
- margin-left: auto;
- padding-left: 15px;
- padding-right: 15px
-}
-
-.container:before, .container:after {
- content: " ";
- display: table
-}
-
-.container:after {
- clear: both
-}
-
-.row-fluid {
- margin-left: -15px;
- margin-right: -15px
-}
-
-.row-fluid:before, .row-fluid:after {
- content: " ";
- display: table
-}
-
-.row-fluid:after {
- clear: both
-}
-
-.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
- position: relative;
- min-height: 1px;
- padding-left: 15px;
- padding-right: 15px
-}
-
-.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11 {
- float: left
-}
-
-.col-xs-1 {
- width: 8.333333333333332%
-}
-
-.col-xs-2 {
- width: 16.666666666666664%
-}
-
-.col-xs-3 {
- width: 25%
-}
-
-.col-xs-4 {
- width: 33.33333333333333%
-}
-
-.col-xs-5 {
- width: 41.66666666666667%
-}
-
-.col-xs-6 {
- width: 50%
-}
-
-.col-xs-7 {
- width: 58.333333333333336%
-}
-
-.col-xs-8 {
- width: 66.66666666666666%
-}
-
-.col-xs-9 {
- width: 75%
-}
-
-.col-xs-10 {
- width: 83.33333333333334%
-}
-
-.col-xs-11 {
- width: 91.66666666666666%
-}
-
-.col-xs-12 {
- width: 100%
-}
-
-@media (min-width: 768px) {
- .container {
- max-width: 750px
- }
-
- .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11 {
- float: left
- }
-
- .col-sm-1 {
- width: 8.333333333333332%
- }
-
- .col-sm-2 {
- width: 16.666666666666664%
- }
-
- .col-sm-3 {
- width: 25%
- }
-
- .col-sm-4 {
- width: 33.33333333333333%
- }
-
- .col-sm-5 {
- width: 41.66666666666667%
- }
-
- .col-sm-6 {
- width: 50%
- }
-
- .col-sm-7 {
- width: 58.333333333333336%
- }
-
- .col-sm-8 {
- width: 66.66666666666666%
- }
-
- .col-sm-9 {
- width: 75%
- }
-
- .col-sm-10 {
- width: 83.33333333333334%
- }
-
- .col-sm-11 {
- width: 91.66666666666666%
- }
-
- .col-sm-12 {
- width: 100%
- }
-
- .col-sm-push-1 {
- left: 8.333333333333332%
- }
-
- .col-sm-push-2 {
- left: 16.666666666666664%
- }
-
- .col-sm-push-3 {
- left: 25%
- }
-
- .col-sm-push-4 {
- left: 33.33333333333333%
- }
-
- .col-sm-push-5 {
- left: 41.66666666666667%
- }
-
- .col-sm-push-6 {
- left: 50%
- }
-
- .col-sm-push-7 {
- left: 58.333333333333336%
- }
-
- .col-sm-push-8 {
- left: 66.66666666666666%
- }
-
- .col-sm-push-9 {
- left: 75%
- }
-
- .col-sm-push-10 {
- left: 83.33333333333334%
- }
-
- .col-sm-push-11 {
- left: 91.66666666666666%
- }
-
- .col-sm-pull-1 {
- right: 8.333333333333332%
- }
-
- .col-sm-pull-2 {
- right: 16.666666666666664%
- }
-
- .col-sm-pull-3 {
- right: 25%
- }
-
- .col-sm-pull-4 {
- right: 33.33333333333333%
- }
-
- .col-sm-pull-5 {
- right: 41.66666666666667%
- }
-
- .col-sm-pull-6 {
- right: 50%
- }
-
- .col-sm-pull-7 {
- right: 58.333333333333336%
- }
-
- .col-sm-pull-8 {
- right: 66.66666666666666%
- }
-
- .col-sm-pull-9 {
- right: 75%
- }
-
- .col-sm-pull-10 {
- right: 83.33333333333334%
- }
-
- .col-sm-pull-11 {
- right: 91.66666666666666%
- }
-
- .col-sm-offset-1 {
- margin-left: 8.333333333333332%
- }
-
- .col-sm-offset-2 {
- margin-left: 16.666666666666664%
- }
-
- .col-sm-offset-3 {
- margin-left: 25%
- }
-
- .col-sm-offset-4 {
- margin-left: 33.33333333333333%
- }
-
- .col-sm-offset-5 {
- margin-left: 41.66666666666667%
- }
-
- .col-sm-offset-6 {
- margin-left: 50%
- }
-
- .col-sm-offset-7 {
- margin-left: 58.333333333333336%
- }
-
- .col-sm-offset-8 {
- margin-left: 66.66666666666666%
- }
-
- .col-sm-offset-9 {
- margin-left: 75%
- }
-
- .col-sm-offset-10 {
- margin-left: 83.33333333333334%
- }
-
- .col-sm-offset-11 {
- margin-left: 91.66666666666666%
- }
-}
-
-@media (min-width: 992px) {
- .container {
- max-width: 970px
- }
-
- .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11 {
- float: left
- }
-
- .col-md-1 {
- width: 8.333333333333332%
- }
-
- .col-md-2 {
- width: 16.666666666666664%
- }
-
- .col-md-3 {
- width: 25%
- }
-
- .col-md-4 {
- width: 33.33333333333333%
- }
-
- .col-md-5 {
- width: 41.66666666666667%
- }
-
- .col-md-6 {
- width: 50%
- }
-
- .col-md-7 {
- width: 58.333333333333336%
- }
-
- .col-md-8 {
- width: 66.66666666666666%
- }
-
- .col-md-9 {
- width: 75%
- }
-
- .col-md-10 {
- width: 83.33333333333334%
- }
-
- .col-md-11 {
- width: 91.66666666666666%
- }
-
- .col-md-12 {
- width: 100%
- }
-
- .col-md-push-0 {
- left: auto
- }
-
- .col-md-push-1 {
- left: 8.333333333333332%
- }
-
- .col-md-push-2 {
- left: 16.666666666666664%
- }
-
- .col-md-push-3 {
- left: 25%
- }
-
- .col-md-push-4 {
- left: 33.33333333333333%
- }
-
- .col-md-push-5 {
- left: 41.66666666666667%
- }
-
- .col-md-push-6 {
- left: 50%
- }
-
- .col-md-push-7 {
- left: 58.333333333333336%
- }
-
- .col-md-push-8 {
- left: 66.66666666666666%
- }
-
- .col-md-push-9 {
- left: 75%
- }
-
- .col-md-push-10 {
- left: 83.33333333333334%
- }
-
- .col-md-push-11 {
- left: 91.66666666666666%
- }
-
- .col-md-pull-0 {
- right: auto
- }
-
- .col-md-pull-1 {
- right: 8.333333333333332%
- }
-
- .col-md-pull-2 {
- right: 16.666666666666664%
- }
-
- .col-md-pull-3 {
- right: 25%
- }
-
- .col-md-pull-4 {
- right: 33.33333333333333%
- }
-
- .col-md-pull-5 {
- right: 41.66666666666667%
- }
-
- .col-md-pull-6 {
- right: 50%
- }
-
- .col-md-pull-7 {
- right: 58.333333333333336%
- }
-
- .col-md-pull-8 {
- right: 66.66666666666666%
- }
-
- .col-md-pull-9 {
- right: 75%
- }
-
- .col-md-pull-10 {
- right: 83.33333333333334%
- }
-
- .col-md-pull-11 {
- right: 91.66666666666666%
- }
-
- .col-md-offset-0 {
- margin-left: 0
- }
-
- .col-md-offset-1 {
- margin-left: 8.333333333333332%
- }
-
- .col-md-offset-2 {
- margin-left: 16.666666666666664%
- }
-
- .col-md-offset-3 {
- margin-left: 25%
- }
-
- .col-md-offset-4 {
- margin-left: 33.33333333333333%
- }
-
- .col-md-offset-5 {
- margin-left: 41.66666666666667%
- }
-
- .col-md-offset-6 {
- margin-left: 50%
- }
-
- .col-md-offset-7 {
- margin-left: 58.333333333333336%
- }
-
- .col-md-offset-8 {
- margin-left: 66.66666666666666%
- }
-
- .col-md-offset-9 {
- margin-left: 75%
- }
-
- .col-md-offset-10 {
- margin-left: 83.33333333333334%
- }
-
- .col-md-offset-11 {
- margin-left: 91.66666666666666%
- }
-}
-
-@media (min-width: 1200px) {
- .container {
- max-width: 1170px
- }
-
- .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11 {
- float: left
- }
-
- .col-lg-1 {
- width: 8.333333333333332%
- }
-
- .col-lg-2 {
- width: 16.666666666666664%
- }
-
- .col-lg-3 {
- width: 25%
- }
-
- .col-lg-4 {
- width: 33.33333333333333%
- }
-
- .col-lg-5 {
- width: 41.66666666666667%
- }
-
- .col-lg-6 {
- width: 50%
- }
-
- .col-lg-7 {
- width: 58.333333333333336%
- }
-
- .col-lg-8 {
- width: 66.66666666666666%
- }
-
- .col-lg-9 {
- width: 75%
- }
-
- .col-lg-10 {
- width: 83.33333333333334%
- }
-
- .col-lg-11 {
- width: 91.66666666666666%
- }
-
- .col-lg-12 {
- width: 100%
- }
-
- .col-lg-push-0 {
- left: auto
- }
-
- .col-lg-push-1 {
- left: 8.333333333333332%
- }
-
- .col-lg-push-2 {
- left: 16.666666666666664%
- }
-
- .col-lg-push-3 {
- left: 25%
- }
-
- .col-lg-push-4 {
- left: 33.33333333333333%
- }
-
- .col-lg-push-5 {
- left: 41.66666666666667%
- }
-
- .col-lg-push-6 {
- left: 50%
- }
-
- .col-lg-push-7 {
- left: 58.333333333333336%
- }
-
- .col-lg-push-8 {
- left: 66.66666666666666%
- }
-
- .col-lg-push-9 {
- left: 75%
- }
-
- .col-lg-push-10 {
- left: 83.33333333333334%
- }
-
- .col-lg-push-11 {
- left: 91.66666666666666%
- }
-
- .col-lg-pull-0 {
- right: auto
- }
-
- .col-lg-pull-1 {
- right: 8.333333333333332%
- }
-
- .col-lg-pull-2 {
- right: 16.666666666666664%
- }
-
- .col-lg-pull-3 {
- right: 25%
- }
-
- .col-lg-pull-4 {
- right: 33.33333333333333%
- }
-
- .col-lg-pull-5 {
- right: 41.66666666666667%
- }
-
- .col-lg-pull-6 {
- right: 50%
- }
-
- .col-lg-pull-7 {
- right: 58.333333333333336%
- }
-
- .col-lg-pull-8 {
- right: 66.66666666666666%
- }
-
- .col-lg-pull-9 {
- right: 75%
- }
-
- .col-lg-pull-10 {
- right: 83.33333333333334%
- }
-
- .col-lg-pull-11 {
- right: 91.66666666666666%
- }
-
- .col-lg-offset-0 {
- margin-left: 0
- }
-
- .col-lg-offset-1 {
- margin-left: 8.333333333333332%
- }
-
- .col-lg-offset-2 {
- margin-left: 16.666666666666664%
- }
-
- .col-lg-offset-3 {
- margin-left: 25%
- }
-
- .col-lg-offset-4 {
- margin-left: 33.33333333333333%
- }
-
- .col-lg-offset-5 {
- margin-left: 41.66666666666667%
- }
-
- .col-lg-offset-6 {
- margin-left: 50%
- }
-
- .col-lg-offset-7 {
- margin-left: 58.333333333333336%
- }
-
- .col-lg-offset-8 {
- margin-left: 66.66666666666666%
- }
-
- .col-lg-offset-9 {
- margin-left: 75%
- }
-
- .col-lg-offset-10 {
- margin-left: 83.33333333333334%
- }
-
- .col-lg-offset-11 {
- margin-left: 91.66666666666666%
- }
-}
-
-.btn {
- display: inline-block;
- padding: 6px 12px;
- margin-bottom: 0;
- font-size: 14px;
- font-weight: normal;
- line-height: 1.428571429;
- text-align: center;
- vertical-align: middle;
- cursor: pointer;
- border: 1px solid transparent;
- border-radius: 0;
- white-space: nowrap;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- -o-user-select: none;
- user-select: none
-}
-
-.btn:focus {
- outline: thin dotted #333;
- outline: 5px auto -webkit-focus-ring-color;
- outline-offset: -2px
-}
-
-.btn:hover, .btn:focus {
- color: #333;
- text-decoration: none
-}
-
-.btn:active, .btn.active {
- outline: 0;
- background-image: none
-}
-
-.btn.disabled, .btn[disabled], fieldset[disabled] .btn {
- cursor: not-allowed;
- pointer-events: none;
- opacity: .65;
- filter: alpha(opacity=65);
- -webkit-box-shadow: none;
- box-shadow: none
-}
-
-.btn-default {
- color: #333;
- background-color: #fff;
- border-color: #ccc
-}
-
-.btn-default:hover, .btn-default:focus, .btn-default:active, .btn-default.active, .open .dropdown-toggle.btn-default {
- color: #333;
- background-color: #ebebeb;
- border-color: #adadad
-}
-
-.btn-default:active, .btn-default.active, .open .dropdown-toggle.btn-default {
- background-image: none
-}
-
-.btn-default.disabled, .btn-default[disabled], fieldset[disabled] .btn-default, .btn-default.disabled:hover, .btn-default[disabled]:hover, fieldset[disabled] .btn-default:hover, .btn-default.disabled:focus, .btn-default[disabled]:focus, fieldset[disabled] .btn-default:focus, .btn-default.disabled:active, .btn-default[disabled]:active, fieldset[disabled] .btn-default:active, .btn-default.disabled.active, .btn-default[disabled].active, fieldset[disabled] .btn-default.active {
- background-color: #fff;
- border-color: #ccc
-}
-
-.btn-primary {
- color: #fff;
- background-color: #428bca;
- border-color: #357ebd
-}
-
-.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, .open .dropdown-toggle.btn-primary {
- color: #fff;
- background-color: #3276b1;
- border-color: #285e8e
-}
-
-.btn-primary:active, .btn-primary.active, .open .dropdown-toggle.btn-primary {
- background-image: none
-}
-
-.btn-primary.disabled, .btn-primary[disabled], fieldset[disabled] .btn-primary, .btn-primary.disabled:hover, .btn-primary[disabled]:hover, fieldset[disabled] .btn-primary:hover, .btn-primary.disabled:focus, .btn-primary[disabled]:focus, fieldset[disabled] .btn-primary:focus, .btn-primary.disabled:active, .btn-primary[disabled]:active, fieldset[disabled] .btn-primary:active, .btn-primary.disabled.active, .btn-primary[disabled].active, fieldset[disabled] .btn-primary.active {
- background-color: #428bca;
- border-color: #357ebd
-}
-
-.btn-warning {
- color: #fff;
- background-color: #f0ad4e;
- border-color: #eea236
-}
-
-.btn-warning:hover, .btn-warning:focus, .btn-warning:active, .btn-warning.active, .open .dropdown-toggle.btn-warning {
- color: #fff;
- background-color: #ed9c28;
- border-color: #d58512
-}
-
-.btn-warning:active, .btn-warning.active, .open .dropdown-toggle.btn-warning {
- background-image: none
-}
-
-.btn-warning.disabled, .btn-warning[disabled], fieldset[disabled] .btn-warning, .btn-warning.disabled:hover, .btn-warning[disabled]:hover, fieldset[disabled] .btn-warning:hover, .btn-warning.disabled:focus, .btn-warning[disabled]:focus, fieldset[disabled] .btn-warning:focus, .btn-warning.disabled:active, .btn-warning[disabled]:active, fieldset[disabled] .btn-warning:active, .btn-warning.disabled.active, .btn-warning[disabled].active, fieldset[disabled] .btn-warning.active {
- background-color: #f0ad4e;
- border-color: #eea236
-}
-
-.btn-danger {
- color: #fff;
- background-color: #d9534f;
- border-color: #d43f3a
-}
-
-.btn-danger:hover, .btn-danger:focus, .btn-danger:active, .btn-danger.active, .open .dropdown-toggle.btn-danger {
- color: #fff;
- background-color: #d2322d;
- border-color: #ac2925
-}
-
-.btn-danger:active, .btn-danger.active, .open .dropdown-toggle.btn-danger {
- background-image: none
-}
-
-.btn-danger.disabled, .btn-danger[disabled], fieldset[disabled] .btn-danger, .btn-danger.disabled:hover, .btn-danger[disabled]:hover, fieldset[disabled] .btn-danger:hover, .btn-danger.disabled:focus, .btn-danger[disabled]:focus, fieldset[disabled] .btn-danger:focus, .btn-danger.disabled:active, .btn-danger[disabled]:active, fieldset[disabled] .btn-danger:active, .btn-danger.disabled.active, .btn-danger[disabled].active, fieldset[disabled] .btn-danger.active {
- background-color: #d9534f;
- border-color: #d43f3a
-}
-
-.btn-success {
- color: #fff;
- background-color: #5cb85c;
- border-color: #4cae4c
-}
-
-.btn-success:hover, .btn-success:focus, .btn-success:active, .btn-success.active, .open .dropdown-toggle.btn-success {
- color: #fff;
- background-color: #47a447;
- border-color: #398439
-}
-
-.btn-success:active, .btn-success.active, .open .dropdown-toggle.btn-success {
- background-image: none
-}
-
-.btn-success.disabled, .btn-success[disabled], fieldset[disabled] .btn-success, .btn-success.disabled:hover, .btn-success[disabled]:hover, fieldset[disabled] .btn-success:hover, .btn-success.disabled:focus, .btn-success[disabled]:focus, fieldset[disabled] .btn-success:focus, .btn-success.disabled:active, .btn-success[disabled]:active, fieldset[disabled] .btn-success:active, .btn-success.disabled.active, .btn-success[disabled].active, fieldset[disabled] .btn-success.active {
- background-color: #5cb85c;
- border-color: #4cae4c
-}
-
-.btn-info {
- color: #fff;
- background-color: #5bc0de;
- border-color: #46b8da
-}
-
-.btn-info:hover, .btn-info:focus, .btn-info:active, .btn-info.active, .open .dropdown-toggle.btn-info {
- color: #fff;
- background-color: #39b3d7;
- border-color: #269abc
-}
-
-.btn-info:active, .btn-info.active, .open .dropdown-toggle.btn-info {
- background-image: none
-}
-
-.btn-info.disabled, .btn-info[disabled], fieldset[disabled] .btn-info, .btn-info.disabled:hover, .btn-info[disabled]:hover, fieldset[disabled] .btn-info:hover, .btn-info.disabled:focus, .btn-info[disabled]:focus, fieldset[disabled] .btn-info:focus, .btn-info.disabled:active, .btn-info[disabled]:active, fieldset[disabled] .btn-info:active, .btn-info.disabled.active, .btn-info[disabled].active, fieldset[disabled] .btn-info.active {
- background-color: #5bc0de;
- border-color: #46b8da
-}
-
-.btn-link {
- color: #428bca;
- font-weight: normal;
- cursor: pointer;
- border-radius: 0
-}
-
-.btn-link, .btn-link:active, .btn-link[disabled], fieldset[disabled] .btn-link {
- background-color: transparent;
- -webkit-box-shadow: none;
- box-shadow: none
-}
-
-.btn-link, .btn-link:hover, .btn-link:focus, .btn-link:active {
- border-color: transparent
-}
-
-.btn-link:hover, .btn-link:focus {
- color: #2a6496;
- text-decoration: underline;
- background-color: transparent
-}
-
-.btn-link[disabled]:hover, fieldset[disabled] .btn-link:hover, .btn-link[disabled]:focus, fieldset[disabled] .btn-link:focus {
- color: #999;
- text-decoration: none
-}
-
-.btn-lg {
- padding: 10px 16px;
- font-size: 18px;
- line-height: 1.33;
- border-radius: 6px
-}
-
-.btn-sm, .btn-xs {
- padding: 5px 10px;
- font-size: 12px;
- line-height: 1.5;
- border-radius: 3px
-}
-
-.btn-xs {
- padding: 1px 5px
-}
-
-.btn-block {
- display: block;
- width: 100%;
- padding-left: 0;
- padding-right: 0
-}
-
-.btn-block + .btn-block {
- margin-top: 5px
-}
-
-input[type="submit"].btn-block, input[type="reset"].btn-block, input[type="button"].btn-block {
- width: 100%
-}
-
-.btn-default .caret {
- border-top-color: #333
-}
-
-.btn-primary .caret, .btn-success .caret, .btn-warning .caret, .btn-danger .caret, .btn-info .caret {
- border-top-color: #fff
-}
-
-.dropup .btn-default .caret {
- border-bottom-color: #333
-}
-
-.dropup .btn-primary .caret, .dropup .btn-success .caret, .dropup .btn-warning .caret, .dropup .btn-danger .caret, .dropup .btn-info .caret {
- border-bottom-color: #fff
-}
-
-.btn-group, .btn-group-vertical {
- position: relative;
- display: inline-block;
- vertical-align: middle
-}
-
-.btn-group > .btn, .btn-group-vertical > .btn {
- position: relative;
- float: left
-}
-
-.btn-group > .btn:hover, .btn-group-vertical > .btn:hover, .btn-group > .btn:focus, .btn-group-vertical > .btn:focus, .btn-group > .btn:active, .btn-group-vertical > .btn:active, .btn-group > .btn.active, .btn-group-vertical > .btn.active {
- z-index: 2
-}
-
-.btn-group > .btn:focus, .btn-group-vertical > .btn:focus {
- outline: 0
-}
-
-.btn-group .btn + .btn, .btn-group .btn + .btn-group, .btn-group .btn-group + .btn, .btn-group .btn-group + .btn-group {
- margin-left: -1px
-}
-
-.btn-toolbar:before, .btn-toolbar:after {
- content: " ";
- display: table
-}
-
-.btn-toolbar:after {
- clear: both
-}
-
-.btn-toolbar .btn-group {
- float: left
-}
-
-.btn-toolbar > .btn + .btn, .btn-toolbar > .btn-group + .btn, .btn-toolbar > .btn + .btn-group, .btn-toolbar > .btn-group + .btn-group {
- margin-left: 5px
-}
-
-.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
- border-radius: 0
-}
-
-.btn-group > .btn:first-child {
- margin-left: 0
-}
-
-.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
- border-bottom-right-radius: 0;
- border-top-right-radius: 0
-}
-
-.btn-group > .btn:last-child:not(:first-child), .btn-group > .dropdown-toggle:not(:first-child) {
- border-bottom-left-radius: 0;
- border-top-left-radius: 0
-}
-
-.btn-group > .btn-group {
- float: left
-}
-
-.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
- border-radius: 0
-}
-
-.btn-group > .btn-group:first-child > .btn:last-child, .btn-group > .btn-group:first-child > .dropdown-toggle {
- border-bottom-right-radius: 0;
- border-top-right-radius: 0
-}
-
-.btn-group > .btn-group:last-child > .btn:first-child {
- border-bottom-left-radius: 0;
- border-top-left-radius: 0
-}
-
-.btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle {
- outline: 0
-}
-
-.btn-group-xs > .btn {
- padding: 5px 10px;
- font-size: 12px;
- line-height: 1.5;
- border-radius: 3px;
- padding: 1px 5px
-}
-
-.btn-group-sm > .btn {
- padding: 5px 10px;
- font-size: 12px;
- line-height: 1.5;
- border-radius: 3px
-}
-
-.btn-group-lg > .btn {
- padding: 10px 16px;
- font-size: 18px;
- line-height: 1.33;
- border-radius: 6px
-}
-
-.btn-group > .btn + .dropdown-toggle {
- padding-left: 8px;
- padding-right: 8px
-}
-
-.btn-group > .btn-lg + .dropdown-toggle {
- padding-left: 12px;
- padding-right: 12px
-}
-
-.btn-group.open .dropdown-toggle {
- background: #f2f2f2
-}
-
-.btn .caret {
- margin-left: 0
-}
-
-.btn-lg .caret {
- border-width: 5px 5px 0;
- border-bottom-width: 0
-}
-
-.dropup .btn-lg .caret {
- border-width: 0 5px 5px
-}
-
-.btn-group-vertical > .btn, .btn-group-vertical > .btn-group {
- display: block;
- float: none;
- width: 100%;
- max-width: 100%
-}
-
-.btn-group-vertical > .btn-group:before, .btn-group-vertical > .btn-group:after {
- content: " ";
- display: table
-}
-
-.btn-group-vertical > .btn-group:after {
- clear: both
-}
-
-.btn-group-vertical > .btn-group > .btn {
- float: none
-}
-
-.btn-group-vertical > .btn + .btn, .btn-group-vertical > .btn + .btn-group, .btn-group-vertical > .btn-group + .btn, .btn-group-vertical > .btn-group + .btn-group {
- margin-top: -1px;
- margin-left: 0
-}
-
-.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
- border-radius: 0
-}
-
-.btn-group-vertical > .btn:first-child:not(:last-child) {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 0
-}
-
-.btn-group-vertical > .btn:last-child:not(:first-child) {
- border-bottom-left-radius: 0;
- border-top-right-radius: 0;
- border-top-left-radius: 0
-}
-
-.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
- border-radius: 0
-}
-
-.btn-group-vertical > .btn-group:first-child > .btn:last-child, .btn-group-vertical > .btn-group:first-child > .dropdown-toggle {
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 0
-}
-
-.btn-group-vertical > .btn-group:last-child > .btn:first-child {
- border-top-right-radius: 0;
- border-top-left-radius: 0
-}
-
-.btn-group-justified {
- display: table;
- width: 100%;
- table-layout: fixed;
- border-collapse: separate
-}
-
-.btn-group-justified .btn {
- float: none;
- display: table-cell;
- width: 1%
-}
-
-[data-toggle="buttons"] > .btn > input[type="radio"], [data-toggle="buttons"] > .btn > input[type="checkbox"] {
- display: none
-}
-
-.caret {
- display: inline-block;
- width: 0;
- height: 0;
- margin-left: 2px;
- vertical-align: middle;
- border-top: 4px solid #000;
- border-right: 4px solid transparent;
- border-left: 4px solid transparent;
- border-bottom: 0 dotted;
- content: ""
-}
-
-.dropdown {
- position: relative
-}
-
-.dropdown-toggle:focus {
- outline: 0
-}
-
-.dropdown-menu {
- position: absolute;
- top: 100%;
- left: 0;
- z-index: 1000;
- display: none;
- float: left;
- min-width: 160px;
- padding: 5px 0;
- margin: 2px 0 0;
- list-style: none;
- font-size: 14px;
- background-color: #fff;
- border: 1px solid #ccc;
- border: 1px solid rgba(0, 0, 0, 0.15);
- border-radius: 0;
- background-clip: padding-box
-}
-
-.dropdown-menu.pull-right {
- right: 0;
- left: auto
-}
-
-.dropdown-menu .divider {
- height: 1px;
- margin: 9px 0;
- overflow: hidden;
- background-color: #e5e5e5
-}
-
-.dropdown-menu > li > a {
- font-size: 14px;
- text-decoration: none;
- display: block;
- padding: 5px 20px;
- clear: both;
- font-weight: normal;
- line-height: 1.428571429;
- color: #333;
- white-space: nowrap
-}
-
-.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus {
- text-decoration: none;
- color: #fff;
- background-color: #428bca
-}
-
-.dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus {
- color: #fff;
- text-decoration: none;
- outline: 0;
- background-color: #428bca
-}
-
-.dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus {
- color: #999
-}
-
-.dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus {
- text-decoration: none;
- background-color: transparent;
- background-image: none;
- filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
- cursor: not-allowed
-}
-
-.open > .dropdown-menu {
- display: block
-}
-
-.open > a {
- outline: 0
-}
-
-.dropdown-header {
- display: block;
- padding: 3px 20px;
- font-size: 12px;
- line-height: 1.428571429;
- color: #999
-}
-
-.dropdown-backdrop {
- position: fixed;
- left: 0;
- right: 0;
- bottom: 0;
- top: 0;
- z-index: 990
-}
-
-.pull-right > .dropdown-menu {
- right: 0;
- left: auto
-}
-
-.dropup .caret, .navbar-fixed-bottom .dropdown .caret {
- border-top: 0 dotted;
- border-bottom: 4px solid #000;
- content: ""
-}
-
-.dropup .dropdown-menu, .navbar-fixed-bottom .dropdown .dropdown-menu {
- top: auto;
- bottom: 100%;
- margin-bottom: 1px
-}
-
-@media (min-width: 768px) {
- .navbar-right .dropdown-menu {
- right: 0;
- left: auto
- }
-}
-
-body, html {
- font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
- margin: 0;
- background: #ededed;
- color: #343437;
- line-height: 2em;
- font-weight: 300;
- font-size: .95em
-}
-
-h1 {
- font-size: 2.5em;
- margin: .8em 0
-}
-
-body.center {
- padding: 0 30px;
- background: #FFF;
- font-size: 1em
-}
-
-ul li {
- list-style-type: disc
-}
-
-a {
- color: #4290ad;
- text-decoration: none;
- font-weight: normal
-}
-
-a:hover {
- text-decoration: underline
-}
-
-h1, h2, h3 {
- font-weight: 300;
- line-height: 1.2em
-}
-
-.topNav, .bottomNav {
- background: #f2f2f2;
- margin: 0 -30px;
- margin-bottom: 20px
-}
-
-.topNav:before, .bottomNav:before, .topNav:after, .bottomNav:after {
- content: " ";
- display: table
-}
-
-.topNav:after, .bottomNav:after {
- clear: both
-}
-
-.topNav ul.navList, .bottomNav ul.navList {
- padding: 10px 20px;
- margin: 0;
- list-style-type: none
-}
-
-.topNav ul.navList li, .bottomNav ul.navList li {
- display: inline;
- padding: 0 10px
-}
-
-.topNav ul.navList li.navBarCell1Rev, .bottomNav ul.navList li.navBarCell1Rev {
- font-weight: bold
-}
-
-.bottomNav {
- margin-top: 30px;
- margin-bottom: 0
-}
-
-.aboutLanguage {
- color: #BBB;
- background: white;
- text-align: center;
- padding: 20px 0
-}
-
-.subNav {
- padding-bottom: 10px;
- margin-bottom: 10px;
- border-bottom: 1px solid #EEE
-}
-
-.subNav:before, .subNav:after {
- content: " ";
- display: table
-}
-
-.subNav:after {
- clear: both
-}
-
-.subNav div:before, .subNav div:after {
- content: " ";
- display: table
-}
-
-.subNav div:after {
- clear: both
-}
-
-.subNav ul.navList, .subNav ul {
- font-size: .9em;
- margin: 0;
- padding: 00;
- float: left;
- list-style-type: none
-}
-
-.subNav ul.navList li, .subNav ul li {
- padding: 0 5px;
- display: inline
-}
-
-table.overviewSummary tr {
- border-left: 1px solid #EEE;
- border-right: 1px solid #EEE;
-}
-
-table.overviewSummary tr:first-child {
- border-top: 1px solid #EEE;
- border-bottom: 1px solid #EEE;
-}
-
-table.overviewSummary tr:last-child {
- border-bottom: 1px solid #EEE;
-}
-
-table.overviewSummary, .contentContainer ul li table {
- width: 100%;
- margin: 20px 0
-}
-
-table.overviewSummary caption, .contentContainer ul li table caption {
- text-align: left;
- font-weight: 100;
- font-size: 1em;
- float: left;
- padding: 0 10px;
- margin-top: 10px;
- background: #db4800;
- color: white
-}
-
-table.overviewSummary tr th, .contentContainer ul li table tr th {
- padding: 5px 10px;
- font-weight: bold;
- font-size: 1em;
- text-align: left;
- white-space: nowrap;
- background: #f2f2f2
-}
-
-table.overviewSummary tr td, .contentContainer ul li table tr td {
- vertical-align: top;
- font-size: .9em;
- padding: 5px 10px
-}
-
-table.overviewSummary tbody > tr:nth-child(odd) > td, .contentContainer ul li table tbody > tr:nth-child(odd) > td {
- background-color: #f9f9f9
-}
-
-body.left {
- padding-top: 10px
-}
-
-body.left h1, body.left h2 {
- display: inline;
- text-align: left;
- font-weight: 100;
- font-size: 1em;
- margin: 0 10px;
- padding: 3px 10px;
- margin-top: 10px;
- background: #db4800;
- color: white;
- line-height: 40px
-}
-
-body.left .indexHeader {
- margin: 0;
- padding: 0 15px;
- font-size: .9em
-}
-
-body.left ul {
- list-style-type: none;
- margin: 0;
- padding: 0
-}
-
-body.left ul li {
- margin: 0;
- padding: 0
-}
-
-body.left ul li a {
- display: block;
- padding: 0 15px;
- text-decoration: none
-}
-
-body.left ul li a:hover {
- text-decoration: underline
-}
-
-.contentContainer .header ul, .contentContainer ul.blockList {
- padding: 0
-}
-
-.contentContainer .header ul > li, .contentContainer ul.blockList > li {
- list-style-type: none
-}
-
-.contentContainer ul.inheritance {
- margin-left: 0;
- padding-left: 0
-}
-
-.contentContainer ul.inheritance li {
- list-style-type: none
-}
-
-.contentContainer ul.inheritance ul.inheritance {
- padding-left: 20px
-}
-
-.contentContainer hr {
- border: 0 none;
- border-top: 1px solid #EEE;
- margin-top: 30px;
- margin-botom: 0
-}
-
-ul.blockList ul.blockList, ul.blockList ul.blockListLast {
- border: 1px solid #EEE;
- margin: 20px 0;
- padding: 0 20px
-}
-
-ul.blockList ul.blockList h4, ul.blockList ul.blockListLast h4, ul.blockList ul.blockList h3, ul.blockList ul.blockListLast h3 {
- font-size: 1em;
- font-weight: bold;
- line-height: 2em;
- text-indent: 10px;
- border-bottom: 1px solid #EEE;
- margin: 0 -20px;
- padding: 5px 0;
- background: #f2f2f2
-}
-
-ul.blockList ul.blockList li, ul.blockList ul.blockListLast li {
- list-style-type: none
-}
-
-ul.horizontal {
- list-style-type: none;
- padding: 0;
- margin: 0;
- font-size: .9em
-}
-
-ul.horizontal li {
- display: inline
-}
-
-span.strong {
- font-weight: bold
-}
-
-a span.strong {
- font-weight: normal
-}
http://git-wip-us.apache.org/repos/asf/groovy/blob/c8e8c7b6/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/template.allclasses-frame.html
----------------------------------------------------------------------
diff --git a/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/template.allclasses-frame.html b/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/template.allclasses-frame.html
deleted file mode 100644
index 6710dbb..0000000
--- a/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/template.allclasses-frame.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
- <title>All Classes ($title)</title>
- <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
-</head>
-
-<body class="left">
-
-<div class="indexContainer">
- <h2 title="All Classes">All Classes</h2>
- <ul>
- <% docTypes.each { docType -> %>
- <li><a href="${docType.fullyQualifiedClassName.replaceAll(/\./, '/')}.html" title="${docType.interface ? 'interface' : 'class'} in ${docType.packageName}" target="classFrame">
- <% if (docType.interface) { %>
- <i>${docType.simpleClassName}</i>
- <% } else { %>
- ${docType.simpleClassName}
- <% } %>
- </a></li>
- <% } %>
- </ul>
-</div>
-
-</body>
-</html>
http://git-wip-us.apache.org/repos/asf/groovy/blob/c8e8c7b6/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/template.class.html
----------------------------------------------------------------------
diff --git a/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/template.class.html b/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/template.class.html
deleted file mode 100644
index 4b13f72..0000000
--- a/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/template.class.html
+++ /dev/null
@@ -1,196 +0,0 @@
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
- <title>${docType.simpleClassName} ($title)</title>
- <%
- int dotCount = docType.packageName.count('.')
- String pathPref = '../' * (dotCount + 1)
- %>
- <link rel="stylesheet" type="text/css" href="${pathPref}stylesheet.css" title="Style">
- <script type="text/javascript">
- function windowTitle() {
- parent.document.title = document.title;
- }
- </script>
-</head>
-
-<body class="center" onload="windowTitle();">
-
- <!-- ========== START OF NAVBAR ========== -->
- <a name="navbar_top"><!-- --></a>
-
- <div class="topNav">
- <ul class="navList" title="Navigation">
- <li><a href="${pathPref}overview-summary.html">Overview</a></li>
- <li><a href="package-summary.html">Package</a></li>
- <li class="navBarCell1Rev">Class</li>
- <li><a href="${pathPref}index-all.html">Index</a></li>
- </ul>
- </div>
-
- <!-- =========== END OF NAVBAR =========== -->
-
- <!-- ======== START OF class DATA ======== -->
-
- <div class="header">
- <div class="subTitle">Package: <strong>${docType.packageName}</strong></div>
- <h2>${docType.interface ? 'Interface' : 'Class'} ${docType.simpleClassName}</h2>
- </div>
-
- <div class="contentContainer">
-
- <!-- ========== METHOD SUMMARY =========== -->
-
- <a name="method_summary"><!-- --></a>
-
- <div class="summary">
- <ul class="blockList">
- <li class="blockList">
- <ul class="blockList">
- <li class="blockList">
- <h3>Methods Summary</h3>
- <table border="0" cellpadding="3" cellspacing="0" class="overviewSummary">
- <caption><span>Methods</span><span class="tabEnd"> </span></caption>
- <tbody>
- <tr>
- <th>Return type</th>
- <th>Name and parameters</th>
- </tr>
- <% docType.docMethods.eachWithIndex { docMethod, i -> %>
- <tr class="${i % 2 == 0 ? 'altColor' : 'rawColor'}">
- <td align="right" valign="top" width="1%">
- <span> <code>${docMethod.isStatic() ? 'static ' : ''}${docMethod.returnTypeDocUrl}</code></span>
- </td>
- <td>
- <code><strong><a href="#${docMethod.name}(${docMethod.parametersSignature})">${docMethod.name}</a></strong>(${docMethod.parametersDocUrl})</code>
- <br>
- ${docMethod.shortComment}
- </td>
- </tr>
- <% } %>
- </tbody>
- </table>
- </li>
- <% docType.inheritedMethods.each { inhDocType, inhDocMethods -> %>
- <ul class="blockList">
- <li class="blockList">
- <h4>Methods inherited from ${inhDocType.interface ? 'interface' : 'class'} ${inhDocType.packageName}.${docType.linkAnchor(inhDocType)}</h4>
- <p>
- <%= inhDocMethods.findAll { !it.static }.collect { docMethod ->
- """<code><strong><a href="${pathPref}${inhDocType.fullyQualifiedClassName.replace('.', '/')}.html#${docMethod.name}(${docMethod.parametersSignature})">${docMethod.name}</a></strong></code>"""
- }.join(", ") %>
- </p>
- </li>
- </ul>
- <% } %>
- </ul>
- </li>
- </ul>
- </div>
-
- <!-- ============ METHOD DETAIL ========== -->
-
- <a name="method_detail"><!-- --></a>
-
-
- <div class="details">
- <ul class="blockList">
- <li class="blockList">
- <ul class="blockList">
- <li class="blockList">
- <h3>Methods Detail</h3>
-
- <% docType.docMethods.eachWithIndex { docMethod, i -> %>
- <a name="${docMethod.name}(${docMethod.parametersSignature})"><!-- --></a>
-
- <ul class="blockListLast">
- <li class="blockList">
-
- <h4>public ${docMethod.isStatic() ? 'static ' : ''}${docMethod.returnTypeDocUrl} <b>${docMethod.name}</b>(${docMethod.parametersDocUrl})</h4>
-
- <p>${docMethod.comment}</p>
-
- <% if (docMethod.parametersSignature) { %>
- <dl>
- <dt><b>Parameters:</b></dt>
- <% docMethod.parameterComments.each { name, comment -> %>
- <dd><code>${name}</code> - ${comment}</dd>
- <% } %>
- </dl>
- <%
- } %>
-
- <% if (docMethod.returnComment) { %>
- <dl>
- <dt><b>Returns:</b></dt>
- <dd>${docMethod.returnComment}</dd>
- </dl>
- <% } %>
-
- <%if (docMethod.sinceComment) { %>
- <dl>
- <dt><b>Since:</b></dt>
- <dd>${docMethod.sinceComment}</dd>
- </dl>
- <%}%>
-
- <% if (docMethod.seeComments) { %>
- <dl>
- <dt><b>See Also:</b></dt>
- <% docMethod.seeComments.each { %>
- <dd>${it}</dd>
- <% }%>
- </dl>
- <% } %>
-
- </li>
- </ul>
-
- <% } %>
-
- </li>
- </ul>
- </li>
- </ul>
- </div>
-
- </div>
-
- <!-- ========= END OF class DATA ========= -->
-
- <!-- ======= START OF BOTTOM NAVBAR ====== -->
- <a name="navbar_bottom"><!-- --></a>
- <a href="#skip-navbar_bottom" title="Skip navigation links"></a>
-
- <div class="topNav">
- <ul class="navList" title="Navigation">
- <li><a href="${pathPref}overview-summary.html">Overview</a></li>
- <li><a href="package-summary.html">Package</a></li>
- <li class="navBarCell1Rev">Class</li>
- <li><a href="${pathPref}index-all.html">Index</a></li>
- </ul>
- </div>
- <!-- =========== END OF NAVBAR =========== -->
-
-</body>
-</html>
http://git-wip-us.apache.org/repos/asf/groovy/blob/c8e8c7b6/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/template.index-all.html
----------------------------------------------------------------------
diff --git a/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/template.index-all.html b/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/template.index-all.html
deleted file mode 100644
index 31c5c4b..0000000
--- a/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/template.index-all.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-<!DOCTYPE HTML PUBLIC "-//W3C//Dtd HTML 4.0 transitional//EN""http://www.w3.org/tr/REC-html40/loose.dtd">
-<html>
- <head>
- <title>Index ($title)</title>
- <link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
- <script type="text/javascript">
- function windowTitle() {
- parent.document.title = document.title;
- }
- </script>
- </head>
- <body class="center" onload="windowTitle();">
-
- <!-- ========== START OF NAVBAR ========== -->
- <a name="navbar_top"><!-- --></a>
-
- <div class="topNav">
- <ul class="navList" title="Navigation">
- <li><a href="overview-summary.html">Overview</a></li>
- <li>Package</li>
- <li>Class</li>
- <li class="navBarCell1Rev">Index</li>
- </ul>
- </div>
- <!-- =========== END OF NAVBAR =========== -->
- <!--
- <a HREF="#_A_">A</a>
- -->
- <% indexMap.each { it -> %>
- <a HREF="#_${it.key}_">${it.key}</a>
- <% } %>
- <hr>
-
- <% indexMap.each { indexMapEntry -> %>
- <a name="_${indexMapEntry.key}_"><!-- --></a>
- <h2><b>${indexMapEntry.key}</b></h2>
- <dl>
- <% indexMapEntry.value.each { it -> %>
- <% final String classUrl = it.docType.fullyQualifiedClassName.replaceAll('\\.','/') + '.html' %>
- <% if (it.docMethod) { %>
- <% final String methodUrl = classUrl + '#' + it.docMethod.name + '(' + it.docMethod.parametersSignature + ')' %>
- <dt><a href="${methodUrl}"><b>${it.docMethod.name}(${it.docMethod.parametersSignature})</b></a> - Method in ${it.docType.interface ? 'interface' : 'class'} ${it.docType.packageName}.<a href="${classUrl}">${it.docType.simpleClassName}</a></dt>
- <dd> ${it.docMethod.shortComment}</dd>
- <% } else { %>
- <dt><a href="${classUrl}"><b>${it.docType.simpleClassName}</b></a> - ${it.docType.interface ? 'Interface' : 'Class'} in ${it.docType.packageName}</dt>
- <dd> ${it.docType.shortComment}</dd>
- <% } %>
-
- <% } %>
- </dl>
- <% } %>
-
- <!--
- <a HREF="#_A_">A</a>
- -->
- <% indexMap.each { it -> %>
- <a href="#_${it.key}_">${it.key}</a>
- <% } %>
-
- <!-- ========== START OF NAVBAR ========== -->
- <a name="navbar_bottom"><!-- --></a>
- <div class="topNav">
- <ul class="navList" title="Navigation">
- <li><a href="overview-summary.html">Overview</a></li>
- <li>Package</li>
- <li>Class</li>
- <li class="navBarCell1Rev">Index</li>
- </ul>
- </div>
- <!-- =========== END OF NAVBAR =========== -->
-
- </body>
-</html>
http://git-wip-us.apache.org/repos/asf/groovy/blob/c8e8c7b6/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/template.overview-frame.html
----------------------------------------------------------------------
diff --git a/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/template.overview-frame.html b/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/template.overview-frame.html
deleted file mode 100644
index 2504982..0000000
--- a/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/template.overview-frame.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
- <title>Overview (${title})</title>
- <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
-</head>
-
-<body class="left">
-
-<div class="indexHeader">
- <a href="allclasses-frame.html" target="packageFrame">All Classes</a>
-</div>
-
-<div class="indexContainer">
- <h2 title="Packages">Packages</h2>
- <ul>
- <li><a href="primitive-types/package-frame.html" title="Primitive types" target="packageFrame">Primitive types</a></li>
- <% packages.grep().each { %>
- <li><a href="${it.name.replaceAll('\\.', '/')}/package-frame.html" title="${it.name}" target="packageFrame">${it.name}</a></li>
- <% } %>
- </ul>
-</div>
-
-</body>
-</html>
http://git-wip-us.apache.org/repos/asf/groovy/blob/c8e8c7b6/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/template.package-frame.html
----------------------------------------------------------------------
diff --git a/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/template.package-frame.html b/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/template.package-frame.html
deleted file mode 100644
index 92a6b75..0000000
--- a/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/template.package-frame.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
- <title>${docPackage.name} ($title)</title>
- <%
- int dotCount = docPackage.name.count('.')
- String pathPref = '../' * (dotCount + 1)
- %>
- <link rel="stylesheet" type="text/css" href="${pathPref}stylesheet.css" title="Style">
-</head>
-
-<body class="left">
-
-<div class="indexHeader">
- <b><a href="package-summary.html" target="classFrame">${docPackage.name}</a></b>
-</div>
-
-<% if (docPackage.docTypes.any { it.interface }) { %>
-<div class="indexContainer">
- <h2 title="Interfaces">Interfaces</h2>
- <ul>
- <% docPackage.docTypes.findAll { it.interface }.each { docType -> %>
- <li><a href="${docType.simpleClassName}.html" title="interface in ${docType.packageName}" target="classFrame"><i>${docType.simpleClassName}</i></a></li>
- <% } %>
- </ul>
-</div>
-<% } %>
-
-<% if (docPackage.docTypes.any { !it.interface }) { %>
-<div class="indexContainer">
- <h2 title="Classes">Classes</h2>
- <ul>
- <% docPackage.docTypes.findAll { !it.interface }.each { docType -> %>
- <li><a href="${docType.simpleClassName}.html" title="class in ${docType.packageName}" target="classFrame">${docType.simpleClassName}</a></li>
- <% } %>
- </ul>
-</div>
-<% } %>
-
-</body>
-</html>
http://git-wip-us.apache.org/repos/asf/groovy/blob/c8e8c7b6/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/template.package-summary.html
----------------------------------------------------------------------
diff --git a/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/template.package-summary.html b/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/template.package-summary.html
deleted file mode 100644
index 0d922f0..0000000
--- a/subprojects/groovy-docgenerator/src/main/resources/org/codehaus/groovy/tools/template.package-summary.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
- <title>${docPackage.name} ($title)</title>
- <%
- int dotCount = docPackage.name.count('.')
- String pathPref = '../' * (dotCount + 1)
- %>
- <link rel="stylesheet" type="text/css" href="${pathPref}stylesheet.css" title="Style">
- <script type="text/javascript">
- function windowTitle() {
- parent.document.title = document.title;
- }
- </script>
-</head>
-
-<body class="center" onload="windowTitle();">
-
-<!-- ========== START OF NAVBAR ========== -->
-<a name="navbar_top"><!-- --></a>
-
-<div class="topNav">
- <ul class="navList" title="Navigation">
- <li><a href="${pathPref}overview-summary.html">Overview</a></li>
- <li class="navBarCell1Rev">Package</li>
- <li>Class</li>
- <li><a href="${pathPref}index-all.html">Index</a></li>
- </ul>
-</div>
-<!-- =========== END OF NAVBAR =========== -->
-
-<div class="header">
- <h1>Package ${docPackage.name}</h1>
-</div>
-
-<% if (docPackage.docTypes.any { it.interface }) { %>
-<div class="indexContainer">
- <h2 title="Interfaces">Interfaces</h2>
- <ul>
- <% docPackage.docTypes.findAll { it.interface }.each { docType -> %>
- <li><a href="${docType.simpleClassName}.html" title="interface in ${docType.packageName}" target="classFrame"><i>${docType.simpleClassName}</i></a></li>
- <% } %>
- </ul>
-</div>
-<% } %>
-
-<% if (docPackage.docTypes.any { !it.interface }) { %>
-<div class="indexContainer">
- <h2 title="Classes">Classes</h2>
- <ul>
- <% docPackage.docTypes.findAll { !it.interface }.each { docType -> %>
- <li><a href="${docType.simpleClassName}.html" title="class in ${docType.packageName}" target="classFrame">${docType.simpleClassName}</a></li>
- <% } %>
- </ul>
-</div>
-<% } %>
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<a name="navbar_bottom"><!-- --></a>
-<a href="#skip-navbar_bottom" title="Skip navigation links"></a>
-
-<div class="topNav">
- <ul class="navList" title="Navigation">
- <li><a href="${pathPref}overview-summary.html">Overview</a></li>
- <li class="navBarCell1Rev">Package</li>
- <li>Class</li>
- <li><a href="${pathPref}index-all.html">Index</a></li>
- </ul>
-</div>
-<!-- =========== END OF NAVBAR =========== -->
-
-</body>
-</html>