From dad4606eebd6e1ad7c01e35ea9d189e3245cab6e Mon Sep 17 00:00:00 2001 From: Elias N Vasylenko Date: Wed, 28 Oct 2015 12:40:54 +0000 Subject: [PATCH] fixed bnd plugin and scripting project, renamed some bundles... --- cnf/build.bnd | 5 +- cnf/local/index.xml.sha | 2 +- uk.co.strangeskies.modabi.benchmarks/bnd.bnd | 2 +- .../schemata/BenchmarkSchema.xml | 1 + .../modabi/benchmark/BenchmarkRunner.java | 3 - uk.co.strangeskies.modabi.bnd/bnd.bnd | 29 +- uk.co.strangeskies.modabi.bnd/core.bnd | 30 - .../modabi/bnd/xml/ModabiXmlRegistration.java | 2 - uk.co.strangeskies.modabi.bnd/xml.bnd | 8 +- .../uk/co/strangeskies/modabi/Bindings.java | 9 +- .../uk/co/strangeskies/modabi/DataTypes.java | 4 +- .../strangeskies/modabi/GeneratedSchema.java | 12 + .../src/uk/co/strangeskies/modabi/Models.java | 4 +- .../modabi/QualifiedNamedSet.java | 4 +- .../modabi/impl/SchemaManagerImpl.java | 4 +- .../modabi/impl/schema/ChoiceNodeImpl.java | 27 +- uk.co.strangeskies.modabi.core.test/bnd.bnd | 8 +- .../modabi/core/test/SchemaTest.java | 11 +- ...co.strangeskies.modabi.core.test-1.0.0.xml | 1885 +++++++++++++++++ .../schema/ScriptingSchema.xml | 24 - .../.classpath | 0 .../.project | 2 +- ...springsource.ide.eclipse.gradle.core.prefs | 0 .../.settings/org.eclipse.jdt.core.prefs | 0 .../bnd.bnd | 0 .../modabi/io/json/impl/JsonSource.java | 0 .../modabi/io/json/impl/JsonTarget.java | 0 .../modabi/io/json/impl/packageinfo | 0 .../modabi/io/json/test/JsonTest.java | 0 .../.classpath | 0 .../.project | 2 +- ...springsource.ide.eclipse.gradle.core.prefs | 0 .../.settings/org.eclipse.jdt.core.prefs | 0 .../bnd.bnd | 0 .../modabi/io/xml/NamespaceStack.java | 0 .../modabi/io/xml/XmlInterface.java | 0 .../strangeskies/modabi/io/xml/XmlSource.java | 0 .../strangeskies/modabi/io/xml/XmlTarget.java | 0 .../co/strangeskies/modabi/io/xml/packageinfo | 0 .../modabi/io/xml/test/XmlTest.java | 0 .../.classpath | 0 .../.project | 2 +- ...springsource.ide.eclipse.gradle.core.prefs | 0 .../.settings/org.eclipse.jdt.core.prefs | 0 .../bnd.bnd | 0 uk.co.strangeskies.modabi.run/bnd.bnd | 2 +- .../bnd.bnd | 26 - .../schemata/ScriptingSchema.xml | 20 - .../.classpath | 0 .../.project | 2 +- ...springsource.ide.eclipse.gradle.core.prefs | 0 .../.settings/org.eclipse.jdt.core.prefs | 0 uk.co.strangeskies.modabi.scripting/bnd.bnd | 25 + .../schemata/ScriptingSchema.xml | 28 + .../modabi/fx/ModabiFXTreeView.java | 23 + .../strangeskies/modabi/fx/package-info.java | 20 + 56 files changed, 2078 insertions(+), 148 deletions(-) delete mode 100644 uk.co.strangeskies.modabi.bnd/core.bnd delete mode 100644 uk.co.strangeskies.modabi.fx/schema/ScriptingSchema.xml rename {uk.co.strangeskies.modabi.io.json.provider => uk.co.strangeskies.modabi.io.json}/.classpath (100%) rename {uk.co.strangeskies.modabi.io.xml.provider => uk.co.strangeskies.modabi.io.json}/.project (89%) rename {uk.co.strangeskies.modabi.io.json.provider => uk.co.strangeskies.modabi.io.json}/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs (100%) rename {uk.co.strangeskies.modabi.io.json.provider => uk.co.strangeskies.modabi.io.json}/.settings/org.eclipse.jdt.core.prefs (100%) rename {uk.co.strangeskies.modabi.io.json.provider => uk.co.strangeskies.modabi.io.json}/bnd.bnd (100%) rename {uk.co.strangeskies.modabi.io.json.provider => uk.co.strangeskies.modabi.io.json}/src/uk/co/strangeskies/modabi/io/json/impl/JsonSource.java (100%) rename {uk.co.strangeskies.modabi.io.json.provider => uk.co.strangeskies.modabi.io.json}/src/uk/co/strangeskies/modabi/io/json/impl/JsonTarget.java (100%) rename {uk.co.strangeskies.modabi.io.json.provider => uk.co.strangeskies.modabi.io.json}/src/uk/co/strangeskies/modabi/io/json/impl/packageinfo (100%) rename {uk.co.strangeskies.modabi.io.json.provider => uk.co.strangeskies.modabi.io.json}/test/uk/co/strangeskies/modabi/io/json/test/JsonTest.java (100%) rename {uk.co.strangeskies.modabi.io.xml.provider => uk.co.strangeskies.modabi.io.xml}/.classpath (100%) rename {uk.co.strangeskies.modabi.io.yaml.provider => uk.co.strangeskies.modabi.io.xml}/.project (89%) rename {uk.co.strangeskies.modabi.io.xml.provider => uk.co.strangeskies.modabi.io.xml}/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs (100%) rename {uk.co.strangeskies.modabi.io.xml.provider => uk.co.strangeskies.modabi.io.xml}/.settings/org.eclipse.jdt.core.prefs (100%) rename {uk.co.strangeskies.modabi.io.xml.provider => uk.co.strangeskies.modabi.io.xml}/bnd.bnd (100%) rename {uk.co.strangeskies.modabi.io.xml.provider => uk.co.strangeskies.modabi.io.xml}/src/uk/co/strangeskies/modabi/io/xml/NamespaceStack.java (100%) rename {uk.co.strangeskies.modabi.io.xml.provider => uk.co.strangeskies.modabi.io.xml}/src/uk/co/strangeskies/modabi/io/xml/XmlInterface.java (100%) rename {uk.co.strangeskies.modabi.io.xml.provider => uk.co.strangeskies.modabi.io.xml}/src/uk/co/strangeskies/modabi/io/xml/XmlSource.java (100%) rename {uk.co.strangeskies.modabi.io.xml.provider => uk.co.strangeskies.modabi.io.xml}/src/uk/co/strangeskies/modabi/io/xml/XmlTarget.java (100%) rename {uk.co.strangeskies.modabi.io.xml.provider => uk.co.strangeskies.modabi.io.xml}/src/uk/co/strangeskies/modabi/io/xml/packageinfo (100%) rename {uk.co.strangeskies.modabi.io.xml.provider => uk.co.strangeskies.modabi.io.xml}/test/uk/co/strangeskies/modabi/io/xml/test/XmlTest.java (100%) rename {uk.co.strangeskies.modabi.io.yaml.provider => uk.co.strangeskies.modabi.io.yaml}/.classpath (100%) rename {uk.co.strangeskies.modabi.io.json.provider => uk.co.strangeskies.modabi.io.yaml}/.project (89%) rename {uk.co.strangeskies.modabi.io.yaml.provider => uk.co.strangeskies.modabi.io.yaml}/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs (100%) rename {uk.co.strangeskies.modabi.io.yaml.provider => uk.co.strangeskies.modabi.io.yaml}/.settings/org.eclipse.jdt.core.prefs (100%) rename {uk.co.strangeskies.modabi.io.yaml.provider => uk.co.strangeskies.modabi.io.yaml}/bnd.bnd (100%) delete mode 100644 uk.co.strangeskies.modabi.scripting.provider/bnd.bnd delete mode 100644 uk.co.strangeskies.modabi.scripting.provider/schemata/ScriptingSchema.xml rename {uk.co.strangeskies.modabi.scripting.provider => uk.co.strangeskies.modabi.scripting}/.classpath (100%) rename {uk.co.strangeskies.modabi.scripting.provider => uk.co.strangeskies.modabi.scripting}/.project (89%) rename {uk.co.strangeskies.modabi.scripting.provider => uk.co.strangeskies.modabi.scripting}/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs (100%) rename {uk.co.strangeskies.modabi.scripting.provider => uk.co.strangeskies.modabi.scripting}/.settings/org.eclipse.jdt.core.prefs (100%) create mode 100644 uk.co.strangeskies.modabi.scripting/bnd.bnd create mode 100644 uk.co.strangeskies.modabi.scripting/schemata/ScriptingSchema.xml create mode 100644 uk.co.strangeskies.modabi.scripting/src/uk/co/strangeskies/modabi/fx/ModabiFXTreeView.java create mode 100644 uk.co.strangeskies.modabi.scripting/src/uk/co/strangeskies/modabi/fx/package-info.java diff --git a/cnf/build.bnd b/cnf/build.bnd index 744e1b77..bccac78f 100644 --- a/cnf/build.bnd +++ b/cnf/build.bnd @@ -35,11 +35,10 @@ Bundle-Version: ${modabi-version}.${tstamp} # -baseline: * -releaserepo: Release -modabi-bnd-plugin: ${workspace}/uk.co.strangeskies.modabi.bnd/generated/uk.co.strangeskies.modabi.bnd.${1}.jar +modabi-bnd-plugin: ${build}/release/uk.co.strangeskies.modabi.bnd.${1}/uk.co.strangeskies.modabi.bnd.${1}-${modabi-version}.jar pluginpath.modabi: \ - ${modabi-bnd-plugin;core},\ - ${modabi-bnd-plugin;xml},\ + ${modabi-bnd-plugin;xml} -pluginpath.base: \ ${build}/cache/biz.aQute.repository.aether.jar; \ diff --git a/cnf/local/index.xml.sha b/cnf/local/index.xml.sha index 001203e7..308d47a0 100644 --- a/cnf/local/index.xml.sha +++ b/cnf/local/index.xml.sha @@ -1 +1 @@ -8de8e8866152096f0c4ea5ddd6ed1d633b4d1a6edfbd823245cb57f6639732fd \ No newline at end of file +00d32998f75fb42424a40b7de9e81e4dc9be2ca6a9fc3f2d3bec406919d62140 \ No newline at end of file diff --git a/uk.co.strangeskies.modabi.benchmarks/bnd.bnd b/uk.co.strangeskies.modabi.benchmarks/bnd.bnd index 250d97ab..cea30fd3 100644 --- a/uk.co.strangeskies.modabi.benchmarks/bnd.bnd +++ b/uk.co.strangeskies.modabi.benchmarks/bnd.bnd @@ -13,4 +13,4 @@ Bundle-Description: \ uk.co.strangeskies.modabi.core.api;version=project,\ org.apache.commons.lang3 --runvm: -XX:MaxJavaStackTraceDepth=1000000 \ No newline at end of file +-runvm: -XX:MaxJavaStackTraceDepth=1000000 diff --git a/uk.co.strangeskies.modabi.benchmarks/schemata/BenchmarkSchema.xml b/uk.co.strangeskies.modabi.benchmarks/schemata/BenchmarkSchema.xml index 0a2c9be9..4edce17d 100644 --- a/uk.co.strangeskies.modabi.benchmarks/schemata/BenchmarkSchema.xml +++ b/uk.co.strangeskies.modabi.benchmarks/schemata/BenchmarkSchema.xml @@ -1,6 +1,7 @@ + BaseSchema diff --git a/uk.co.strangeskies.modabi.benchmarks/src/uk/co/strangeskies/modabi/benchmark/BenchmarkRunner.java b/uk.co.strangeskies.modabi.benchmarks/src/uk/co/strangeskies/modabi/benchmark/BenchmarkRunner.java index 90543c07..c70ae81e 100644 --- a/uk.co.strangeskies.modabi.benchmarks/src/uk/co/strangeskies/modabi/benchmark/BenchmarkRunner.java +++ b/uk.co.strangeskies.modabi.benchmarks/src/uk/co/strangeskies/modabi/benchmark/BenchmarkRunner.java @@ -22,8 +22,6 @@ import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; -import java.util.HashMap; -import java.util.Map; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; @@ -45,7 +43,6 @@ import org.osgi.service.log.LogService; import uk.co.strangeskies.modabi.SchemaManager; -import uk.co.strangeskies.modabi.io.structured.DataInterface; import uk.co.strangeskies.utilities.ContextClassLoaderRunner; @Component diff --git a/uk.co.strangeskies.modabi.bnd/bnd.bnd b/uk.co.strangeskies.modabi.bnd/bnd.bnd index 7af3dfb8..2ac6a405 100644 --- a/uk.co.strangeskies.modabi.bnd/bnd.bnd +++ b/uk.co.strangeskies.modabi.bnd/bnd.bnd @@ -16,8 +16,33 @@ Bundle-Description: \ ${ss;reflection},\ uk.co.strangeskies.modabi.core.api;version=project,\ uk.co.strangeskies.modabi.core.provider;version=project,\ - uk.co.strangeskies.modabi.io.xml.provider;version=project,\ + uk.co.strangeskies.modabi.io.xml;version=project,\ biz.aQute.bndlib -Export-Package: uk.co.strangeskies.modabi.bnd -sub: *.bnd + +dependencies.wrapped: \ + uk.co.strangeskies.modabi,\ + uk.co.strangeskies.modabi.declarative,\ + uk.co.strangeskies.modabi.impl,\ + uk.co.strangeskies.modabi.impl.processing,\ + uk.co.strangeskies.modabi.impl.schema,\ + uk.co.strangeskies.modabi.impl.schema.building,\ + uk.co.strangeskies.modabi.impl.schema.utilities,\ + uk.co.strangeskies.modabi.io,\ + uk.co.strangeskies.modabi.io.structured,\ + uk.co.strangeskies.modabi.io.xml,\ + uk.co.strangeskies.modabi.processing,\ + uk.co.strangeskies.modabi.processing.providers,\ + uk.co.strangeskies.modabi.schema,\ + uk.co.strangeskies.modabi.schema.building,\ + uk.co.strangeskies.mathematics,\ + uk.co.strangeskies.reflection,\ + uk.co.strangeskies.utilities,\ + uk.co.strangeskies.utilities.collection.computingmap,\ + uk.co.strangeskies.utilities.collection,\ + uk.co.strangeskies.utilities.collection,\ + uk.co.strangeskies.utilities.factory,\ + uk.co.strangeskies.utilities.function,\ + uk.co.strangeskies.utilities.text,\ + uk.co.strangeskies.utilities.tuple diff --git a/uk.co.strangeskies.modabi.bnd/core.bnd b/uk.co.strangeskies.modabi.bnd/core.bnd deleted file mode 100644 index 1eab3d86..00000000 --- a/uk.co.strangeskies.modabi.bnd/core.bnd +++ /dev/null @@ -1,30 +0,0 @@ -Export-Package: \ - uk.co.strangeskies.modabi.bnd - -Private-Package: \ - uk.co.strangeskies.mathematics,\ - uk.co.strangeskies.reflection,\ - uk.co.strangeskies.utilities,\ - uk.co.strangeskies.utilities.collection,\ - uk.co.strangeskies.utilities.collection.computingmap,\ - uk.co.strangeskies.utilities.collection.decorator,\ - uk.co.strangeskies.utilities.collection.multimap,\ - uk.co.strangeskies.utilities.factory,\ - uk.co.strangeskies.utilities.function,\ - uk.co.strangeskies.utilities.function.collection,\ - uk.co.strangeskies.utilities.text,\ - uk.co.strangeskies.utilities.text.parser,\ - uk.co.strangeskies.utilities.tuple,\ - uk.co.strangeskies.modabi,\ - uk.co.strangeskies.modabi.declarative,\ - uk.co.strangeskies.modabi.impl,\ - uk.co.strangeskies.modabi.impl.processing,\ - uk.co.strangeskies.modabi.impl.schema,\ - uk.co.strangeskies.modabi.impl.schema.building,\ - uk.co.strangeskies.modabi.impl.schema.utilities,\ - uk.co.strangeskies.modabi.io,\ - uk.co.strangeskies.modabi.io.structured,\ - uk.co.strangeskies.modabi.processing,\ - uk.co.strangeskies.modabi.processing.providers,\ - uk.co.strangeskies.modabi.schema,\ - uk.co.strangeskies.modabi.schema.building \ No newline at end of file diff --git a/uk.co.strangeskies.modabi.bnd/src/uk/co/strangeskies/modabi/bnd/xml/ModabiXmlRegistration.java b/uk.co.strangeskies.modabi.bnd/src/uk/co/strangeskies/modabi/bnd/xml/ModabiXmlRegistration.java index f05e1090..0c88bf80 100644 --- a/uk.co.strangeskies.modabi.bnd/src/uk/co/strangeskies/modabi/bnd/xml/ModabiXmlRegistration.java +++ b/uk.co.strangeskies.modabi.bnd/src/uk/co/strangeskies/modabi/bnd/xml/ModabiXmlRegistration.java @@ -18,13 +18,11 @@ */ package uk.co.strangeskies.modabi.bnd.xml; -import aQute.bnd.annotation.plugin.BndPlugin; import aQute.bnd.service.AnalyzerPlugin; import uk.co.strangeskies.modabi.bnd.ModabiRegistration; import uk.co.strangeskies.modabi.impl.SchemaManagerImpl; import uk.co.strangeskies.modabi.io.xml.XmlInterface; -@BndPlugin(name = "modabi-xml") public class ModabiXmlRegistration extends ModabiRegistration implements AnalyzerPlugin { public ModabiXmlRegistration() { diff --git a/uk.co.strangeskies.modabi.bnd/xml.bnd b/uk.co.strangeskies.modabi.bnd/xml.bnd index 24d2755e..66af39d3 100644 --- a/uk.co.strangeskies.modabi.bnd/xml.bnd +++ b/uk.co.strangeskies.modabi.bnd/xml.bnd @@ -1,3 +1,9 @@ Private-Package: \ + ${dependencies.wrapped},\ uk.co.strangeskies.modabi.bnd.xml,\ - uk.co.strangeskies.modabi.io.xml + uk.co.strangeskies.modabi.bnd + +Import-Package: \ + java.net,\ + java.util,\ + * diff --git a/uk.co.strangeskies.modabi.core.api/src/uk/co/strangeskies/modabi/Bindings.java b/uk.co.strangeskies.modabi.core.api/src/uk/co/strangeskies/modabi/Bindings.java index 89092387..e79e22b0 100644 --- a/uk.co.strangeskies.modabi.core.api/src/uk/co/strangeskies/modabi/Bindings.java +++ b/uk.co.strangeskies.modabi.core.api/src/uk/co/strangeskies/modabi/Bindings.java @@ -27,8 +27,8 @@ import uk.co.strangeskies.modabi.schema.ComplexNode; import uk.co.strangeskies.modabi.schema.Model; -import uk.co.strangeskies.utilities.collection.multimap.MultiHashMap; -import uk.co.strangeskies.utilities.collection.multimap.MultiMap; +import uk.co.strangeskies.utilities.collection.MultiHashMap; +import uk.co.strangeskies.utilities.collection.MultiMap; public class Bindings { public final Models models; @@ -41,9 +41,8 @@ public Bindings() { public void add(ComplexNode element, T data) { models.addAll(element.source().baseModel()); - bindings.addToAll( - element.source().baseModel().stream().map(n -> n.effective().getName()) - .collect(Collectors.toSet()), data); + bindings.addToAll(element.source().baseModel().stream() + .map(n -> n.effective().getName()).collect(Collectors.toSet()), data); } public void add(Model model, T data) { diff --git a/uk.co.strangeskies.modabi.core.api/src/uk/co/strangeskies/modabi/DataTypes.java b/uk.co.strangeskies.modabi.core.api/src/uk/co/strangeskies/modabi/DataTypes.java index 186beec1..9fa4a57b 100644 --- a/uk.co.strangeskies.modabi.core.api/src/uk/co/strangeskies/modabi/DataTypes.java +++ b/uk.co.strangeskies.modabi.core.api/src/uk/co/strangeskies/modabi/DataTypes.java @@ -25,8 +25,8 @@ import uk.co.strangeskies.modabi.schema.DataType; import uk.co.strangeskies.modabi.schema.DataNode; -import uk.co.strangeskies.utilities.collection.multimap.MultiHashMap; -import uk.co.strangeskies.utilities.collection.multimap.MultiMap; +import uk.co.strangeskies.utilities.collection.MultiHashMap; +import uk.co.strangeskies.utilities.collection.MultiMap; public class DataTypes extends QualifiedNamedSet> { private final MultiMap, LinkedHashSet>> derivedTypes; diff --git a/uk.co.strangeskies.modabi.core.api/src/uk/co/strangeskies/modabi/GeneratedSchema.java b/uk.co.strangeskies.modabi.core.api/src/uk/co/strangeskies/modabi/GeneratedSchema.java index 1bb64988..3b8b6f19 100644 --- a/uk.co.strangeskies.modabi.core.api/src/uk/co/strangeskies/modabi/GeneratedSchema.java +++ b/uk.co.strangeskies.modabi.core.api/src/uk/co/strangeskies/modabi/GeneratedSchema.java @@ -77,6 +77,18 @@ default GeneratedSchema generateDataTypes( DataType buildDataType( Function, DataTypeConfigurator> build); + default DataType buildDataType(String name, + Function, DataTypeConfigurator> build) { + return buildDataType(m -> build.apply( + m.name(new QualifiedName(name, getQualifiedName().getNamespace())))); + } + Model buildModel( Function, ModelConfigurator> build); + + default Model buildModel(String name, + Function, ModelConfigurator> build) { + return buildModel(m -> build.apply( + m.name(new QualifiedName(name, getQualifiedName().getNamespace())))); + } } diff --git a/uk.co.strangeskies.modabi.core.api/src/uk/co/strangeskies/modabi/Models.java b/uk.co.strangeskies.modabi.core.api/src/uk/co/strangeskies/modabi/Models.java index 0c5b6b90..084a03ce 100644 --- a/uk.co.strangeskies.modabi.core.api/src/uk/co/strangeskies/modabi/Models.java +++ b/uk.co.strangeskies.modabi.core.api/src/uk/co/strangeskies/modabi/Models.java @@ -30,8 +30,8 @@ import uk.co.strangeskies.modabi.schema.Model; import uk.co.strangeskies.reflection.TypeToken; -import uk.co.strangeskies.utilities.collection.multimap.MultiHashMap; -import uk.co.strangeskies.utilities.collection.multimap.MultiMap; +import uk.co.strangeskies.utilities.collection.MultiHashMap; +import uk.co.strangeskies.utilities.collection.MultiMap; public class Models extends QualifiedNamedSet> { private final MultiMap, LinkedHashSet>> derivedModels; diff --git a/uk.co.strangeskies.modabi.core.api/src/uk/co/strangeskies/modabi/QualifiedNamedSet.java b/uk.co.strangeskies.modabi.core.api/src/uk/co/strangeskies/modabi/QualifiedNamedSet.java index a1eaa840..ff46cc58 100644 --- a/uk.co.strangeskies.modabi.core.api/src/uk/co/strangeskies/modabi/QualifiedNamedSet.java +++ b/uk.co.strangeskies.modabi.core.api/src/uk/co/strangeskies/modabi/QualifiedNamedSet.java @@ -23,8 +23,8 @@ import java.util.Map; import java.util.function.Function; -import uk.co.strangeskies.utilities.collection.decorator.SetDecorator; -import uk.co.strangeskies.utilities.function.collection.SetTransformationView; +import uk.co.strangeskies.utilities.collection.SetDecorator; +import uk.co.strangeskies.utilities.function.SetTransformationView; public class QualifiedNamedSet extends /* @ReadOnly */SetDecorator { private final Function qualifiedNamingFunction; diff --git a/uk.co.strangeskies.modabi.core.provider/src/uk/co/strangeskies/modabi/impl/SchemaManagerImpl.java b/uk.co.strangeskies.modabi.core.provider/src/uk/co/strangeskies/modabi/impl/SchemaManagerImpl.java index 2508669a..7401482b 100644 --- a/uk.co.strangeskies.modabi.core.provider/src/uk/co/strangeskies/modabi/impl/SchemaManagerImpl.java +++ b/uk.co.strangeskies.modabi.core.provider/src/uk/co/strangeskies/modabi/impl/SchemaManagerImpl.java @@ -76,8 +76,8 @@ import uk.co.strangeskies.modabi.schema.building.ModelBuilder; import uk.co.strangeskies.reflection.TypeToken; import uk.co.strangeskies.reflection.TypeToken.Infer; -import uk.co.strangeskies.utilities.collection.multimap.MultiHashMap; -import uk.co.strangeskies.utilities.collection.multimap.MultiMap; +import uk.co.strangeskies.utilities.collection.MultiHashMap; +import uk.co.strangeskies.utilities.collection.MultiMap; @Component(immediate = true) public class SchemaManagerImpl implements SchemaManager { diff --git a/uk.co.strangeskies.modabi.core.provider/src/uk/co/strangeskies/modabi/impl/schema/ChoiceNodeImpl.java b/uk.co.strangeskies.modabi.core.provider/src/uk/co/strangeskies/modabi/impl/schema/ChoiceNodeImpl.java index 09c004ba..eab52c92 100644 --- a/uk.co.strangeskies.modabi.core.provider/src/uk/co/strangeskies/modabi/impl/schema/ChoiceNodeImpl.java +++ b/uk.co.strangeskies.modabi.core.provider/src/uk/co/strangeskies/modabi/impl/schema/ChoiceNodeImpl.java @@ -29,7 +29,7 @@ class ChoiceNodeImpl extends SchemaNodeImpl private static class Effective extends SchemaNodeImpl.Effective implements ChoiceNode.Effective { - private final boolean mandatory; + private final Boolean mandatory; private final TypeToken preInputClass; private final TypeToken postInputClass; @@ -53,24 +53,31 @@ else if (!nextInputClass.isAssignableFrom(preInputClass)) TypeToken postInputClass = overrideMerge .getOverride(ChildNode::getPostInputType) .validate(TypeToken::isAssignableTo).tryGet(); - if (!isAbstract()) - if (postInputClass == null) + if (!isAbstract()) { + if (postInputClass == null) { for (ChildNode.Effective child : children()) { TypeToken nextOutputClass = child.getPostInputType(); - if (postInputClass != null) - if (nextOutputClass.isAssignableFrom(postInputClass)) + + if (postInputClass != null) { + if (nextOutputClass.isAssignableFrom(postInputClass)) { postInputClass = nextOutputClass; - else if (!postInputClass.isAssignableFrom(nextOutputClass)) + } else if (!postInputClass.isAssignableFrom(nextOutputClass)) { postInputClass = TypeToken.over(Object.class); + } + } } - else - for (ChildNode.Effective child : children()) - if (!postInputClass.isAssignableFrom(child.getPostInputType())) + } else { + for (ChildNode.Effective child : children()) { + if (!postInputClass.isAssignableFrom(child.getPostInputType())) { throw new SchemaException(); + } + } + } + } this.postInputClass = postInputClass; mandatory = overrideMerge.getOverride(ChoiceNode::isMandatory) - .orDefault(false).get(); + .validate((o, p) -> o || !p).orDefault(false).get(); } @Override diff --git a/uk.co.strangeskies.modabi.core.test/bnd.bnd b/uk.co.strangeskies.modabi.core.test/bnd.bnd index c40c685f..2e2dd196 100644 --- a/uk.co.strangeskies.modabi.core.test/bnd.bnd +++ b/uk.co.strangeskies.modabi.core.test/bnd.bnd @@ -29,8 +29,8 @@ Test-Cases: ${test-cases} osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.command)',\ osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.runtime)',\ osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.shell)',\ - osgi.identity;filter:='(osgi.identity=uk.co.strangeskies.modabi.io.json.provider)',\ - osgi.identity;filter:='(osgi.identity=uk.co.strangeskies.modabi.io.xml.provider)',\ + osgi.identity;filter:='(osgi.identity=uk.co.strangeskies.modabi.io.json)',\ + osgi.identity;filter:='(osgi.identity=uk.co.strangeskies.modabi.io.xml)',\ osgi.identity;filter:='(osgi.identity=biz.aQute.tester)',\ osgi.identity;filter:='(osgi.identity=uk.co.strangeskies.modabi.core.provider)',\ osgi.identity;filter:='(osgi.identity=uk.co.strangeskies.modabi.core.api)' @@ -53,8 +53,8 @@ Test-Cases: ${test-cases} uk.co.strangeskies.mathematics;version='[1.0.13,1.0.14)',\ uk.co.strangeskies.modabi.core.api;version=snapshot,\ uk.co.strangeskies.modabi.core.provider;version=snapshot,\ - uk.co.strangeskies.modabi.io.json.provider;version=snapshot,\ - uk.co.strangeskies.modabi.io.xml.provider;version=snapshot,\ + uk.co.strangeskies.modabi.io.json;version=snapshot,\ + uk.co.strangeskies.modabi.io.xml;version=snapshot,\ uk.co.strangeskies.reflection;version='[1.0.13,1.0.14)',\ uk.co.strangeskies.utilities;version='[1.0.13,1.0.14)',\ uk.co.strangeskies.utilities.osgi.consolelog;version='[1.0.13,1.0.14)' diff --git a/uk.co.strangeskies.modabi.core.test/src/uk/co/strangeskies/modabi/core/test/SchemaTest.java b/uk.co.strangeskies.modabi.core.test/src/uk/co/strangeskies/modabi/core/test/SchemaTest.java index ee4bbb35..eff087d9 100644 --- a/uk.co.strangeskies.modabi.core.test/src/uk/co/strangeskies/modabi/core/test/SchemaTest.java +++ b/uk.co.strangeskies.modabi.core.test/src/uk/co/strangeskies/modabi/core/test/SchemaTest.java @@ -79,16 +79,22 @@ private T getService(Class clazz) { } } + @Test + public void abstractChoiceNodeTest() { + SchemaManager schemaManager = getService(SchemaManager.class); + schemaManager.generateSchema(new QualifiedName("choiceNodeTest")) + .buildModel("choiceNodeTestModel", + m -> m.isAbstract(true).addChild(c -> c.choice().isAbstract(true))); + } + @Test public void schemaManagerServiceTest() { - System.out.println("TEST1"); Assert.assertNotNull(getService(SchemaManager.class)); } @Test public void schemaUnbindingTest() { new ContextClassLoaderRunner(getClass().getClassLoader()).run(() -> { - System.out.println("TEST2"); SchemaManager schemaManager = getService(SchemaManager.class); System.out.println("Unbinding BaseSchema..."); @@ -193,7 +199,6 @@ public uk.co.strangeskies.modabi.schema.ChoiceNode.Effective effective() { @Test public void manualSchemaCreationTest() { - System.out.println("TEST3"); SchemaManager schemaManager = getService(SchemaManager.class); GeneratedSchema generatedSchema = schemaManager.generateSchema( diff --git a/uk.co.strangeskies.modabi.core.test/testdir/TEST-uk.co.strangeskies.modabi.core.test-1.0.0.xml b/uk.co.strangeskies.modabi.core.test/testdir/TEST-uk.co.strangeskies.modabi.core.test-1.0.0.xml index e69de29b..539ac946 100644 --- a/uk.co.strangeskies.modabi.core.test/testdir/TEST-uk.co.strangeskies.modabi.core.test-1.0.0.xml +++ b/uk.co.strangeskies.modabi.core.test/testdir/TEST-uk.co.strangeskies.modabi.core.test-1.0.0.xml @@ -0,0 +1,1885 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + copyable + + + + + testy +testy2 + + + + + testy +testy2 + + + + + testy +testy2 +Unbinding BaseSchema... +<?xml version="1.0" + ?> +<schema xmlns="http://modabi.strangeskies.co.uk/2014-01-01/" + name="BaseSchema"> + <dependencies/> + + <types> + <type private="true" name="enumerationBase" + dataType="@uk.co.strangeskies.reflection.TypeToken.Infer uk.co.strangeskies.utilities.Enumeration<?>" + bindingStrategy="STATIC_FACTORY" unbindingType="uk.co.strangeskies.utilities.Enumeration" + abstract="true"/> + <type private="true" name="primitive" + bindingStrategy="PROVIDED" bindingType="uk.co.strangeskies.modabi.io.DataSource" + unbindingStrategy="PASS_TO_PROVIDED" unbindingMethod="put" + unbindingType="uk.co.strangeskies.modabi.io.DataTarget" providedUnbindingMethodParameters="dataType, + this" abstract="true"> + <data name="dataType" + type="enumerationBase" valueResolution="REGISTRATION_TIME" + extensible="true" outMethod="null" inMethod="get" inMethodChained="true" + dataType="@uk.co.strangeskies.reflection.TypeToken.Infer uk.co.strangeskies.modabi.io.Primitive<?>" + abstract="true"/> + </type> + <type + baseType="primitive" name="binary" dataType="byte[]"> + + <data name="dataType" value="binary" dataType="uk.co.strangeskies.modabi.io.Primitive<byte[]>"/> + + </type> + <type baseType="primitive" + name="string" dataType="java.lang.String"> + <data + name="dataType" value="string" dataType="uk.co.strangeskies.modabi.io.Primitive<java.lang.String>"/> + + </type> + <type baseType="primitive" + name="integer" dataType="java.math.BigInteger"> + + <data name="dataType" value="integer" dataType="uk.co.strangeskies.modabi.io.Primitive<java.math.BigInteger>"/> + + </type> + <type baseType="primitive" + name="decimal" dataType="java.math.BigDecimal"> + + <data name="dataType" value="decimal" dataType="uk.co.strangeskies.modabi.io.Primitive<java.math.BigDecimal>"/> + + </type> + <type baseType="primitive" + name="int" dataType="int"> + <data name="dataType" + value="int" dataType="uk.co.strangeskies.modabi.io.Primitive<java.lang.Integer>"/> + + </type> + <type baseType="primitive" + name="long" dataType="long"> + <data name="dataType" + value="long" dataType="uk.co.strangeskies.modabi.io.Primitive<java.lang.Long>"/> + + </type> + <type baseType="primitive" + name="float" dataType="float"> + <data name="dataType" + value="float" dataType="uk.co.strangeskies.modabi.io.Primitive<java.lang.Float>"/> + + </type> + <type baseType="primitive" + name="double" dataType="double"> + <data + name="dataType" value="double" dataType="uk.co.strangeskies.modabi.io.Primitive<java.lang.Double>"/> + + </type> + <type baseType="primitive" + name="boolean" dataType="boolean"> + <data + name="dataType" value="boolean" dataType="uk.co.strangeskies.modabi.io.Primitive<java.lang.Boolean>"/> + + </type> + <type baseType="primitive" + name="qualifiedName" dataType="uk.co.strangeskies.modabi.QualifiedName"> + + <data name="dataType" value="qualifiedName" dataType="uk.co.strangeskies.modabi.io.Primitive<uk.co.strangeskies.modabi.QualifiedName>"/> + + </type> + <type name="array" dataType="@uk.co.strangeskies.reflection.TypeToken.Infer + java.lang.Object[]" bindingStrategy="PROVIDED" bindingType="java.util.List" + unbindingStrategy="STATIC_FACTORY" unbindingMethod="asList" + unbindingType="@uk.co.strangeskies.reflection.TypeToken.Infer + java.util.List<?>" unbindingFactoryType="java.util.Arrays" + abstract="true"> + <data name="element" + occurrences="0.." outMethod="this" outMethodIterable="true" + inMethod="add" inMethodChained="false" abstract="true"/> + + <inputSequence name="toArray" inMethodChained="true" + inMethodCast="true"/> + </type> + + <type name="collection" dataType="@uk.co.strangeskies.reflection.TypeToken.Infer + java.util.Collection<?>" bindingStrategy="PROVIDED" + unbindingStrategy="SIMPLE"> + <data name="element" + extensible="true" occurrences="0.." outMethod="this" outMethodIterable="true" + inMethod="add" abstract="true"/> + </type> + + <type baseType="collection" name="list" dataType="@uk.co.strangeskies.reflection.TypeToken.Infer + java.util.List<?>"/> + <type + baseType="collection" name="set" dataType="@uk.co.strangeskies.reflection.TypeToken.Infer + java.util.Set<?>"/> + <type + name="uri" dataType="java.net.URI" bindingStrategy="CONSTRUCTOR"> + + <data name="uriString" type="string" outMethod="toString"/> + + </type> + <type name="url" dataType="java.net.URL" + bindingStrategy="CONSTRUCTOR"> + <data name="urlString" + type="string" outMethod="toString"/> + </type> + + <type name="bufferedData" dataType="uk.co.strangeskies.modabi.io.DataSource" + bindingStrategy="PROVIDED" bindingType="uk.co.strangeskies.modabi.io.DataSource" + unbindingStrategy="ACCEPT_PROVIDED" unbindingMethod="pipe" + unbindingType="uk.co.strangeskies.modabi.io.DataTarget"/> + + <type private="true" name="referenceBase" dataType="@uk.co.strangeskies.reflection.TypeToken.Infer + ?" bindingStrategy="PROVIDED" bindingType="uk.co.strangeskies.modabi.processing.providers.DereferenceSource" + unbindingStrategy="PROVIDED_FACTORY" unbindingMethod="reference" + unbindingType="uk.co.strangeskies.modabi.io.DataSource" providedUnbindingMethodParameters="targetModel, + targetId, this" unbindingFactoryType="uk.co.strangeskies.modabi.processing.providers.ReferenceTarget" + abstract="true"> + <data name="targetModel" + valueResolution="REGISTRATION_TIME" outMethod="null" inMethod="null" + dataType="@uk.co.strangeskies.reflection.TypeToken.Infer uk.co.strangeskies.modabi.schema.Model<?>" + abstract="true"/> + <data name="targetId" + type="qualifiedName" valueResolution="REGISTRATION_TIME" outMethod="null" + inMethod="null" abstract="true"/> + <inputSequence + name="dereference" inMethodChained="true" inMethodUnchecked="true"> + + <data name="targetModelInput" outMethod="null" + dataType="uk.co.strangeskies.modabi.schema.Model" bindingStrategy="PROVIDED" + bindingType="uk.co.strangeskies.modabi.processing.BindingContext"> + + <data name="bindingNode" type="int" value="1" + outMethod="null" inMethodChained="true" inMethodCast="true" + postInputType="uk.co.strangeskies.modabi.schema.DataType.Effective<?>"/> + + <data name="child" type="qualifiedName" value="targetModel" + outMethod="null" inMethodChained="true" inMethodCast="true" + postInputType="uk.co.strangeskies.modabi.schema.DataNode.Effective<?>"/> + + <inputSequence name="providedValue" inMethodChained="true"/> + + </data> + <data name="targetIdInput" + outMethod="null" dataType="uk.co.strangeskies.modabi.QualifiedName" + bindingStrategy="PROVIDED" bindingType="uk.co.strangeskies.modabi.processing.BindingContext"> + + <data name="bindingNode" type="int" value="1" + outMethod="null" inMethodChained="true" inMethodCast="true" + postInputType="uk.co.strangeskies.modabi.schema.DataType.Effective<?>"/> + + <data name="child" type="qualifiedName" value="targetId" + outMethod="null" inMethodChained="true" inMethodCast="true" + postInputType="uk.co.strangeskies.modabi.schema.DataNode.Effective<?>"/> + + <inputSequence name="providedValue" inMethodChained="true"/> + + </data> + <data name="data" + type="bufferedData" outMethod="this"/> + </inputSequence> + + </type> + <type baseType="referenceBase" + name="reference" abstract="true"> + <data + name="targetModel" type="referenceBase" dataType="uk.co.strangeskies.modabi.schema.Model" + abstract="true"> + <data name="targetModel" + type="referenceBase" value="model" extensible="true" dataType="uk.co.strangeskies.modabi.schema.Model"> + + <data name="targetModel" type="referenceBase" + value="model" extensible="true" dataType="uk.co.strangeskies.modabi.schema.Model" + abstract="true"/> + <data name="targetId" + value="name"/> + </data> + + <data name="targetId" value="name"/> + + </data> + </type> + <type + name="class" dataType="java.lang.Class<?>" + bindingStrategy="STATIC_FACTORY" bindingType="uk.co.strangeskies.reflection.Types"> + + <data name="name" type="string" inMethod="fromString" + inMethodCast="true"/> + </type> + + <type name="type" dataType="java.lang.reflect.Type" + bindingStrategy="STATIC_FACTORY" bindingType="uk.co.strangeskies.reflection.Types"> + + <data name="name" type="string" outMethod="toString" + inMethod="fromString"/> + </type> + + <type name="annotatedType" dataType="java.lang.reflect.AnnotatedType" + bindingStrategy="STATIC_FACTORY" bindingType="uk.co.strangeskies.reflection.AnnotatedTypes"> + + <data name="name" type="string" outMethod="toString" + inMethod="fromString"/> + </type> + + <type name="typeToken" dataType="uk.co.strangeskies.reflection.TypeToken<?>" + bindingStrategy="STATIC_FACTORY"> + <data + type="annotatedType" outMethod="getAnnotatedDeclaration" inMethod="over"/> + + </type> + <type name="enum" dataType="java.lang.Enum<?>" + bindingStrategy="STATIC_FACTORY" bindingType="uk.co.strangeskies.utilities.Enumeration" + unbindingStrategy="SIMPLE" abstract="true"> + <inputSequence + name="valueOfEnum"> + <data name="enumType" + outMethod="null" dataType="java.lang.Class<? extends + java.lang.Enum<?>>" bindingStrategy="PROVIDED" + bindingType="uk.co.strangeskies.modabi.processing.BindingContext"> + + <inputSequence name="bindingNode" inMethodChained="true" + inMethodCast="true" postInputType="uk.co.strangeskies.modabi.schema.DataType.Effective<?>"/> + + <inputSequence name="getDataType" inMethodChained="true"/> + + <inputSequence name="getRawType" inMethodChained="true"/> + + </data> + <data name="name" + type="string"/> + </inputSequence> + + </type> + <type baseType="enumerationBase" + name="enumeration" abstract="true"> + <inputSequence + name="valueOf" inMethod="valueOf"> + <data + name="enumerationType" outMethod="null" dataType="java.lang.Class<? + extends uk.co.strangeskies.utilities.Enumeration<?>>" + bindingStrategy="PROVIDED" bindingType="uk.co.strangeskies.modabi.processing.BindingContext"> + + <inputSequence name="bindingNode" inMethodChained="true" + inMethodCast="true" postInputType="uk.co.strangeskies.modabi.schema.DataType.Effective<?>"/> + + <inputSequence name="getDataType" inMethodChained="true"/> + + <inputSequence name="getType" inMethodChained="true"/> + + </data> + <data name="name" + type="string"/> + </inputSequence> + + </type> + <type name="range" dataType="uk.co.strangeskies.mathematics.Range<java.lang.Integer>" + bindingStrategy="STATIC_FACTORY" unbindingStrategy="STATIC_FACTORY" + unbindingType="java.lang.String" unbindingFactoryType="uk.co.strangeskies.mathematics.Range"> + + <data name="string" type="string" outMethod="this"/> + + </type> + <type name="include" + dataType="java.util.Collection<?>" bindingStrategy="TARGET_ADAPTOR" + unbindingStrategy="PASS_TO_PROVIDED" unbindingMethod="include" + unbindingType="uk.co.strangeskies.modabi.processing.providers.IncludeTarget" + providedUnbindingMethodParameters="targetModel, this" abstract="true"> + + <data name="targetModel" type="reference" valueResolution="REGISTRATION_TIME" + outMethod="null" inMethod="null" dataType="uk.co.strangeskies.modabi.schema.Model<?>" + abstract="true"> + <data name="targetModel" + value="model"/> + <data name="targetId" + value="name"/> + </data> + <data + name="in" outMethod="null" inMethod="null" dataType="uk.co.strangeskies.modabi.processing.providers.IncludeTarget" + bindingStrategy="PROVIDED"> + <inputSequence + name="include" inMethod="include" inMethodUnchecked="true"> + + <data name="targetModel" outMethod="null" + dataType="uk.co.strangeskies.modabi.schema.Model<?>" + bindingStrategy="PROVIDED" bindingType="uk.co.strangeskies.modabi.processing.BindingContext"> + + <data name="bindingNode" type="int" value="2" + outMethod="null" inMethodChained="true"/> + + <data name="child" type="qualifiedName" value="targetModel" + outMethod="null" inMethodChained="true" inMethodCast="true" + postInputType="uk.co.strangeskies.modabi.schema.DataNode.Effective<?>"/> + + <inputSequence name="providedValue" inMethodChained="true"/> + + </data> + <data name="object" + outMethod="null" dataType="java.util.Collection" bindingStrategy="PROVIDED" + bindingType="uk.co.strangeskies.modabi.processing.BindingContext"> + + <data name="bindingTarget" type="int" value="1" + outMethod="null" inMethodChained="true"/> + + </data> + </inputSequence> + + </data> + </type> + + <type name="import" dataType="java.lang.Object" bindingStrategy="SOURCE_ADAPTOR" + unbindingStrategy="SIMPLE" unbindingMethod="this" abstract="true"> + + <data name="import" outMethod="this" inMethod="null" + inMethodChained="true" dataType="java.lang.Object" bindingStrategy="PROVIDED" + bindingType="uk.co.strangeskies.modabi.processing.providers.ImportSource" + unbindingStrategy="PROVIDED_FACTORY" unbindingMethod="dereferenceImport" + unbindingType="uk.co.strangeskies.modabi.io.DataSource" providedUnbindingMethodParameters="targetModel, + targetId, this" unbindingFactoryType="uk.co.strangeskies.modabi.processing.providers.ImportReferenceTarget" + abstract="true"> + <data name="targetModel" + type="reference" valueResolution="REGISTRATION_TIME" outMethod="null" + inMethod="null" dataType="uk.co.strangeskies.modabi.schema.Model<?>" + abstract="true"> + <data name="targetModel" + value="model"/> + <data name="targetId" + value="name"/> + </data> + + <data name="targetId" type="qualifiedName" valueResolution="REGISTRATION_TIME" + outMethod="null" inMethod="null" abstract="true"/> + + <inputSequence name="importObject" inMethodChained="true" + inMethodUnchecked="true"> + <data name="targetModel" + outMethod="null" dataType="uk.co.strangeskies.modabi.schema.Model<?>" + bindingStrategy="PROVIDED" bindingType="uk.co.strangeskies.modabi.processing.BindingContext"> + + <data name="bindingNode" type="int" value="1" + outMethod="null" inMethodChained="true"/> + + <data name="child" type="qualifiedName" value="targetModel" + outMethod="null" inMethodChained="true" inMethodCast="true" + postInputType="uk.co.strangeskies.modabi.schema.DataNode.Effective<?>"/> + + <inputSequence name="providedValue" inMethodChained="true"/> + + </data> + <data name="targetId" + outMethod="null" dataType="uk.co.strangeskies.modabi.QualifiedName" + bindingStrategy="PROVIDED" bindingType="uk.co.strangeskies.modabi.processing.BindingContext"> + + <data name="bindingNode" type="int" value="1" + outMethod="null" inMethodChained="true"/> + + <data name="child" type="qualifiedName" value="targetId" + outMethod="null" inMethodChained="true" inMethodCast="true" + postInputType="uk.co.strangeskies.modabi.schema.DataNode.Effective<?>"/> + + <inputSequence name="providedValue" inMethodChained="true"/> + + </data> + <data name="data" + type="bufferedData" outMethod="this"/> + </inputSequence> + + </data> + </type> + </types> + + <models> + <model name="simpleModel" + dataType="@uk.co.strangeskies.reflection.TypeToken.Infer ?" + bindingStrategy="SOURCE_ADAPTOR" abstract="true"> + + <content name="content" outMethod="this" abstract="true"/> + + </model> + <model name="map" dataType="@uk.co.strangeskies.reflection.TypeToken.Infer + java.util.Map<?, ?>"> + <inline + name="entrySet" inMethod="null" dataType="@uk.co.strangeskies.reflection.TypeToken.Infer + java.util.Set<? extends @uk.co.strangeskies.reflection.TypeToken.Infer + java.util.Map.Entry<?, ?>>" + bindingStrategy="TARGET_ADAPTOR"> + <inputSequence + name="entrySet" inMethodChained="true"/> + <complex + name="entry" occurrences="0.." outMethod="this" outMethodIterable="true" + inMethod="add" dataType="@uk.co.strangeskies.reflection.TypeToken.Infer + java.util.Map.Entry<?, ?>" bindingStrategy="IMPLEMENT_IN_PLACE" + bindingType="uk.co.strangeskies.modabi.impl.BaseSchemaImpl" + unbindingMethod="mapEntry"> + <property + name="key" extensible="true" inMethod="null" dataType="@uk.co.strangeskies.reflection.TypeToken.Infer + ?" abstract="true"/> + <complex name="value" + extensible="true" inMethod="null" dataType="@uk.co.strangeskies.reflection.TypeToken.Infer + ?" abstract="true"/> + </complex> + + </inline> + </model> + + </models> +</schema> + + +Unbinding + MetaSchema... +uk.co.strangeskies.modabi:2014-01-01:successful + name get... +interface uk.co.strangeskies.modabi.schema.SchemaNode + +<?xml version="1.0" ?> +<schema xmlns="http://modabi.strangeskies.co.uk/2014-01-01/" + name="MetaSchema"> + <dependencies> + + <dependency>BaseSchema</dependency> + + </dependencies> + <types/> + + <models> + <model name="node" dataType="uk.co.strangeskies.modabi.schema.SchemaNode<?, + ?>" unbindingStrategy="SIMPLE" abstract="true"> + + <inputSequence name="configure" postInputType="uk.co.strangeskies.modabi.schema.SchemaNodeConfigurator<?, + ?>" abstract="true"/> + <property + name="name" type="qualifiedName" optional="true" inMethod="name"/> + + <property name="abstract" type="boolean" optional="true" + inMethod="isAbstract"/> + </model> + + <model name="childBase" dataType="uk.co.strangeskies.modabi.schema.ChildNode<?, + ?>" bindingType="uk.co.strangeskies.modabi.schema.SchemaNodeConfigurator<?, + ?>" abstract="true"/> + <model + name="branch" baseModel="node" abstract="true"> + + <data name="name"/> + <data name="abstract"/> + + <complex name="child" baseModel="childBase" extensible="true" + occurrences="0.." outMethod="children" outMethodIterable="true" + inMethod="null" abstract="true"/> + <inputSequence + name="create" inMethodChained="true"/> + </model> + + <model name="child" baseModel="branch, childBase" + dataType="uk.co.strangeskies.modabi.schema.ChildNode<?, + ?>" bindingStrategy="TARGET_ADAPTOR" bindingType="uk.co.strangeskies.modabi.schema.SchemaNodeConfigurator<?, + ?>" abstract="true"> + <inputSequence + name="addChild" inMethodChained="true"/> + <inputSequence + name="configure" inMethodChained="true" postInputType="uk.co.strangeskies.modabi.schema.ChildNodeConfigurator<?, + ?>" abstract="true"/> + <data + name="name"/> + <property name="postInputType" + type="typeToken" optional="true"/> + </model> + + <model name="binding" baseModel="branch" dataType="uk.co.strangeskies.modabi.schema.BindingNode<?, + ?, ?>" abstract="true"> + <inputSequence + name="configure" postInputType="uk.co.strangeskies.modabi.schema.BindingNodeConfigurator<?, + ?, java.lang.Object>" abstract="true"/> + + <data name="name"/> + <property + name="dataType" type="typeToken" optional="true"/> + + <property name="bindingStrategy" type="enum" + optional="true" dataType="uk.co.strangeskies.modabi.processing.BindingStrategy"/> + + <property name="bindingType" type="typeToken" + optional="true"/> + <property name="unbindingStrategy" + type="enum" optional="true" dataType="uk.co.strangeskies.modabi.processing.UnbindingStrategy"/> + + <property name="unbindingMethod" type="string" + optional="true" outMethod="getUnbindingMethodName"/> + + <property name="unbindingType" type="typeToken" + optional="true"/> + <property name="providedUnbindingMethodParameters" + type="list" optional="true" outMethod="getProvidedUnbindingMethodParameterNames" + inMethod="providedUnbindingMethodParameters"> + + <data name="element" type="qualifiedName"/> + + </property> + <property name="unbindingFactoryType" + type="typeToken" optional="true"/> + </model> + + <model name="input" baseModel="child" dataType="uk.co.strangeskies.modabi.schema.InputNode<?, + ?>" abstract="true"> + <inputSequence + name="configure" postInputType="uk.co.strangeskies.modabi.schema.InputNodeConfigurator<?, + ?>" abstract="true"/> + <data + name="name"/> + <property name="inMethod" + type="string" optional="true" outMethod="getInMethodName"/> + + <property name="inMethodChained" type="boolean" + optional="true"/> + <property name="inMethodCast" + type="boolean" optional="true"/> + <property + name="inMethodUnchecked" type="boolean" optional="true"/> + + </model> + <model name="bindingChild" + baseModel="input, binding" dataType="uk.co.strangeskies.modabi.schema.BindingChildNode<?, + ?, ?>" abstract="true"> + <inputSequence + name="configure" postInputType="uk.co.strangeskies.modabi.schema.BindingChildNodeConfigurator<?, + ?, java.lang.Object>" abstract="true"/> + + <data name="name"/> + <property + name="extensible" type="boolean" optional="true"/> + + <property name="ordered" type="boolean" optional="true"/> + + <property name="occurrences" type="range" optional="true"/> + + <property name="outMethod" type="string" optional="true" + outMethod="getOutMethodName"/> + <property + name="outMethodIterable" type="boolean" optional="true"/> + + <property name="outMethodCast" type="boolean" + optional="true"/> + <property name="outMethodUnchecked" + type="boolean" optional="true"/> + </model> + + <model name="choice" baseModel="child" dataType="uk.co.strangeskies.modabi.schema.ChoiceNode"> + + <inputSequence name="configure" inMethod="choice"/> + + <data name="name"/> + <property + name="mandatory" type="boolean" optional="true"/> + + </model> + <model name="sequence" + baseModel="child" dataType="uk.co.strangeskies.modabi.schema.SequenceNode"> + + <inputSequence name="configure" inMethod="sequence"/> + + </model> + <model name="inputSequence" + baseModel="input, child" dataType="uk.co.strangeskies.modabi.schema.InputSequenceNode"> + + <inputSequence name="configure" inMethod="inputSequence" + postInputType="uk.co.strangeskies.modabi.schema.InputSequenceNodeConfigurator"/> + + <data name="name"/> + </model> + + <model name="abstractModel" baseModel="binding" + dataType="uk.co.strangeskies.modabi.schema.AbstractComplexNode<?, + ?, ?>" abstract="true"> + <inputSequence + name="configure" postInputType="uk.co.strangeskies.modabi.schema.AbstractComplexNodeConfigurator<?, + ?, java.lang.Object>" abstract="true"/> + + <data name="name"/> + <property + name="baseModel" type="list" optional="true" outMethodUnchecked="true" + inMethodUnchecked="true"> + <data name="element" + type="reference" dataType="uk.co.strangeskies.modabi.schema.Model<?>"> + + <data name="targetModel" value="model" dataType="uk.co.strangeskies.modabi.schema.Model<uk.co.strangeskies.modabi.schema.Model<?>>"/> + + <data name="targetId" value="name"/> + + </data> + </property> + + </model> + <model name="model" + baseModel="abstractModel" dataType="uk.co.strangeskies.modabi.schema.Model<?>" + bindingType="uk.co.strangeskies.modabi.schema.building.ModelBuilder"> + + <inputSequence name="configure" inMethodChained="true"> + + <data name="configure" outMethod="null" dataType="uk.co.strangeskies.modabi.schema.building.DataLoader" + bindingStrategy="PROVIDED"/> + </inputSequence> + + <data name="name" optional="false"/> + + </model> + <model name="abstractComplex" + baseModel="abstractModel, bindingChild" dataType="uk.co.strangeskies.modabi.schema.ComplexNode<?>" + abstract="true"> + <inputSequence name="addChild"/> + + <inputSequence name="configure" inMethod="complex" + inMethodChained="true" postInputType="uk.co.strangeskies.modabi.schema.ComplexNodeConfigurator<java.lang.Object>"/> + + <data name="name"/> + <data + name="inline" type="boolean" optional="true" valueResolution="REGISTRATION_TIME" + abstract="true"/> + </model> + <model + name="complex" baseModel="abstractComplex"> + <data + name="inline" optional="true" value="false"/> + </model> + + <model name="inline" baseModel="abstractComplex"> + + <data name="inline" optional="false" value="true"/> + + </model> + <model name="typedData" + baseModel="bindingChild" dataType="uk.co.strangeskies.modabi.schema.DataNode<?>" + abstract="true"> + <inputSequence name="addChild"/> + + <inputSequence name="configure" inMethod="data" + inMethodChained="true"/> + <property name="format" + type="enum" optional="true" valueResolution="REGISTRATION_TIME" + postInputType="uk.co.strangeskies.modabi.schema.DataNodeConfigurator" + dataType="uk.co.strangeskies.modabi.schema.DataNode.Format" + abstract="true"/> + <data name="name"/> + + <property name="type" type="reference" optional="true" + dataType="uk.co.strangeskies.modabi.schema.DataType<?>"> + + <data name="targetModel" valueResolution="REGISTRATION_TIME" + value="type"/> + <data name="targetId" + valueResolution="REGISTRATION_TIME" value="name"/> + + </property> + <property name="optional" + type="boolean" optional="true"/> + <property + name="nullIfOmitted" type="boolean" optional="true"/> + + <property name="valueResolution" type="enum" + optional="true" dataType="uk.co.strangeskies.modabi.ValueResolution"/> + + <property name="value" type="bufferedData" optional="true" + outMethod="providedValueBuffer" inMethod="provideValue"/> + + </model> + <model name="content" + baseModel="typedData"> + <data name="format" + optional="false" value="CONTENT"/> + </model> + + <model name="property" baseModel="typedData"> + + <data name="format" optional="false" value="PROPERTY"/> + + </model> + <model name="simple" + baseModel="typedData"> + <data name="format" + optional="false" value="SIMPLE"/> + </model> + + <model name="data" baseModel="typedData"> + + <data name="format" occurrences="0..0"/> + + </model> + <model name="type" baseModel="binding" + dataType="uk.co.strangeskies.modabi.schema.DataType<?>" + bindingType="uk.co.strangeskies.modabi.schema.building.DataTypeBuilder"> + + <inputSequence name="configure" inMethodChained="true"> + + <data name="configure" outMethod="null" dataType="uk.co.strangeskies.modabi.schema.building.DataLoader" + bindingStrategy="PROVIDED"/> + </inputSequence> + + <property name="private" type="boolean" optional="true" + inMethod="isPrivate"/> + <property name="baseType" + type="reference" optional="true" dataType="uk.co.strangeskies.modabi.schema.DataType<?>"> + + <data name="targetModel" value="type"/> + + <data name="targetId" value="name"/> + + </property> + </model> + + <model name="schema" dataType="uk.co.strangeskies.modabi.Schema" + bindingType="uk.co.strangeskies.modabi.SchemaBuilder"> + + <inputSequence name="configure" inMethodChained="true"/> + + <property name="name" type="qualifiedName" outMethod="getQualifiedName" + inMethod="qualifiedName"/> + <complex name="dependencies" + occurrences="0..1" dataType="java.util.Set<uk.co.strangeskies.modabi.Schema>"> + + <simple name="dependency" type="import" occurrences="0.." + outMethod="this" outMethodIterable="true" inMethod="add" dataType="uk.co.strangeskies.modabi.Schema"> + + <data name="import"> + <data + name="targetModel" value="schema"/> + <data + name="targetId" value="name"/> + </data> + + <data name="dataTypes" type="include" inMethod="null" + bindingType="uk.co.strangeskies.modabi.Schema"> + + <inputSequence name="getDataTypes" inMethodChained="true"/> + + <data name="targetModel" value="type"/> + + </data> + <data name="models" + type="include" inMethod="null" bindingType="uk.co.strangeskies.modabi.Schema"> + + <inputSequence name="getModels" inMethodChained="true"/> + + <data name="targetModel" value="model"/> + + </data> + </simple> + + </complex> + <complex name="types" + occurrences="0..1" outMethod="getDataTypes" dataType="@uk.co.strangeskies.reflection.TypeToken.Infer + java.util.Set<?>" bindingType="@uk.co.strangeskies.reflection.TypeToken.Infer + java.util.LinkedHashSet<?>"> + + <complex name="type" baseModel="type" occurrences="0.." + outMethod="this" outMethodIterable="true" dataType="uk.co.strangeskies.modabi.schema.DataType<?>"/> + + </complex> + <complex name="models" + occurrences="0..1" dataType="@uk.co.strangeskies.reflection.TypeToken.Infer + java.util.Set<?>" bindingType="@uk.co.strangeskies.reflection.TypeToken.Infer + java.util.LinkedHashSet<?>"> + + <complex baseModel="model" occurrences="0.." + outMethod="this" outMethodIterable="true" inMethod="add"/> + + </complex> + <inputSequence + name="create" inMethodChained="true"/> + </model> + + </models> +</schema> + + +Re-binding + MetaSchema... +Success: true + + +Re-unbinding MetaSchema... + +<?xml version="1.0" ?> +<schema xmlns="http://modabi.strangeskies.co.uk/2014-01-01/" + name="MetaSchema"> + <dependencies> + + <dependency>BaseSchema</dependency> + + </dependencies> + <types/> + + <models> + <model name="node" dataType="uk.co.strangeskies.modabi.schema.SchemaNode<?, + ?>" unbindingStrategy="SIMPLE" abstract="true"> + + <inputSequence name="configure" postInputType="uk.co.strangeskies.modabi.schema.SchemaNodeConfigurator<?, + ?>" abstract="true"/> + <property + name="name" type="qualifiedName" optional="true" inMethod="name"/> + + <property name="abstract" type="boolean" optional="true" + inMethod="isAbstract"/> + </model> + + <model name="childBase" dataType="uk.co.strangeskies.modabi.schema.ChildNode<?, + ?>" bindingType="uk.co.strangeskies.modabi.schema.SchemaNodeConfigurator<?, + ?>" abstract="true"/> + <model + name="branch" baseModel="node" abstract="true"> + + <data name="name"/> + <data name="abstract"/> + + <complex name="child" baseModel="childBase" extensible="true" + occurrences="0.." outMethod="children" outMethodIterable="true" + inMethod="null" abstract="true"/> + <inputSequence + name="create" inMethodChained="true"/> + </model> + + <model name="child" baseModel="branch, childBase" + dataType="uk.co.strangeskies.modabi.schema.ChildNode<?, + ?>" bindingStrategy="TARGET_ADAPTOR" bindingType="uk.co.strangeskies.modabi.schema.SchemaNodeConfigurator<?, + ?>" abstract="true"> + <inputSequence + name="addChild" inMethodChained="true"/> + <inputSequence + name="configure" inMethodChained="true" postInputType="uk.co.strangeskies.modabi.schema.ChildNodeConfigurator<?, + ?>" abstract="true"/> + <data + name="name"/> + <property name="postInputType" + type="typeToken" optional="true"/> + </model> + + <model name="binding" baseModel="branch" dataType="uk.co.strangeskies.modabi.schema.BindingNode<?, + ?, ?>" abstract="true"> + <inputSequence + name="configure" postInputType="uk.co.strangeskies.modabi.schema.BindingNodeConfigurator<?, + ?, java.lang.Object>" abstract="true"/> + + <data name="name"/> + <property + name="dataType" type="typeToken" optional="true"/> + + <property name="bindingStrategy" type="enum" + optional="true" dataType="uk.co.strangeskies.modabi.processing.BindingStrategy"/> + + <property name="bindingType" type="typeToken" + optional="true"/> + <property name="unbindingStrategy" + type="enum" optional="true" dataType="uk.co.strangeskies.modabi.processing.UnbindingStrategy"/> + + <property name="unbindingMethod" type="string" + optional="true" outMethod="getUnbindingMethodName"/> + + <property name="unbindingType" type="typeToken" + optional="true"/> + <property name="providedUnbindingMethodParameters" + type="list" optional="true" outMethod="getProvidedUnbindingMethodParameterNames" + inMethod="providedUnbindingMethodParameters"> + + <data name="element" type="qualifiedName"/> + + </property> + <property name="unbindingFactoryType" + type="typeToken" optional="true"/> + </model> + + <model name="input" baseModel="child" dataType="uk.co.strangeskies.modabi.schema.InputNode<?, + ?>" abstract="true"> + <inputSequence + name="configure" postInputType="uk.co.strangeskies.modabi.schema.InputNodeConfigurator<?, + ?>" abstract="true"/> + <data + name="name"/> + <property name="inMethod" + type="string" optional="true" outMethod="getInMethodName"/> + + <property name="inMethodChained" type="boolean" + optional="true"/> + <property name="inMethodCast" + type="boolean" optional="true"/> + <property + name="inMethodUnchecked" type="boolean" optional="true"/> + + </model> + <model name="bindingChild" + baseModel="input, binding" dataType="uk.co.strangeskies.modabi.schema.BindingChildNode<?, + ?, ?>" abstract="true"> + <inputSequence + name="configure" postInputType="uk.co.strangeskies.modabi.schema.BindingChildNodeConfigurator<?, + ?, java.lang.Object>" abstract="true"/> + + <data name="name"/> + <property + name="extensible" type="boolean" optional="true"/> + + <property name="ordered" type="boolean" optional="true"/> + + <property name="occurrences" type="range" optional="true"/> + + <property name="outMethod" type="string" optional="true" + outMethod="getOutMethodName"/> + <property + name="outMethodIterable" type="boolean" optional="true"/> + + <property name="outMethodCast" type="boolean" + optional="true"/> + <property name="outMethodUnchecked" + type="boolean" optional="true"/> + </model> + + <model name="choice" baseModel="child" dataType="uk.co.strangeskies.modabi.schema.ChoiceNode"> + + <inputSequence name="configure" inMethod="choice"/> + + <data name="name"/> + <property + name="mandatory" type="boolean" optional="true"/> + + </model> + <model name="sequence" + baseModel="child" dataType="uk.co.strangeskies.modabi.schema.SequenceNode"> + + <inputSequence name="configure" inMethod="sequence"/> + + </model> + <model name="inputSequence" + baseModel="input, child" dataType="uk.co.strangeskies.modabi.schema.InputSequenceNode"> + + <inputSequence name="configure" inMethod="inputSequence" + postInputType="uk.co.strangeskies.modabi.schema.InputSequenceNodeConfigurator"/> + + <data name="name"/> + </model> + + <model name="abstractModel" baseModel="binding" + dataType="uk.co.strangeskies.modabi.schema.AbstractComplexNode<?, + ?, ?>" abstract="true"> + <inputSequence + name="configure" postInputType="uk.co.strangeskies.modabi.schema.AbstractComplexNodeConfigurator<?, + ?, java.lang.Object>" abstract="true"/> + + <data name="name"/> + <property + name="baseModel" type="list" optional="true" outMethodUnchecked="true" + inMethodUnchecked="true"> + <data name="element" + type="reference" dataType="uk.co.strangeskies.modabi.schema.Model<?>"> + + <data name="targetModel" value="model" dataType="uk.co.strangeskies.modabi.schema.Model<uk.co.strangeskies.modabi.schema.Model<?>>"/> + + <data name="targetId" value="name"/> + + </data> + </property> + + </model> + <model name="model" + baseModel="abstractModel" dataType="uk.co.strangeskies.modabi.schema.Model<?>" + bindingType="uk.co.strangeskies.modabi.schema.building.ModelBuilder"> + + <inputSequence name="configure" inMethodChained="true"> + + <data name="configure" outMethod="null" dataType="uk.co.strangeskies.modabi.schema.building.DataLoader" + bindingStrategy="PROVIDED"/> + </inputSequence> + + <data name="name" optional="false"/> + + </model> + <model name="abstractComplex" + baseModel="abstractModel, bindingChild" dataType="uk.co.strangeskies.modabi.schema.ComplexNode<?>" + abstract="true"> + <inputSequence name="addChild"/> + + <inputSequence name="configure" inMethod="complex" + inMethodChained="true" postInputType="uk.co.strangeskies.modabi.schema.ComplexNodeConfigurator<java.lang.Object>"/> + + <data name="name"/> + <data + name="inline" type="boolean" optional="true" valueResolution="REGISTRATION_TIME" + abstract="true"/> + </model> + <model + name="complex" baseModel="abstractComplex"> + <data + name="inline" optional="true" value="false"/> + </model> + + <model name="inline" baseModel="abstractComplex"> + + <data name="inline" optional="false" value="true"/> + + </model> + <model name="typedData" + baseModel="bindingChild" dataType="uk.co.strangeskies.modabi.schema.DataNode<?>" + abstract="true"> + <inputSequence name="addChild"/> + + <inputSequence name="configure" inMethod="data" + inMethodChained="true"/> + <property name="format" + type="enum" optional="true" valueResolution="REGISTRATION_TIME" + postInputType="uk.co.strangeskies.modabi.schema.DataNodeConfigurator" + dataType="uk.co.strangeskies.modabi.schema.DataNode.Format" + abstract="true"/> + <data name="name"/> + + <property name="type" type="reference" optional="true" + dataType="uk.co.strangeskies.modabi.schema.DataType<?>"> + + <data name="targetModel" valueResolution="REGISTRATION_TIME" + value="type"/> + <data name="targetId" + valueResolution="REGISTRATION_TIME" value="name"/> + + </property> + <property name="optional" + type="boolean" optional="true"/> + <property + name="nullIfOmitted" type="boolean" optional="true"/> + + <property name="valueResolution" type="enum" + optional="true" dataType="uk.co.strangeskies.modabi.ValueResolution"/> + + <property name="value" type="bufferedData" optional="true" + outMethod="providedValueBuffer" inMethod="provideValue"/> + + </model> + <model name="content" + baseModel="typedData"> + <data name="format" + optional="false" value="CONTENT"/> + </model> + + <model name="property" baseModel="typedData"> + + <data name="format" optional="false" value="PROPERTY"/> + + </model> + <model name="simple" + baseModel="typedData"> + <data name="format" + optional="false" value="SIMPLE"/> + </model> + + <model name="data" baseModel="typedData"> + + <data name="format" occurrences="0..0"/> + + </model> + <model name="type" baseModel="binding" + dataType="uk.co.strangeskies.modabi.schema.DataType<?>" + bindingType="uk.co.strangeskies.modabi.schema.building.DataTypeBuilder"> + + <inputSequence name="configure" inMethodChained="true"> + + <data name="configure" outMethod="null" dataType="uk.co.strangeskies.modabi.schema.building.DataLoader" + bindingStrategy="PROVIDED"/> + </inputSequence> + + <property name="private" type="boolean" optional="true" + inMethod="isPrivate"/> + <property name="baseType" + type="reference" optional="true" dataType="uk.co.strangeskies.modabi.schema.DataType<?>"> + + <data name="targetModel" value="type"/> + + <data name="targetId" value="name"/> + + </property> + </model> + + <model name="schema" dataType="uk.co.strangeskies.modabi.Schema" + bindingType="uk.co.strangeskies.modabi.SchemaBuilder"> + + <inputSequence name="configure" inMethodChained="true"/> + + <property name="name" type="qualifiedName" outMethod="getQualifiedName" + inMethod="qualifiedName"/> + <complex name="dependencies" + occurrences="0..1" dataType="java.util.Set<uk.co.strangeskies.modabi.Schema>"> + + <simple name="dependency" type="import" occurrences="0.." + outMethod="this" outMethodIterable="true" inMethod="add" dataType="uk.co.strangeskies.modabi.Schema"> + + <data name="import"> + <data + name="targetModel" value="schema"/> + <data + name="targetId" value="name"/> + </data> + + <data name="dataTypes" type="include" inMethod="null" + bindingType="uk.co.strangeskies.modabi.Schema"> + + <inputSequence name="getDataTypes" inMethodChained="true"/> + + <data name="targetModel" value="type"/> + + </data> + <data name="models" + type="include" inMethod="null" bindingType="uk.co.strangeskies.modabi.Schema"> + + <inputSequence name="getModels" inMethodChained="true"/> + + <data name="targetModel" value="model"/> + + </data> + </simple> + + </complex> + <complex name="types" + occurrences="0..1" outMethod="getDataTypes" dataType="@uk.co.strangeskies.reflection.TypeToken.Infer + java.util.Set<?>" bindingType="@uk.co.strangeskies.reflection.TypeToken.Infer + java.util.LinkedHashSet<?>"> + + <complex name="type" baseModel="type" occurrences="0.." + outMethod="this" outMethodIterable="true" dataType="uk.co.strangeskies.modabi.schema.DataType<?>"/> + + </complex> + <complex name="models" + occurrences="0..1" dataType="@uk.co.strangeskies.reflection.TypeToken.Infer + java.util.Set<?>" bindingType="@uk.co.strangeskies.reflection.TypeToken.Infer + java.util.LinkedHashSet<?>"> + + <complex baseModel="model" occurrences="0.." + outMethod="this" outMethodIterable="true" inMethod="add"/> + + </complex> + <inputSequence + name="create" inMethodChained="true"/> + </model> + + </models> +</schema> + + +Re-re-binding + MetaSchema... + + +Re-re-unbinding MetaSchema... +<?xml + version="1.0" ?> +<schema xmlns="http://modabi.strangeskies.co.uk/2014-01-01/" + name="MetaSchema"> + <dependencies> + + <dependency>BaseSchema</dependency> + + </dependencies> + <types/> + + <models> + <model name="node" dataType="uk.co.strangeskies.modabi.schema.SchemaNode<?, + ?>" unbindingStrategy="SIMPLE" abstract="true"> + + <inputSequence name="configure" postInputType="uk.co.strangeskies.modabi.schema.SchemaNodeConfigurator<?, + ?>" abstract="true"/> + <property + name="name" type="qualifiedName" optional="true" inMethod="name"/> + + <property name="abstract" type="boolean" optional="true" + inMethod="isAbstract"/> + </model> + + <model name="childBase" dataType="uk.co.strangeskies.modabi.schema.ChildNode<?, + ?>" bindingType="uk.co.strangeskies.modabi.schema.SchemaNodeConfigurator<?, + ?>" abstract="true"/> + <model + name="branch" baseModel="node" abstract="true"> + + <data name="name"/> + <data name="abstract"/> + + <complex name="child" baseModel="childBase" extensible="true" + occurrences="0.." outMethod="children" outMethodIterable="true" + inMethod="null" abstract="true"/> + <inputSequence + name="create" inMethodChained="true"/> + </model> + + <model name="child" baseModel="branch, childBase" + dataType="uk.co.strangeskies.modabi.schema.ChildNode<?, + ?>" bindingStrategy="TARGET_ADAPTOR" bindingType="uk.co.strangeskies.modabi.schema.SchemaNodeConfigurator<?, + ?>" abstract="true"> + <inputSequence + name="addChild" inMethodChained="true"/> + <inputSequence + name="configure" inMethodChained="true" postInputType="uk.co.strangeskies.modabi.schema.ChildNodeConfigurator<?, + ?>" abstract="true"/> + <data + name="name"/> + <property name="postInputType" + type="typeToken" optional="true"/> + </model> + + <model name="binding" baseModel="branch" dataType="uk.co.strangeskies.modabi.schema.BindingNode<?, + ?, ?>" abstract="true"> + <inputSequence + name="configure" postInputType="uk.co.strangeskies.modabi.schema.BindingNodeConfigurator<?, + ?, java.lang.Object>" abstract="true"/> + + <data name="name"/> + <property + name="dataType" type="typeToken" optional="true"/> + + <property name="bindingStrategy" type="enum" + optional="true" dataType="uk.co.strangeskies.modabi.processing.BindingStrategy"/> + + <property name="bindingType" type="typeToken" + optional="true"/> + <property name="unbindingStrategy" + type="enum" optional="true" dataType="uk.co.strangeskies.modabi.processing.UnbindingStrategy"/> + + <property name="unbindingMethod" type="string" + optional="true" outMethod="getUnbindingMethodName"/> + + <property name="unbindingType" type="typeToken" + optional="true"/> + <property name="providedUnbindingMethodParameters" + type="list" optional="true" outMethod="getProvidedUnbindingMethodParameterNames" + inMethod="providedUnbindingMethodParameters"> + + <data name="element" type="qualifiedName"/> + + </property> + <property name="unbindingFactoryType" + type="typeToken" optional="true"/> + </model> + + <model name="input" baseModel="child" dataType="uk.co.strangeskies.modabi.schema.InputNode<?, + ?>" abstract="true"> + <inputSequence + name="configure" postInputType="uk.co.strangeskies.modabi.schema.InputNodeConfigurator<?, + ?>" abstract="true"/> + <data + name="name"/> + <property name="inMethod" + type="string" optional="true" outMethod="getInMethodName"/> + + <property name="inMethodChained" type="boolean" + optional="true"/> + <property name="inMethodCast" + type="boolean" optional="true"/> + <property + name="inMethodUnchecked" type="boolean" optional="true"/> + + </model> + <model name="bindingChild" + baseModel="input, binding" dataType="uk.co.strangeskies.modabi.schema.BindingChildNode<?, + ?, ?>" abstract="true"> + <inputSequence + name="configure" postInputType="uk.co.strangeskies.modabi.schema.BindingChildNodeConfigurator<?, + ?, java.lang.Object>" abstract="true"/> + + <data name="name"/> + <property + name="extensible" type="boolean" optional="true"/> + + <property name="ordered" type="boolean" optional="true"/> + + <property name="occurrences" type="range" optional="true"/> + + <property name="outMethod" type="string" optional="true" + outMethod="getOutMethodName"/> + <property + name="outMethodIterable" type="boolean" optional="true"/> + + <property name="outMethodCast" type="boolean" + optional="true"/> + <property name="outMethodUnchecked" + type="boolean" optional="true"/> + </model> + + <model name="choice" baseModel="child" dataType="uk.co.strangeskies.modabi.schema.ChoiceNode"> + + <inputSequence name="configure" inMethod="choice"/> + + <data name="name"/> + <property + name="mandatory" type="boolean" optional="true"/> + + </model> + <model name="sequence" + baseModel="child" dataType="uk.co.strangeskies.modabi.schema.SequenceNode"> + + <inputSequence name="configure" inMethod="sequence"/> + + </model> + <model name="inputSequence" + baseModel="input, child" dataType="uk.co.strangeskies.modabi.schema.InputSequenceNode"> + + <inputSequence name="configure" inMethod="inputSequence" + postInputType="uk.co.strangeskies.modabi.schema.InputSequenceNodeConfigurator"/> + + <data name="name"/> + </model> + + <model name="abstractModel" baseModel="binding" + dataType="uk.co.strangeskies.modabi.schema.AbstractComplexNode<?, + ?, ?>" abstract="true"> + <inputSequence + name="configure" postInputType="uk.co.strangeskies.modabi.schema.AbstractComplexNodeConfigurator<?, + ?, java.lang.Object>" abstract="true"/> + + <data name="name"/> + <property + name="baseModel" type="list" optional="true" outMethodUnchecked="true" + inMethodUnchecked="true"> + <data name="element" + type="reference" dataType="uk.co.strangeskies.modabi.schema.Model<?>"> + + <data name="targetModel" value="model" dataType="uk.co.strangeskies.modabi.schema.Model<uk.co.strangeskies.modabi.schema.Model<?>>"/> + + <data name="targetId" value="name"/> + + </data> + </property> + + </model> + <model name="model" + baseModel="abstractModel" dataType="uk.co.strangeskies.modabi.schema.Model<?>" + bindingType="uk.co.strangeskies.modabi.schema.building.ModelBuilder"> + + <inputSequence name="configure" inMethodChained="true"> + + <data name="configure" outMethod="null" dataType="uk.co.strangeskies.modabi.schema.building.DataLoader" + bindingStrategy="PROVIDED"/> + </inputSequence> + + <data name="name" optional="false"/> + + </model> + <model name="abstractComplex" + baseModel="abstractModel, bindingChild" dataType="uk.co.strangeskies.modabi.schema.ComplexNode<?>" + abstract="true"> + <inputSequence name="addChild"/> + + <inputSequence name="configure" inMethod="complex" + inMethodChained="true" postInputType="uk.co.strangeskies.modabi.schema.ComplexNodeConfigurator<java.lang.Object>"/> + + <data name="name"/> + <data + name="inline" type="boolean" optional="true" valueResolution="REGISTRATION_TIME" + abstract="true"/> + </model> + <model + name="complex" baseModel="abstractComplex"> + <data + name="inline" optional="true" value="false"/> + </model> + + <model name="inline" baseModel="abstractComplex"> + + <data name="inline" optional="false" value="true"/> + + </model> + <model name="typedData" + baseModel="bindingChild" dataType="uk.co.strangeskies.modabi.schema.DataNode<?>" + abstract="true"> + <inputSequence name="addChild"/> + + <inputSequence name="configure" inMethod="data" + inMethodChained="true"/> + <property name="format" + type="enum" optional="true" valueResolution="REGISTRATION_TIME" + postInputType="uk.co.strangeskies.modabi.schema.DataNodeConfigurator" + dataType="uk.co.strangeskies.modabi.schema.DataNode.Format" + abstract="true"/> + <data name="name"/> + + <property name="type" type="reference" optional="true" + dataType="uk.co.strangeskies.modabi.schema.DataType<?>"> + + <data name="targetModel" valueResolution="REGISTRATION_TIME" + value="type"/> + <data name="targetId" + valueResolution="REGISTRATION_TIME" value="name"/> + + </property> + <property name="optional" + type="boolean" optional="true"/> + <property + name="nullIfOmitted" type="boolean" optional="true"/> + + <property name="valueResolution" type="enum" + optional="true" dataType="uk.co.strangeskies.modabi.ValueResolution"/> + + <property name="value" type="bufferedData" optional="true" + outMethod="providedValueBuffer" inMethod="provideValue"/> + + </model> + <model name="content" + baseModel="typedData"> + <data name="format" + optional="false" value="CONTENT"/> + </model> + + <model name="property" baseModel="typedData"> + + <data name="format" optional="false" value="PROPERTY"/> + + </model> + <model name="simple" + baseModel="typedData"> + <data name="format" + optional="false" value="SIMPLE"/> + </model> + + <model name="data" baseModel="typedData"> + + <data name="format" occurrences="0..0"/> + + </model> + <model name="type" baseModel="binding" + dataType="uk.co.strangeskies.modabi.schema.DataType<?>" + bindingType="uk.co.strangeskies.modabi.schema.building.DataTypeBuilder"> + + <inputSequence name="configure" inMethodChained="true"> + + <data name="configure" outMethod="null" dataType="uk.co.strangeskies.modabi.schema.building.DataLoader" + bindingStrategy="PROVIDED"/> + </inputSequence> + + <property name="private" type="boolean" optional="true" + inMethod="isPrivate"/> + <property name="baseType" + type="reference" optional="true" dataType="uk.co.strangeskies.modabi.schema.DataType<?>"> + + <data name="targetModel" value="type"/> + + <data name="targetId" value="name"/> + + </property> + </model> + + <model name="schema" dataType="uk.co.strangeskies.modabi.Schema" + bindingType="uk.co.strangeskies.modabi.SchemaBuilder"> + + <inputSequence name="configure" inMethodChained="true"/> + + <property name="name" type="qualifiedName" outMethod="getQualifiedName" + inMethod="qualifiedName"/> + <complex name="dependencies" + occurrences="0..1" dataType="java.util.Set<uk.co.strangeskies.modabi.Schema>"> + + <simple name="dependency" type="import" occurrences="0.." + outMethod="this" outMethodIterable="true" inMethod="add" dataType="uk.co.strangeskies.modabi.Schema"> + + <data name="import"> + <data + name="targetModel" value="schema"/> + <data + name="targetId" value="name"/> + </data> + + <data name="dataTypes" type="include" inMethod="null" + bindingType="uk.co.strangeskies.modabi.Schema"> + + <inputSequence name="getDataTypes" inMethodChained="true"/> + + <data name="targetModel" value="type"/> + + </data> + <data name="models" + type="include" inMethod="null" bindingType="uk.co.strangeskies.modabi.Schema"> + + <inputSequence name="getModels" inMethodChained="true"/> + + <data name="targetModel" value="model"/> + + </data> + </simple> + + </complex> + <complex name="types" + occurrences="0..1" outMethod="getDataTypes" dataType="@uk.co.strangeskies.reflection.TypeToken.Infer + java.util.Set<?>" bindingType="@uk.co.strangeskies.reflection.TypeToken.Infer + java.util.LinkedHashSet<?>"> + + <complex name="type" baseModel="type" occurrences="0.." + outMethod="this" outMethodIterable="true" dataType="uk.co.strangeskies.modabi.schema.DataType<?>"/> + + </complex> + <complex name="models" + occurrences="0..1" dataType="@uk.co.strangeskies.reflection.TypeToken.Infer + java.util.Set<?>" bindingType="@uk.co.strangeskies.reflection.TypeToken.Infer + java.util.LinkedHashSet<?>"> + + <complex baseModel="model" occurrences="0.." + outMethod="this" outMethodIterable="true" inMethod="add"/> + + </complex> + <inputSequence + name="create" inMethodChained="true"/> + </model> + + </models> +</schema> + + + + + testy +testy2 +java.util.List<java.lang.Integer> + +java.util.Map<java.lang.String, java.lang.Integer> + + ~# { E#41063 = E#41063, E#41063 = java.util.Map.java.util.Map.Entry<K#40890, + V#40894>, E#41063 <: java.lang.Object, E#41063 + <: java.lang.Object, E#40892 = E#40892, E#40892 = java.util.Map.java.util.Map.Entry<K#40890, + V#40894>, E#40892 <: java.lang.Object, E#40892 + <: java.lang.Object, E#41065 = E#41065, E#41065 = java.util.Map.java.util.Map.Entry<K#40890, + V#40894>, E#41065 <: java.lang.Object, E#41065 + <: java.lang.Object, K#40911 = K#40911, K#40911 = java.lang.String, + K#40911 = K#40896, K#40911 = K#40883, K#40911 = K#40916, K#40911 + = K#40927, K#40911 = K#40890, K#40911 = K#40906, K#40911 = + K#2846, K#40911 <: java.lang.Object, K#40911 <: + java.lang.Object, K#40911 <: INF#40926, K#40911 <: + java.lang.String, K#40911 <: INF#40881, K#40911 <: + INF#40904, INF#40928 = java.lang.Object, INF#40928 = INF#40928, + INF#40928 <: java.lang.Object, V#2847 <: INF#40928, + V#40895 <: INF#40928, V#40893 <: INF#40928, + java.lang.Integer <: INF#40928, V#40915 <: INF#40928, + V#40913 <: INF#40928, V#40894 <: INF#40928, + V#40914 <: INF#40928, V#40925 <: INF#40928, + V#40895 = V#2847, V#40895 = V#40895, V#40895 = V#40893, V#40895 + = java.lang.Integer, V#40895 = V#40915, V#40895 = V#40913, + V#40895 = V#40914, V#40895 = V#40925, V#40895 = V#40894, V#40895 + <: java.lang.Object, V#40895 <: java.lang.Object, + V#40895 <: INF#40928, V#40895 <: java.lang.Integer, + V#40895 <: INF#40885, V#40895 <: INF#40908, + E#40907 = E#40907, E#40907 = java.util.Map.java.util.Map.Entry<K#40890, + V#40894>, E#40907 <: java.lang.Object, E#40907 + <: java.util.Map.java.util.Map.Entry<K#40916, + V#40913>, E#40907 <: java.lang.Object, E#40907 + <: java.util.Map.java.util.Map.Entry<K#40927, + V#40925>, E#40907 <: java.util.Map.java.util.Map.Entry<K#40906, + V#40915>, E#40897 = E#40897, E#40897 = java.util.Map.java.util.Map.Entry<K#40890, + V#40894>, E#40897 <: java.lang.Object, E#40897 + <: java.lang.Object, E#2861 = E#2861, E#2861 = java.util.Map.java.util.Map.Entry<java.lang.String, + java.lang.Integer>, E#2861 = java.util.Map.java.util.Map.Entry<K#2846, + java.lang.Integer>, E#2861 = java.util.Map.java.util.Map.Entry<K#2846, + V#2847>, E#2861 <: java.lang.Object, E#2861 + <: java.lang.Object, E#41064 = E#41064, E#41064 = java.util.Map.java.util.Map.Entry<K#40890, + V#40894>, E#41064 <: java.lang.Object, E#41064 + <: java.lang.Object, K#40927 = K#40911, K#40927 = java.lang.String, + K#40927 = K#40896, K#40927 = K#40883, K#40927 = K#40916, K#40927 + = K#40927, K#40927 = K#40890, K#40927 = K#40906, K#40927 = + K#2846, K#40927 <: java.lang.Object, K#40927 <: + java.lang.Object, K#40927 <: INF#40926, K#40927 <: + java.lang.String, K#40927 <: INF#40881, K#40927 <: + INF#40904, K#40906 = K#40911, K#40906 = java.lang.String, + K#40906 = K#40896, K#40906 = K#40883, K#40906 = K#40916, K#40906 + = K#40927, K#40906 = K#40890, K#40906 = K#40906, K#40906 = + K#2846, K#40906 <: java.lang.Object, K#40906 <: + java.lang.Object, K#40906 <: INF#40926, K#40906 <: + java.lang.String, K#40906 <: INF#40881, K#40906 <: + INF#40904, E#40909 = java.util.Map.java.util.Map.Entry<java.lang.String, + V#40914>, E#40909 = java.util.Map.java.util.Map.Entry<K#40911, + V#40914>, E#40909 = E#40909, E#40909 <: java.lang.Object, + E#40909 <: java.lang.Object, E#40910 = java.util.Map.java.util.Map.Entry<java.lang.String, + V#40914>, E#40910 = java.util.Map.java.util.Map.Entry<K#40911, + V#40914>, E#40910 = E#40910, E#40910 <: java.lang.Object, + E#40910 <: java.lang.Object, java.util.Map.java.util.Map.Entry<K#40916, + V#40913> <: E#40910, E#2864 = java.util.Map.java.util.Map.Entry<java.lang.String, + java.lang.Integer>, E#2864 = java.util.Map.java.util.Map.Entry<K#2846, + java.lang.Integer>, E#2864 = E#2864, E#2864 = java.util.Map.java.util.Map.Entry<K#2846, + V#2847>, E#2864 <: java.lang.Object, E#2864 + <: java.lang.Object, java.util.Map.java.util.Map.Entry<K#40927, + V#40925> <: E#2864, V#40894 = V#2847, V#40894 + = V#40895, V#40894 = V#40893, V#40894 = java.lang.Integer, + V#40894 = V#40915, V#40894 = V#40913, V#40894 = V#40914, V#40894 + = V#40925, V#40894 = V#40894, V#40894 <: java.lang.Object, + V#40894 <: java.lang.Object, V#40894 <: INF#40928, + V#40894 <: java.lang.Integer, V#40894 <: INF#40885, + V#40894 <: INF#40908, V#40914 = V#2847, V#40914 = V#40895, + V#40914 = V#40893, V#40914 = java.lang.Integer, V#40914 = + V#40915, V#40914 = V#40913, V#40914 = V#40914, V#40914 = V#40925, + V#40914 = V#40894, V#40914 <: java.lang.Object, V#40914 + <: java.lang.Object, V#40914 <: INF#40928, V#40914 + <: java.lang.Integer, V#40914 <: INF#40885, + V#40914 <: INF#40908, E#40917 = java.util.Map.java.util.Map.Entry<java.lang.String, + V#40914>, E#40917 = E#40917, E#40917 = java.util.Map.java.util.Map.Entry<K#40911, + V#40914>, E#40917 <: java.lang.Object, E#40917 + <: java.lang.Object, INF#40881 = java.lang.String, + INF#40881 = INF#40881, INF#40881 <: java.lang.Object, + K#40911 <: INF#40881, java.lang.String <: INF#40881, + K#40896 <: INF#40881, K#40883 <: INF#40881, + K#40916 <: INF#40881, K#40927 <: INF#40881, + K#40890 <: INF#40881, K#40906 <: INF#40881, + K#2846 <: INF#40881, E#40886 = E#40886, E#40886 = java.util.Map.java.util.Map.Entry<K#40890, + V#40894>, E#40886 <: java.lang.Object, E#40886 + <: java.lang.Object, E#40889 = E#40889, E#40889 = java.util.Map.java.util.Map.Entry<K#40890, + V#40894>, E#40889 <: java.lang.Object, E#40889 + <: java.lang.Object, java.util.Map.java.util.Map.Entry<K#40896, + V#40893> <: E#40889, V#2847 = V#2847, V#2847 + = V#40895, V#2847 = V#40893, V#2847 = java.lang.Integer, V#2847 + = V#40915, V#2847 = V#40913, V#2847 = V#40914, V#2847 = V#40925, + V#2847 = V#40894, V#2847 <: java.lang.Object, V#2847 + <: java.lang.Object, V#2847 <: INF#40928, V#2847 + <: java.lang.Integer, V#2847 <: INF#40885, V#2847 + <: INF#40908, K#40883 = K#40911, K#40883 = java.lang.String, + K#40883 = K#40896, K#40883 = K#40883, K#40883 = K#40916, K#40883 + = K#40927, K#40883 = K#40890, K#40883 = K#40906, K#40883 = + K#2846, K#40883 <: java.lang.Object, K#40883 <: + java.lang.Object, K#40883 <: INF#40926, K#40883 <: + java.lang.String, K#40883 <: INF#40881, K#40883 <: + INF#40904, K#40916 = K#40911, K#40916 = java.lang.String, + K#40916 = K#40896, K#40916 = K#40883, K#40916 = K#40916, K#40916 + = K#40927, K#40916 = K#40890, K#40916 = K#40906, K#40916 = + K#2846, K#40916 <: java.lang.Object, K#40916 <: + java.lang.Object, K#40916 <: INF#40926, K#40916 <: + java.lang.String, K#40916 <: INF#40881, K#40916 <: + INF#40904, E#41066 = java.util.Map.java.util.Map.Entry<K#40890, + V#40894>, E#41066 = E#41066, E#41066 <: java.lang.Object, + E#41066 <: java.lang.Object, INF#40904 = java.lang.String, + INF#40904 = INF#40904, INF#40904 <: java.lang.Object, + K#40911 <: INF#40904, java.lang.String <: INF#40904, + K#40896 <: INF#40904, K#40883 <: INF#40904, + K#40916 <: INF#40904, K#40927 <: INF#40904, + K#40890 <: INF#40904, K#40906 <: INF#40904, + K#2846 <: INF#40904, E#40888 = java.util.Map.java.util.Map.Entry<K#40890, + V#40894>, E#40888 = E#40888, E#40888 <: java.lang.Object, + E#40888 <: java.lang.Object, E#40888 <: java.util.Map.java.util.Map.Entry<K#40896, + V#40893>, E#40888 <: java.util.Map.java.util.Map.Entry<K#40883, + V#40895>, INF#40908 = java.lang.Integer, INF#40908 + = INF#40908, INF#40908 <: java.lang.Object, V#2847 + <: INF#40908, V#40895 <: INF#40908, V#40893 + <: INF#40908, java.lang.Integer <: INF#40908, + V#40915 <: INF#40908, V#40913 <: INF#40908, + V#40914 <: INF#40908, V#40925 <: INF#40908, + V#40894 <: INF#40908, V#40925 = V#2847, V#40925 = V#40895, + V#40925 = V#40893, V#40925 = java.lang.Integer, V#40925 = + V#40915, V#40925 = V#40913, V#40925 = V#40914, V#40925 = V#40925, + V#40925 = V#40894, V#40925 <: java.lang.Object, V#40925 + <: java.lang.Object, V#40925 <: INF#40928, V#40925 + <: java.lang.Integer, V#40925 <: INF#40885, + V#40925 <: INF#40908, INF#40926 = java.lang.Object, + INF#40926 = INF#40926, INF#40926 <: java.lang.Object, + K#40911 <: INF#40926, java.lang.String <: INF#40926, + K#40896 <: INF#40926, K#40883 <: INF#40926, + K#40916 <: INF#40926, K#40927 <: INF#40926, + K#40890 <: INF#40926, K#40906 <: INF#40926, + K#2846 <: INF#40926, K#40896 = K#40911, K#40896 = java.lang.String, + K#40896 = K#40896, K#40896 = K#40883, K#40896 = K#40916, K#40896 + = K#40927, K#40896 = K#40890, K#40896 = K#40906, K#40896 = + K#2846, K#40896 <: java.lang.Object, K#40896 <: + java.lang.Object, K#40896 <: INF#40926, K#40896 <: + java.lang.String, K#40896 <: INF#40881, K#40896 <: + INF#40904, E#2863 = E#2863, E#2863 = java.util.Map.java.util.Map.Entry<java.lang.String, + java.lang.Integer>, E#2863 = java.util.Map.java.util.Map.Entry<K#2846, + java.lang.Integer>, E#2863 = java.util.Map.java.util.Map.Entry<K#2846, + V#2847>, E#2863 <: java.lang.Object, E#2863 + <: java.lang.Object, E#40891 = E#40891, E#40891 = java.util.Map.java.util.Map.Entry<K#40890, + V#40894>, E#40891 <: java.lang.Object, E#40891 + <: java.lang.Object, V#40893 = V#2847, V#40893 = V#40895, + V#40893 = V#40893, V#40893 = java.lang.Integer, V#40893 = + V#40915, V#40893 = V#40913, V#40893 = V#40914, V#40893 = V#40925, + V#40893 = V#40894, V#40893 <: java.lang.Object, V#40893 + <: java.lang.Object, V#40893 <: INF#40928, V#40893 + <: java.lang.Integer, V#40893 <: INF#40885, + V#40893 <: INF#40908, E#40884 = java.util.Map.java.util.Map.Entry<K#40890, + V#40894>, E#40884 = E#40884, E#40884 <: java.lang.Object, + E#40884 <: java.lang.Object, E#40905 = java.util.Map.java.util.Map.Entry<java.lang.String, + V#40914>, E#40905 = java.util.Map.java.util.Map.Entry<K#40911, + V#40914>, E#40905 = E#40905, E#40905 <: java.lang.Object, + E#40905 <: java.lang.Object, E#40882 = java.util.Map.java.util.Map.Entry<K#40890, + V#40894>, E#40882 = E#40882, E#40882 <: java.lang.Object, + E#40882 <: java.lang.Object, V#40913 = V#2847, V#40913 + = V#40895, V#40913 = V#40893, V#40913 = java.lang.Integer, + V#40913 = V#40915, V#40913 = V#40913, V#40913 = V#40914, V#40913 + = V#40925, V#40913 = V#40894, V#40913 <: java.lang.Object, + V#40913 <: java.lang.Object, V#40913 <: INF#40928, + V#40913 <: java.lang.Integer, V#40913 <: INF#40885, + V#40913 <: INF#40908, K#2846 = K#40911, K#2846 = java.lang.String, + K#2846 = K#40896, K#2846 = K#40883, K#2846 = K#40916, K#2846 + = K#40927, K#2846 = K#40890, K#2846 = K#40906, K#2846 = K#2846, + K#2846 <: java.lang.Object, K#2846 <: java.lang.Object, + K#2846 <: INF#40926, K#2846 <: java.lang.String, + K#2846 <: INF#40881, K#2846 <: INF#40904, E#2860 + = E#2860, E#2860 = java.util.Map.java.util.Map.Entry<java.lang.String, + java.lang.Integer>, E#2860 = java.util.Map.java.util.Map.Entry<K#2846, + java.lang.Integer>, E#2860 = java.util.Map.java.util.Map.Entry<K#2846, + V#2847>, E#2860 <: java.lang.Object, E#2860 + <: java.lang.Object, E#40898 = java.util.Map.java.util.Map.Entry<K#40890, + V#40894>, E#40898 = E#40898, E#40898 <: java.lang.Object, + E#40898 <: java.lang.Object, E#40912 = java.util.Map.java.util.Map.Entry<java.lang.String, + V#40914>, E#40912 = java.util.Map.java.util.Map.Entry<K#40911, + V#40914>, E#40912 = E#40912, E#40912 <: java.lang.Object, + E#40912 <: java.lang.Object, E#40887 = java.util.Map.java.util.Map.Entry<K#40890, + V#40894>, E#40887 = E#40887, E#40887 <: java.lang.Object, + E#40887 <: java.lang.Object, K#40890 = K#40911, K#40890 + = java.lang.String, K#40890 = K#40896, K#40890 = K#40883, + K#40890 = K#40916, K#40890 = K#40927, K#40890 = K#40890, K#40890 + = K#40906, K#40890 = K#2846, K#40890 <: java.lang.Object, + K#40890 <: java.lang.Object, K#40890 <: INF#40926, + K#40890 <: java.lang.String, K#40890 <: INF#40881, + K#40890 <: INF#40904, INF#40885 = java.lang.Integer, + INF#40885 = INF#40885, INF#40885 <: java.lang.Object, + V#2847 <: INF#40885, V#40895 <: INF#40885, V#40893 + <: INF#40885, java.lang.Integer <: INF#40885, + V#40915 <: INF#40885, V#40913 <: INF#40885, + V#40894 <: INF#40885, V#40925 <: INF#40885, + V#40914 <: INF#40885, V#40915 = V#2847, V#40915 = V#40895, + V#40915 = V#40893, V#40915 = java.lang.Integer, V#40915 = + V#40915, V#40915 = V#40913, V#40915 = V#40914, V#40915 = V#40925, + V#40915 = V#40894, V#40915 <: java.lang.Object, V#40915 + <: java.lang.Object, V#40915 <: INF#40928, V#40915 + <: java.lang.Integer, V#40915 <: INF#40885, + V#40915 <: INF#40908, E#40899 = java.util.Map.java.util.Map.Entry<K#40890, + V#40894>, E#40899 = E#40899, E#40899 <: java.lang.Object, + E#40899 <: java.lang.Object, E#2862 = java.util.Map.java.util.Map.Entry<java.lang.String, + java.lang.Integer>, E#2862 = java.util.Map.java.util.Map.Entry<K#2846, + java.lang.Integer>, E#2862 = java.util.Map.java.util.Map.Entry<K#2846, + V#2847>, E#2862 = E#2862, E#2862 <: java.lang.Object, + E#2862 <: java.lang.Object, true } +<?xml version="1.0" + ?> +<stringIntMap xmlns="http://modabi.strangeskies.co.uk/2014-01-01/"> + + <entry key="third"> + <value>3</value> + + </entry> + <entry key="first"> + + <value>1</value> + </entry> + + <entry key="second"> + <value>2</value> + + </entry> +</stringIntMap> + +java.util.Map<java.util.List<byte[]>, + CAP#3809 extends java.util.Map<java.lang.String, java.lang.Integer>> + + + \ No newline at end of file diff --git a/uk.co.strangeskies.modabi.fx/schema/ScriptingSchema.xml b/uk.co.strangeskies.modabi.fx/schema/ScriptingSchema.xml deleted file mode 100644 index e1904626..00000000 --- a/uk.co.strangeskies.modabi.fx/schema/ScriptingSchema.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/uk.co.strangeskies.modabi.io.json.provider/.classpath b/uk.co.strangeskies.modabi.io.json/.classpath similarity index 100% rename from uk.co.strangeskies.modabi.io.json.provider/.classpath rename to uk.co.strangeskies.modabi.io.json/.classpath diff --git a/uk.co.strangeskies.modabi.io.xml.provider/.project b/uk.co.strangeskies.modabi.io.json/.project similarity index 89% rename from uk.co.strangeskies.modabi.io.xml.provider/.project rename to uk.co.strangeskies.modabi.io.json/.project index 03fc516a..f8a6ddcd 100644 --- a/uk.co.strangeskies.modabi.io.xml.provider/.project +++ b/uk.co.strangeskies.modabi.io.json/.project @@ -1,6 +1,6 @@ - uk.co.strangeskies.modabi.io.xml.provider + uk.co.strangeskies.modabi.io.json diff --git a/uk.co.strangeskies.modabi.io.json.provider/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs b/uk.co.strangeskies.modabi.io.json/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs similarity index 100% rename from uk.co.strangeskies.modabi.io.json.provider/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs rename to uk.co.strangeskies.modabi.io.json/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs diff --git a/uk.co.strangeskies.modabi.io.json.provider/.settings/org.eclipse.jdt.core.prefs b/uk.co.strangeskies.modabi.io.json/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from uk.co.strangeskies.modabi.io.json.provider/.settings/org.eclipse.jdt.core.prefs rename to uk.co.strangeskies.modabi.io.json/.settings/org.eclipse.jdt.core.prefs diff --git a/uk.co.strangeskies.modabi.io.json.provider/bnd.bnd b/uk.co.strangeskies.modabi.io.json/bnd.bnd similarity index 100% rename from uk.co.strangeskies.modabi.io.json.provider/bnd.bnd rename to uk.co.strangeskies.modabi.io.json/bnd.bnd diff --git a/uk.co.strangeskies.modabi.io.json.provider/src/uk/co/strangeskies/modabi/io/json/impl/JsonSource.java b/uk.co.strangeskies.modabi.io.json/src/uk/co/strangeskies/modabi/io/json/impl/JsonSource.java similarity index 100% rename from uk.co.strangeskies.modabi.io.json.provider/src/uk/co/strangeskies/modabi/io/json/impl/JsonSource.java rename to uk.co.strangeskies.modabi.io.json/src/uk/co/strangeskies/modabi/io/json/impl/JsonSource.java diff --git a/uk.co.strangeskies.modabi.io.json.provider/src/uk/co/strangeskies/modabi/io/json/impl/JsonTarget.java b/uk.co.strangeskies.modabi.io.json/src/uk/co/strangeskies/modabi/io/json/impl/JsonTarget.java similarity index 100% rename from uk.co.strangeskies.modabi.io.json.provider/src/uk/co/strangeskies/modabi/io/json/impl/JsonTarget.java rename to uk.co.strangeskies.modabi.io.json/src/uk/co/strangeskies/modabi/io/json/impl/JsonTarget.java diff --git a/uk.co.strangeskies.modabi.io.json.provider/src/uk/co/strangeskies/modabi/io/json/impl/packageinfo b/uk.co.strangeskies.modabi.io.json/src/uk/co/strangeskies/modabi/io/json/impl/packageinfo similarity index 100% rename from uk.co.strangeskies.modabi.io.json.provider/src/uk/co/strangeskies/modabi/io/json/impl/packageinfo rename to uk.co.strangeskies.modabi.io.json/src/uk/co/strangeskies/modabi/io/json/impl/packageinfo diff --git a/uk.co.strangeskies.modabi.io.json.provider/test/uk/co/strangeskies/modabi/io/json/test/JsonTest.java b/uk.co.strangeskies.modabi.io.json/test/uk/co/strangeskies/modabi/io/json/test/JsonTest.java similarity index 100% rename from uk.co.strangeskies.modabi.io.json.provider/test/uk/co/strangeskies/modabi/io/json/test/JsonTest.java rename to uk.co.strangeskies.modabi.io.json/test/uk/co/strangeskies/modabi/io/json/test/JsonTest.java diff --git a/uk.co.strangeskies.modabi.io.xml.provider/.classpath b/uk.co.strangeskies.modabi.io.xml/.classpath similarity index 100% rename from uk.co.strangeskies.modabi.io.xml.provider/.classpath rename to uk.co.strangeskies.modabi.io.xml/.classpath diff --git a/uk.co.strangeskies.modabi.io.yaml.provider/.project b/uk.co.strangeskies.modabi.io.xml/.project similarity index 89% rename from uk.co.strangeskies.modabi.io.yaml.provider/.project rename to uk.co.strangeskies.modabi.io.xml/.project index ce72cb78..6f23121a 100644 --- a/uk.co.strangeskies.modabi.io.yaml.provider/.project +++ b/uk.co.strangeskies.modabi.io.xml/.project @@ -1,6 +1,6 @@ - uk.co.strangeskies.modabi.io.yaml.provider + uk.co.strangeskies.modabi.io.xml diff --git a/uk.co.strangeskies.modabi.io.xml.provider/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs b/uk.co.strangeskies.modabi.io.xml/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs similarity index 100% rename from uk.co.strangeskies.modabi.io.xml.provider/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs rename to uk.co.strangeskies.modabi.io.xml/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs diff --git a/uk.co.strangeskies.modabi.io.xml.provider/.settings/org.eclipse.jdt.core.prefs b/uk.co.strangeskies.modabi.io.xml/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from uk.co.strangeskies.modabi.io.xml.provider/.settings/org.eclipse.jdt.core.prefs rename to uk.co.strangeskies.modabi.io.xml/.settings/org.eclipse.jdt.core.prefs diff --git a/uk.co.strangeskies.modabi.io.xml.provider/bnd.bnd b/uk.co.strangeskies.modabi.io.xml/bnd.bnd similarity index 100% rename from uk.co.strangeskies.modabi.io.xml.provider/bnd.bnd rename to uk.co.strangeskies.modabi.io.xml/bnd.bnd diff --git a/uk.co.strangeskies.modabi.io.xml.provider/src/uk/co/strangeskies/modabi/io/xml/NamespaceStack.java b/uk.co.strangeskies.modabi.io.xml/src/uk/co/strangeskies/modabi/io/xml/NamespaceStack.java similarity index 100% rename from uk.co.strangeskies.modabi.io.xml.provider/src/uk/co/strangeskies/modabi/io/xml/NamespaceStack.java rename to uk.co.strangeskies.modabi.io.xml/src/uk/co/strangeskies/modabi/io/xml/NamespaceStack.java diff --git a/uk.co.strangeskies.modabi.io.xml.provider/src/uk/co/strangeskies/modabi/io/xml/XmlInterface.java b/uk.co.strangeskies.modabi.io.xml/src/uk/co/strangeskies/modabi/io/xml/XmlInterface.java similarity index 100% rename from uk.co.strangeskies.modabi.io.xml.provider/src/uk/co/strangeskies/modabi/io/xml/XmlInterface.java rename to uk.co.strangeskies.modabi.io.xml/src/uk/co/strangeskies/modabi/io/xml/XmlInterface.java diff --git a/uk.co.strangeskies.modabi.io.xml.provider/src/uk/co/strangeskies/modabi/io/xml/XmlSource.java b/uk.co.strangeskies.modabi.io.xml/src/uk/co/strangeskies/modabi/io/xml/XmlSource.java similarity index 100% rename from uk.co.strangeskies.modabi.io.xml.provider/src/uk/co/strangeskies/modabi/io/xml/XmlSource.java rename to uk.co.strangeskies.modabi.io.xml/src/uk/co/strangeskies/modabi/io/xml/XmlSource.java diff --git a/uk.co.strangeskies.modabi.io.xml.provider/src/uk/co/strangeskies/modabi/io/xml/XmlTarget.java b/uk.co.strangeskies.modabi.io.xml/src/uk/co/strangeskies/modabi/io/xml/XmlTarget.java similarity index 100% rename from uk.co.strangeskies.modabi.io.xml.provider/src/uk/co/strangeskies/modabi/io/xml/XmlTarget.java rename to uk.co.strangeskies.modabi.io.xml/src/uk/co/strangeskies/modabi/io/xml/XmlTarget.java diff --git a/uk.co.strangeskies.modabi.io.xml.provider/src/uk/co/strangeskies/modabi/io/xml/packageinfo b/uk.co.strangeskies.modabi.io.xml/src/uk/co/strangeskies/modabi/io/xml/packageinfo similarity index 100% rename from uk.co.strangeskies.modabi.io.xml.provider/src/uk/co/strangeskies/modabi/io/xml/packageinfo rename to uk.co.strangeskies.modabi.io.xml/src/uk/co/strangeskies/modabi/io/xml/packageinfo diff --git a/uk.co.strangeskies.modabi.io.xml.provider/test/uk/co/strangeskies/modabi/io/xml/test/XmlTest.java b/uk.co.strangeskies.modabi.io.xml/test/uk/co/strangeskies/modabi/io/xml/test/XmlTest.java similarity index 100% rename from uk.co.strangeskies.modabi.io.xml.provider/test/uk/co/strangeskies/modabi/io/xml/test/XmlTest.java rename to uk.co.strangeskies.modabi.io.xml/test/uk/co/strangeskies/modabi/io/xml/test/XmlTest.java diff --git a/uk.co.strangeskies.modabi.io.yaml.provider/.classpath b/uk.co.strangeskies.modabi.io.yaml/.classpath similarity index 100% rename from uk.co.strangeskies.modabi.io.yaml.provider/.classpath rename to uk.co.strangeskies.modabi.io.yaml/.classpath diff --git a/uk.co.strangeskies.modabi.io.json.provider/.project b/uk.co.strangeskies.modabi.io.yaml/.project similarity index 89% rename from uk.co.strangeskies.modabi.io.json.provider/.project rename to uk.co.strangeskies.modabi.io.yaml/.project index 0698893b..597695b7 100644 --- a/uk.co.strangeskies.modabi.io.json.provider/.project +++ b/uk.co.strangeskies.modabi.io.yaml/.project @@ -1,6 +1,6 @@ - uk.co.strangeskies.modabi.io.json.provider + uk.co.strangeskies.modabi.io.yaml diff --git a/uk.co.strangeskies.modabi.io.yaml.provider/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs b/uk.co.strangeskies.modabi.io.yaml/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs similarity index 100% rename from uk.co.strangeskies.modabi.io.yaml.provider/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs rename to uk.co.strangeskies.modabi.io.yaml/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs diff --git a/uk.co.strangeskies.modabi.io.yaml.provider/.settings/org.eclipse.jdt.core.prefs b/uk.co.strangeskies.modabi.io.yaml/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from uk.co.strangeskies.modabi.io.yaml.provider/.settings/org.eclipse.jdt.core.prefs rename to uk.co.strangeskies.modabi.io.yaml/.settings/org.eclipse.jdt.core.prefs diff --git a/uk.co.strangeskies.modabi.io.yaml.provider/bnd.bnd b/uk.co.strangeskies.modabi.io.yaml/bnd.bnd similarity index 100% rename from uk.co.strangeskies.modabi.io.yaml.provider/bnd.bnd rename to uk.co.strangeskies.modabi.io.yaml/bnd.bnd diff --git a/uk.co.strangeskies.modabi.run/bnd.bnd b/uk.co.strangeskies.modabi.run/bnd.bnd index 83ee39f4..a3d0d15e 100644 --- a/uk.co.strangeskies.modabi.run/bnd.bnd +++ b/uk.co.strangeskies.modabi.run/bnd.bnd @@ -9,7 +9,7 @@ Bundle-Name: Modabi :: Run uk.co.strangeskies.modabi.benchmarks;version=project,\ uk.co.strangeskies.modabi.core.api;version=project,\ uk.co.strangeskies.modabi.core.provider;version=project,\ - uk.co.strangeskies.modabi.io.xml.provider;version=project + uk.co.strangeskies.modabi.io.xml;version=project -includeresource: \ META-INF/modabi=schemata diff --git a/uk.co.strangeskies.modabi.scripting.provider/bnd.bnd b/uk.co.strangeskies.modabi.scripting.provider/bnd.bnd deleted file mode 100644 index 5297a21d..00000000 --- a/uk.co.strangeskies.modabi.scripting.provider/bnd.bnd +++ /dev/null @@ -1,26 +0,0 @@ -Bundle-Name: Modabi :: Scripting :: Provider -Bundle-Description: \ - This package contains a schema provider for loading scripts, \ - and for adding scripting integration support for other schemata.\ -\ - ${modabi-description} - --runee: JavaSE-1.8 - --pluginpath: \ - ${pluginpath.modabi} - --plugin: \ - uk.co.strangeskies.modabi.bnd.xml.ModabiXmlRegistration - --buildpath: \ - uk.co.strangeskies.modabi.core.api;version=project,\ - ${ss;utilities},\ - ${ss;scripting.management} - --includeresource: \ - META-INF/modabi=schemata - --runfw: org.eclipse.osgi - -Export-Package: uk.co.strangeskies.modabi.scripting diff --git a/uk.co.strangeskies.modabi.scripting.provider/schemata/ScriptingSchema.xml b/uk.co.strangeskies.modabi.scripting.provider/schemata/ScriptingSchema.xml deleted file mode 100644 index 7c0e49bf..00000000 --- a/uk.co.strangeskies.modabi.scripting.provider/schemata/ScriptingSchema.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - BaseSchema - - - - - - - - - - - - - - - diff --git a/uk.co.strangeskies.modabi.scripting.provider/.classpath b/uk.co.strangeskies.modabi.scripting/.classpath similarity index 100% rename from uk.co.strangeskies.modabi.scripting.provider/.classpath rename to uk.co.strangeskies.modabi.scripting/.classpath diff --git a/uk.co.strangeskies.modabi.scripting.provider/.project b/uk.co.strangeskies.modabi.scripting/.project similarity index 89% rename from uk.co.strangeskies.modabi.scripting.provider/.project rename to uk.co.strangeskies.modabi.scripting/.project index a245c45b..99e958a8 100644 --- a/uk.co.strangeskies.modabi.scripting.provider/.project +++ b/uk.co.strangeskies.modabi.scripting/.project @@ -1,6 +1,6 @@ - uk.co.strangeskies.modabi.scripting.provider + uk.co.strangeskies.modabi.scripting diff --git a/uk.co.strangeskies.modabi.scripting.provider/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs b/uk.co.strangeskies.modabi.scripting/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs similarity index 100% rename from uk.co.strangeskies.modabi.scripting.provider/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs rename to uk.co.strangeskies.modabi.scripting/.settings/gradle/org.springsource.ide.eclipse.gradle.core.prefs diff --git a/uk.co.strangeskies.modabi.scripting.provider/.settings/org.eclipse.jdt.core.prefs b/uk.co.strangeskies.modabi.scripting/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from uk.co.strangeskies.modabi.scripting.provider/.settings/org.eclipse.jdt.core.prefs rename to uk.co.strangeskies.modabi.scripting/.settings/org.eclipse.jdt.core.prefs diff --git a/uk.co.strangeskies.modabi.scripting/bnd.bnd b/uk.co.strangeskies.modabi.scripting/bnd.bnd new file mode 100644 index 00000000..7a983a4e --- /dev/null +++ b/uk.co.strangeskies.modabi.scripting/bnd.bnd @@ -0,0 +1,25 @@ +Bundle-Name: Modabi - FX +Bundle-Description: \ + This package provides UI components for manipulating Java \ + objects by way of a given schema binding, built on JavaFX.\ +\ + ${modabi-description} + +-runee: JavaSE-1.8 + +-buildpath: \ + osgi.enroute.base.api,\ + ${ss;utilities},\ + ${ss;scripting.management},\ + uk.co.strangeskies.modabi.core.api;version=project + +Export-Package: uk.co.strangeskies.modabi.fx + +-pluginpath: \ + ${pluginpath.modabi} + +-plugin: \ + uk.co.strangeskies.modabi.bnd.xml.ModabiXmlRegistration + +-includeresource: \ + META-INF/modabi=schemata diff --git a/uk.co.strangeskies.modabi.scripting/schemata/ScriptingSchema.xml b/uk.co.strangeskies.modabi.scripting/schemata/ScriptingSchema.xml new file mode 100644 index 00000000..58bcb79e --- /dev/null +++ b/uk.co.strangeskies.modabi.scripting/schemata/ScriptingSchema.xml @@ -0,0 +1,28 @@ + + + + + BaseSchema + + + + + + + + + + + + + + + + + + + + + diff --git a/uk.co.strangeskies.modabi.scripting/src/uk/co/strangeskies/modabi/fx/ModabiFXTreeView.java b/uk.co.strangeskies.modabi.scripting/src/uk/co/strangeskies/modabi/fx/ModabiFXTreeView.java new file mode 100644 index 00000000..4a7633bc --- /dev/null +++ b/uk.co.strangeskies.modabi.scripting/src/uk/co/strangeskies/modabi/fx/ModabiFXTreeView.java @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2015 Elias N Vasylenko + * + * This file is part of uk.co.strangeskies.modabi.fx. + * + * uk.co.strangeskies.modabi.fx is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * uk.co.strangeskies.modabi.fx is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with uk.co.strangeskies.modabi.fx. If not, see . + */ +package uk.co.strangeskies.modabi.fx; + +public class ModabiFXTreeView { + +} diff --git a/uk.co.strangeskies.modabi.scripting/src/uk/co/strangeskies/modabi/fx/package-info.java b/uk.co.strangeskies.modabi.scripting/src/uk/co/strangeskies/modabi/fx/package-info.java new file mode 100644 index 00000000..eb23d2f5 --- /dev/null +++ b/uk.co.strangeskies.modabi.scripting/src/uk/co/strangeskies/modabi/fx/package-info.java @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2015 Elias N Vasylenko + * + * This file is part of uk.co.strangeskies.modabi.fx. + * + * uk.co.strangeskies.modabi.fx is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * uk.co.strangeskies.modabi.fx is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with uk.co.strangeskies.modabi.fx. If not, see . + */ +@org.osgi.annotation.versioning.Version("1.0.0") +package uk.co.strangeskies.modabi.fx;