├── .github └── workflows │ └── ant.yml ├── .gitignore ├── .idea ├── artifacts │ ├── collections_SNAPSHOT_jar.xml │ ├── collections_SNAPSHOT_sources_jar.xml │ ├── jdclare_SNAPSHOT_jar.xml │ ├── jdclare_SNAPSHOT_sources_jar.xml │ ├── transactions_SNAPSHOT_jar.xml │ └── transactions_SNAPSHOT_sources_jar.xml ├── bashsupport_project.xml ├── codeStyles │ ├── Project.xml │ └── codeStyleConfig.xml ├── compiler.xml ├── encodings.xml ├── inspectionProfiles │ └── Project_Default.xml ├── libraries │ ├── Maven__junit_junit_4_12.xml │ └── Maven__org_hamcrest_hamcrest_core_1_3.xml ├── misc.xml ├── modules.xml ├── runConfigurations │ ├── Draw_demo.xml │ ├── Echo_demo.xml │ ├── Hello_demo.xml │ ├── Sales_demo.xml │ └── workbench.xml └── vcs.xml ├── LICENSE ├── README.md ├── build.xml ├── build ├── 00-prep.sh ├── 01-getTools.sh ├── 02-makePoms.sh ├── 03-getDependencies.sh ├── 04-build.sh ├── 05-test.sh ├── 06-javadoc.sh ├── 07-publish.sh ├── build.iml └── build.sh ├── org.modelingvalue.collections.test ├── .classpath ├── .project ├── .settings │ └── org.eclipse.jdt.core.prefs ├── module_org.modelingvalue.collections.test.xml ├── org.modelingvalue.collections.test.iml └── src │ └── org │ └── modelingvalue │ └── collections │ └── test │ ├── AgeTest.java │ ├── DefaultMapTest.java │ ├── LambdaTest.java │ ├── ListTest.java │ ├── MapTest.java │ ├── QualifiedSetTest.java │ ├── SerializeTest.java │ └── SetTest.java ├── org.modelingvalue.collections ├── .classpath ├── .project ├── .settings │ └── org.eclipse.jdt.core.prefs ├── build.properties ├── description ├── module_org.modelingvalue.collections.xml ├── org.modelingvalue.collections.iml └── src │ ├── StructGenerator.java │ └── org │ └── modelingvalue │ └── collections │ ├── Collection.java │ ├── ContainingCollection.java │ ├── DefaultMap.java │ ├── Entry.java │ ├── List.java │ ├── Map.java │ ├── QualifiedDefaultSet.java │ ├── QualifiedSet.java │ ├── Set.java │ ├── StreamCollection.java │ ├── impl │ ├── CollectionImpl.java │ ├── DefaultMapImpl.java │ ├── EntryImpl.java │ ├── HashCollectionImpl.java │ ├── ListImpl.java │ ├── MapImpl.java │ ├── QualifiedDefaultSetImpl.java │ ├── QualifiedSetImpl.java │ ├── SetImpl.java │ ├── StreamCollectionImpl.java │ └── TreeCollectionImpl.java │ ├── struct │ ├── Struct.java │ ├── Struct0.java │ ├── Struct1.java │ ├── Struct10.java │ ├── Struct11.java │ ├── Struct12.java │ ├── Struct13.java │ ├── Struct14.java │ ├── Struct15.java │ ├── Struct16.java │ ├── Struct17.java │ ├── Struct18.java │ ├── Struct19.java │ ├── Struct2.java │ ├── Struct20.java │ ├── Struct21.java │ ├── Struct22.java │ ├── Struct23.java │ ├── Struct24.java │ ├── Struct3.java │ ├── Struct4.java │ ├── Struct5.java │ ├── Struct6.java │ ├── Struct7.java │ ├── Struct8.java │ ├── Struct9.java │ └── impl │ │ ├── Struct0Impl.java │ │ ├── Struct10Impl.java │ │ ├── Struct11Impl.java │ │ ├── Struct12Impl.java │ │ ├── Struct13Impl.java │ │ ├── Struct14Impl.java │ │ ├── Struct15Impl.java │ │ ├── Struct16Impl.java │ │ ├── Struct17Impl.java │ │ ├── Struct18Impl.java │ │ ├── Struct19Impl.java │ │ ├── Struct1Impl.java │ │ ├── Struct20Impl.java │ │ ├── Struct21Impl.java │ │ ├── Struct22Impl.java │ │ ├── Struct23Impl.java │ │ ├── Struct24Impl.java │ │ ├── Struct2Impl.java │ │ ├── Struct3Impl.java │ │ ├── Struct4Impl.java │ │ ├── Struct5Impl.java │ │ ├── Struct6Impl.java │ │ ├── Struct7Impl.java │ │ ├── Struct8Impl.java │ │ ├── Struct9Impl.java │ │ └── StructImpl.java │ └── util │ ├── Age.java │ ├── Concurrent.java │ ├── Context.java │ ├── ContextThread.java │ ├── Internable.java │ ├── LambdaReflection.java │ ├── Mergeable.java │ ├── Mergeables.java │ ├── NonLockingPrintWriter.java │ ├── NotMergeableException.java │ ├── Pair.java │ ├── QuadConsumer.java │ ├── QuadFunction.java │ ├── Quadruple.java │ ├── Reusable.java │ ├── SerializableBiConsumer.java │ ├── SerializableBiFunction.java │ ├── SerializableConsumer.java │ ├── SerializableFunction.java │ ├── SerializableRunnable.java │ ├── SerializableTriConsumer.java │ ├── SerializableTriFunction.java │ ├── StringUtil.java │ ├── TernaryOperator.java │ ├── TraceTimer.java │ ├── TriConsumer.java │ ├── TriFunction.java │ └── Triple.java ├── org.modelingvalue.dclare.test ├── .classpath ├── .project ├── .settings │ └── org.eclipse.jdt.core.prefs ├── module_org.modelingvalue.dclare.test.xml ├── module_org.modelingvalue.transactions.test.xml ├── org.modelingvalue.dclare.test.iml └── src │ └── org │ └── modelingvalue │ └── dclare │ └── test │ ├── DClass.java │ ├── DObject.java │ ├── DUniverse.java │ └── TransactionsTests.java ├── org.modelingvalue.dclare ├── .classpath ├── .project ├── .settings │ └── org.eclipse.jdt.core.prefs ├── module_org.modelingvalue.dclare.xml ├── module_org.modelingvalue.transactions.xml ├── org.modelingvalue.dclare.iml └── src │ └── org │ └── modelingvalue │ └── dclare │ ├── Action.java │ ├── ActionInstance.java │ ├── ActionTransaction.java │ ├── ConsistencyError.java │ ├── Constant.java │ ├── ConstantState.java │ ├── DeferException.java │ ├── Direction.java │ ├── EmptyMandatoryException.java │ ├── Feature.java │ ├── Getable.java │ ├── Imperative.java │ ├── ImperativeTransaction.java │ ├── Leaf.java │ ├── LeafTransaction.java │ ├── MandatoryObserved.java │ ├── Mutable.java │ ├── MutableClass.java │ ├── MutableTransaction.java │ ├── NonCheckingObserved.java │ ├── NonCheckingObserver.java │ ├── NonDeterministicException.java │ ├── NonInternableObserver.java │ ├── Observed.java │ ├── ObservedInstance.java │ ├── Observer.java │ ├── ObserverTrace.java │ ├── ObserverTransaction.java │ ├── OutOfScopeException.java │ ├── Priority.java │ ├── ReadOnly.java │ ├── ReadOnlyTransaction.java │ ├── ReferencedOrphanException.java │ ├── ReusableTransaction.java │ ├── Setable.java │ ├── State.java │ ├── StateMergeHandler.java │ ├── StopObserverException.java │ ├── This.java │ ├── ThrowableError.java │ ├── TooManyChangesException.java │ ├── TooManyObservedException.java │ ├── TooManyObserversException.java │ ├── Transaction.java │ ├── TransactionClass.java │ ├── TransactionException.java │ ├── Universe.java │ └── UniverseTransaction.java ├── org.modelingvalue.jdclare.examples ├── .classpath ├── .project ├── .settings │ └── org.eclipse.jdt.core.prefs ├── module_org.modelingvalue.jdclare.examples.xml ├── org.modelingvalue.jdclare.examples.iml └── src │ └── org │ └── modelingvalue │ └── jdclare │ └── examples │ ├── BigUniverse.java │ ├── CyclicUniverse.java │ ├── EchoUniverse.java │ ├── Fibonacci.java │ ├── FibonacciUniverse.java │ ├── HelloUniverse.java │ ├── RecursiveUniverse.java │ └── SalesUniverse.java ├── org.modelingvalue.jdclare.swing.examples ├── .classpath ├── .project ├── .settings │ └── org.eclipse.jdt.core.prefs ├── module_org.modelingvalue.jdclare.swing.examples.xml ├── org.modelingvalue.jdclare.swing.examples.iml ├── resources │ ├── circle.png │ ├── line.png │ ├── rectangle.png │ ├── selection.png │ └── triangle.png └── src │ └── org │ └── modelingvalue │ └── jdclare │ └── swing │ └── examples │ ├── D2MainWindow.java │ ├── D2Universe.java │ └── newton │ ├── Ball.java │ ├── BallBallPair.java │ ├── BallCushionPair.java │ ├── BilliardPane.java │ ├── BilliardUniverse.java │ ├── CollisionPair.java │ └── Table.java ├── org.modelingvalue.jdclare.swing ├── .classpath ├── .project ├── .settings │ └── org.eclipse.jdt.core.prefs ├── module_org.modelingvalue.jdclare.swing.xml ├── org.modelingvalue.jdclare.swing.iml └── src │ └── org │ └── modelingvalue │ └── jdclare │ └── swing │ ├── Cell.java │ ├── Column.java │ ├── DAction.java │ ├── DButton.java │ ├── DComponent.java │ ├── DContainer.java │ ├── DMenu.java │ ├── DMenubar.java │ ├── DTextArea.java │ ├── DTextComponent.java │ ├── DTextField.java │ ├── DTextPane.java │ ├── DToolbar.java │ ├── DToolbarItem.java │ ├── DTreeNode.java │ ├── DVisible.java │ ├── Frame.java │ ├── GuiUniverse.java │ ├── InputDeviceData.java │ ├── MenuItem.java │ ├── Panel.java │ ├── PopupMenu.java │ ├── Row.java │ ├── ScrollPane.java │ ├── SplitPane.java │ ├── TabbedPane.java │ ├── Table.java │ ├── TextElement.java │ ├── TextStyle.java │ ├── Tree.java │ └── draw2d │ ├── CanvasMode.java │ ├── ClickMode.java │ ├── D2D.java │ ├── DCanvas.java │ ├── DCircle.java │ ├── DDimension.java │ ├── DFilled.java │ ├── DImage.java │ ├── DLine.java │ ├── DPoint.java │ ├── DRectangle.java │ ├── DShape.java │ ├── DTriangle.java │ ├── LineMode.java │ └── SelectionMode.java ├── org.modelingvalue.jdclare.syntax.test ├── .classpath ├── .project ├── .settings │ └── org.eclipse.jdt.core.prefs ├── module_org.modelingvalue.jdclare.syntax.test.xml ├── org.modelingvalue.jdclare.syntax.test.iml └── src │ └── org │ └── modelingvalue │ └── jdclare │ └── syntax │ └── test │ ├── MySyntax.java │ ├── SyntaxTests.java │ ├── TextUniverse.java │ ├── simple │ ├── AClass.java │ ├── AExpression.java │ ├── AField.java │ ├── AFieldCall.java │ ├── ANamed.java │ ├── ANumberLiteral.java │ ├── APackage.java │ ├── APackageContainer.java │ ├── AStringLiteral.java │ ├── ATyped.java │ └── AUniverse.java │ └── types │ ├── AClassType.java │ ├── ANumberType.java │ ├── AStringType.java │ └── AType.java ├── org.modelingvalue.jdclare.syntax ├── .classpath ├── .project ├── .settings │ └── org.eclipse.jdt.core.prefs ├── module_org.modelingvalue.jdclare.syntax.xml ├── org.modelingvalue.jdclare.syntax.iml └── src │ └── org │ └── modelingvalue │ └── jdclare │ └── syntax │ ├── Grammar.java │ ├── Line.java │ ├── Literal.java │ ├── Parser.java │ ├── Regex.java │ ├── Sequence.java │ ├── Skipped.java │ ├── Syntax.java │ ├── Text.java │ ├── Token.java │ ├── Tokenizer.java │ ├── meta │ ├── AnonymousSequenceType.java │ ├── GrammarClass.java │ ├── NodeClass.java │ ├── NodeType.java │ ├── ObjectNodeClass.java │ ├── ObjectSequenceClass.java │ ├── ObjectTerminalClass.java │ ├── SequenceClass.java │ ├── SequenceElement.java │ ├── SequenceType.java │ ├── StructNodeClass.java │ ├── StructSequenceClass.java │ ├── StructTerminalClass.java │ ├── SyntaxProperty.java │ ├── SyntaxPropertyRule.java │ ├── TerminalClass.java │ └── TokenType.java │ ├── parser │ ├── ElementParser.java │ ├── NodeParser.java │ ├── SequenceElementParser.java │ ├── SequenceParser.java │ └── TerminalParser.java │ └── regex │ ├── DMatch.java │ ├── DMatcher.java │ ├── DMultiMatcher.java │ └── DPattern.java ├── org.modelingvalue.jdclare.test ├── .classpath ├── .project ├── .settings │ └── org.eclipse.jdt.core.prefs ├── module_org.modelingvalue.jdclare.test.xml ├── org.modelingvalue.jdclare.test.iml └── src │ └── org │ └── modelingvalue │ └── jdclare │ └── test │ ├── BirdTest.java │ ├── BirdUniverse.java │ ├── Company.java │ ├── Instrument.java │ ├── JDclareTests.java │ ├── KeyNative.java │ ├── Orchestra.java │ ├── Person.java │ ├── Piano.java │ ├── PianoKey.java │ ├── PrioUniverse.java │ ├── Reparents.java │ ├── Scrum.java │ └── Team.java ├── org.modelingvalue.jdclare.workbench ├── .classpath ├── .project ├── .settings │ └── org.eclipse.jdt.core.prefs ├── module_org.modelingvalue.jdclare.workbench.xml ├── org.modelingvalue.jdclare.workbench.iml └── src │ └── org │ └── modelingvalue │ └── jdclare │ └── workbench │ ├── DiagramCanvas.java │ ├── ProblemsTable.java │ ├── ProblemsTableColumn.java │ ├── PropertiesTable.java │ ├── PropertiesTableColumn.java │ ├── TextEditorPane.java │ ├── UniverseExplorer.java │ ├── WBOuterSplitPane.java │ └── WBUniverse.java ├── org.modelingvalue.jdclare ├── .classpath ├── .project ├── .settings │ └── org.eclipse.jdt.core.prefs ├── module_org.modelingvalue.jdclare.xml ├── org.modelingvalue.jdclare.iml └── src │ └── org │ └── modelingvalue │ └── jdclare │ ├── Abstract.java │ ├── Constraints.java │ ├── DClare.java │ ├── DClock.java │ ├── DFunctionObject.java │ ├── DNamed.java │ ├── DNative.java │ ├── DObject.java │ ├── DProblem.java │ ├── DSeverity.java │ ├── DStruct.java │ ├── DStruct0.java │ ├── DStruct1.java │ ├── DStruct10.java │ ├── DStruct2.java │ ├── DStruct3.java │ ├── DStruct4.java │ ├── DStruct5.java │ ├── DStruct6.java │ ├── DStruct7.java │ ├── DStruct8.java │ ├── DStruct9.java │ ├── DUUObject.java │ ├── DUniverse.java │ ├── Default.java │ ├── Deferred.java │ ├── Extend.java │ ├── IOString.java │ ├── Native.java │ ├── Property.java │ ├── PropertyQualifier.java │ ├── Rule.java │ └── meta │ ├── DClass.java │ ├── DClassContainer.java │ ├── DMethodProperty.java │ ├── DMethodRule.java │ ├── DObjectRule.java │ ├── DOppositeProperty.java │ ├── DPackage.java │ ├── DPackageContainer.java │ ├── DProperty.java │ ├── DRule.java │ └── DStructClass.java ├── postProcessAntFiles.sh └── releases.md /.gitignore: -------------------------------------------------------------------------------- 1 | #### Intellij 2 | /out/ 3 | /.idea/**/workspace.xml 4 | /.idea/**/tasks.xml 5 | /.idea/**/dictionaries 6 | /.idea/**/shelf 7 | /.idea/**/xtextAutoBuilderState.xml 8 | 9 | #### eclipse 10 | /*/bin/ 11 | 12 | #### java 13 | *.class 14 | hs_err_pid* 15 | 16 | #### Log file 17 | *.log 18 | 19 | #### Package Files 20 | *.jar 21 | *.war 22 | *.nar 23 | *.ear 24 | *.zip 25 | *.tar.gz 26 | *.rar 27 | 28 | /build/tmp 29 | /build.properties -------------------------------------------------------------------------------- /.idea/artifacts/collections_SNAPSHOT_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | $PROJECT_DIR$/out/artifacts 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/artifacts/collections_SNAPSHOT_sources_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | $PROJECT_DIR$/out/artifacts 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/artifacts/jdclare_SNAPSHOT_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | $PROJECT_DIR$/out/artifacts 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/artifacts/jdclare_SNAPSHOT_sources_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | $PROJECT_DIR$/out/artifacts 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/artifacts/transactions_SNAPSHOT_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | $PROJECT_DIR$/out/artifacts 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/artifacts/transactions_SNAPSHOT_sources_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | $PROJECT_DIR$/out/artifacts 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/bashsupport_project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__junit_junit_4_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/runConfigurations/Draw_demo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/runConfigurations/Echo_demo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/runConfigurations/Hello_demo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/runConfigurations/Sales_demo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/runConfigurations/workbench.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /build/00-prep.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -ue 3 | ################################################################ 4 | export gitHubToken="${1:-NO_TOKEN}" ; shift || : 5 | ################################################################ 6 | export ANT_OPTS="-Djdk.home.11=$JAVA_HOME -Dpath.variable.maven_repository=m2" 7 | export MAVEN_OPTS="-Dmaven.repo.local=m2 -DoutputDirectory=out/dependency" 8 | export OUR_DOMAIN="org.modelingvalue" 9 | export OUR_PRODUCT="dclare" 10 | export OUR_VERSION="$(head -1 releases.md | sed 's/#* *//')" 11 | export OUR_BRANCH="$(sed 's|^refs/heads/||' <<<"$GITHUB_REF")" 12 | ################################################################ 13 | export units=( 14 | collections 15 | transactions 16 | jdclare 17 | ) 18 | ################################################################ 19 | varNames=( 20 | gitHubToken 21 | ANT_OPTS 22 | MAVEN_OPTS 23 | OUR_DOMAIN 24 | OUR_PRODUCT 25 | OUR_VERSION 26 | OUR_BRANCH 27 | units 28 | ) 29 | mkdir -p build/tmp 30 | declare -p "${varNames[@]}" > build/tmp/prep.sh 31 | -------------------------------------------------------------------------------- /build/01-getTools.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -ue 3 | . build/tmp/prep.sh 4 | ################################################################ 5 | echo "...get our tools" 6 | rm -rf tools 7 | git clone 'https://github.com/ModelingValueGroup/tools.git' 8 | ( echo ". tools/tools.sh" 9 | cat build/tmp/prep.sh 10 | ) >> build/tmp/prep.sh-tmp 11 | cp build/tmp/prep.sh-tmp build/tmp/prep.sh 12 | 13 | set -x 14 | . build/tmp/prep.sh -------------------------------------------------------------------------------- /build/02-makePoms.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -ue 3 | . build/tmp/prep.sh 4 | ################################################################ 5 | echo "...make the poms with the dependencies" 6 | makeAllPoms \ 7 | "http://www.dclare-lang.org" \ 8 | "https://github.com/ModelingValueGroup/jdclare.git" \ 9 | "$OUR_VERSION" \ 10 | "${units[@]}" 11 | -------------------------------------------------------------------------------- /build/03-getDependencies.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -ue 3 | . build/tmp/prep.sh 4 | ################################################################ 5 | echo "...getting dependencies from maven" 6 | mvn \ 7 | -f out/artifacts/ALL-SNAPSHOT.pom \ 8 | dependency:copy-dependencies 9 | -------------------------------------------------------------------------------- /build/04-build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -ue 3 | . build/tmp/prep.sh 4 | ################################################################ 5 | echo "...build everything" 6 | ant \ 7 | -f build.xml 8 | -------------------------------------------------------------------------------- /build/05-test.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -ue 3 | . build/tmp/prep.sh 4 | ################################################################ 5 | echo "...testing" 6 | generateAntTestFile "mvg-jdclare" > test.xml 7 | 8 | # to keep travis-ci happy: 9 | SECONDS=0 10 | while sleep 60; do 11 | echo "=====[ still running after $SECONDS sec... ]=====" 12 | done & 13 | 14 | 15 | if ! ant -f test.xml; then 16 | kill %1 17 | echo "======================================================================" 18 | echo " FAILURES DETECTED" 19 | echo "======================================================================" 20 | for f in $(\ 21 | egrep '(errors|failures)="' TEST-* \ 22 | | egrep -v 'errors="0" failures="0"' \ 23 | | sed 's/:.*//' 24 | ); do 25 | [[ -f "$f" ]] && cat $f 26 | done 27 | echo "======================================================================" 28 | exit 99 29 | fi 30 | kill %1 31 | echo "...all tests ok!" 32 | -------------------------------------------------------------------------------- /build/06-javadoc.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -ue 3 | . build/tmp/prep.sh 4 | ################################################################ 5 | echo "...make javadoc" 6 | 7 | for n in "${units[@]}"; do 8 | cacheFile="cache/$n/javadoc.jar" 9 | targetFile="out/artifacts/$n-SNAPSHOT-javadoc.jar" 10 | 11 | mkdir -p "$(dirname "$cacheFile")" "$(dirname "$targetFile")" 12 | 13 | if [[ -f "$cacheFile" ]]; then 14 | cp "$cacheFile" "$targetFile" 15 | else 16 | makeAllJavaDocJars "$n" 17 | cp "$targetFile" "$cacheFile" 18 | fi 19 | done 20 | -------------------------------------------------------------------------------- /build/07-publish.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -ue 3 | . build/tmp/prep.sh 4 | ################################################################ 5 | if [[ $OUR_BRANCH != "master" ]]; then 6 | echo "INFO: no publish: on '$OUR_BRANCH' and not on 'master' branch" 7 | else 8 | if [[ $gitHubToken == "" || $gitHubToken == NO_TOKEN ]]; then 9 | echo "INFO: no publish: no \$gitHubToken defined" 10 | else 11 | echo "...publish to github as version '$OUR_VERSION'" 12 | set -x 13 | publishJarsOnGitHub \ 14 | "$OUR_BRANCH" \ 15 | "$OUR_VERSION" \ 16 | "$gitHubToken" \ 17 | "false" \ 18 | "${units[@]}" 19 | fi 20 | fi 21 | -------------------------------------------------------------------------------- /build/build.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /build/build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -ue 3 | ################################################################ 4 | mkdir -p log 5 | . build/00-prep.sh | tee log/00-prep.log 6 | . build/01-getTools.sh | tee log/01-getTools.log 7 | . build/02-makePoms.sh | tee log/02-makePoms.log 8 | . build/03-getDependencies.sh | tee log/03-getDependencies.log 9 | . build/04-build.sh | tee log/04-build.log 10 | . build/05-test.sh | tee log/05-test.log 11 | . build/06-javadoc.sh | tee log/06-javadoc.log 12 | . build/07-publish.sh | tee log/07-publish.log 13 | -------------------------------------------------------------------------------- /org.modelingvalue.collections.test/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /org.modelingvalue.collections.test/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | org.modelingvalue.collections.test 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /org.modelingvalue.collections.test/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate 4 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 5 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 6 | org.eclipse.jdt.core.compiler.compliance=11 7 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 8 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 9 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 10 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 11 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 12 | org.eclipse.jdt.core.compiler.release=disabled 13 | org.eclipse.jdt.core.compiler.source=11 14 | -------------------------------------------------------------------------------- /org.modelingvalue.collections.test/org.modelingvalue.collections.test.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /org.modelingvalue.collections.test/src/org/modelingvalue/collections/test/AgeTest.java: -------------------------------------------------------------------------------- 1 | package org.modelingvalue.collections.test; 2 | 3 | import static org.junit.Assert.*; 4 | 5 | import org.junit.Test; 6 | import org.modelingvalue.collections.util.Age; 7 | 8 | public class AgeTest { 9 | 10 | @Test 11 | public void age() { 12 | Object[] a = new Object[1]; 13 | Object o = new Object(); 14 | a[0] = o; 15 | assertEquals("pre age = " + Age.age(a), 0, Age.age(a)); 16 | assertEquals("pre age = " + Age.age(o), 0, Age.age(o)); 17 | Object cg = null; 18 | @SuppressWarnings("unused") 19 | int h = 0; 20 | for (int i = 0; i < 100_000_000; i++) { 21 | cg = new Object(); 22 | h += cg.hashCode(); 23 | } 24 | cg = null; 25 | assertTrue("post age = " + Age.age(a), Age.age(a) > 0); 26 | assertTrue("post age = " + Age.age(o), Age.age(o) > 0); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | org.modelingvalue.collections 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.pde.ManifestBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.pde.SchemaBuilder 20 | 21 | 22 | 23 | 24 | 25 | org.eclipse.jdt.core.javanature 26 | 27 | 28 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/build.properties: -------------------------------------------------------------------------------- 1 | source.. = src/ 2 | bin.includes = META-INF/,\ 3 | . 4 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/description: -------------------------------------------------------------------------------- 1 | A collections framework with value semantics -------------------------------------------------------------------------------- /org.modelingvalue.collections/org.modelingvalue.collections.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/StreamCollection.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections; 15 | 16 | public interface StreamCollection extends Collection { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/struct/Struct.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.struct; 15 | 16 | import java.io.Serializable; 17 | 18 | import org.modelingvalue.collections.util.Internable; 19 | 20 | public interface Struct extends Serializable, Internable { 21 | Object get(int i); 22 | 23 | int length(); 24 | 25 | default Object[] postCreate(Object[] args) { 26 | return args; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/struct/Struct0.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.struct; 15 | 16 | public interface Struct0 extends Struct { 17 | } 18 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/struct/Struct1.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.struct; 15 | 16 | public interface Struct1 extends Struct0 { 17 | T0 get0(); 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/struct/Struct10.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.struct; 15 | 16 | public interface Struct10 extends Struct9 { 17 | T9 get9(); 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/struct/Struct11.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.struct; 15 | 16 | public interface Struct11 extends Struct10 { 17 | T10 get10(); 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/struct/Struct12.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.struct; 15 | 16 | public interface Struct12 extends Struct11 { 17 | T11 get11(); 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/struct/Struct13.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.struct; 15 | 16 | public interface Struct13 extends Struct12 { 17 | T12 get12(); 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/struct/Struct14.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.struct; 15 | 16 | public interface Struct14 extends Struct13 { 17 | T13 get13(); 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/struct/Struct15.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.struct; 15 | 16 | public interface Struct15 extends Struct14 { 17 | T14 get14(); 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/struct/Struct16.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.struct; 15 | 16 | public interface Struct16 extends Struct15 { 17 | T15 get15(); 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/struct/Struct17.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.struct; 15 | 16 | public interface Struct17 extends Struct16 { 17 | T16 get16(); 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/struct/Struct18.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.struct; 15 | 16 | public interface Struct18 extends Struct17 { 17 | T17 get17(); 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/struct/Struct19.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.struct; 15 | 16 | public interface Struct19 extends Struct18 { 17 | T18 get18(); 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/struct/Struct2.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.struct; 15 | 16 | public interface Struct2 extends Struct1 { 17 | T1 get1(); 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/struct/Struct20.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.struct; 15 | 16 | public interface Struct20 extends Struct19 { 17 | T19 get19(); 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/struct/Struct21.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.struct; 15 | 16 | public interface Struct21 extends Struct20 { 17 | T20 get20(); 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/struct/Struct22.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.struct; 15 | 16 | public interface Struct22 extends Struct21 { 17 | T21 get21(); 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/struct/Struct23.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.struct; 15 | 16 | public interface Struct23 extends Struct22 { 17 | T22 get22(); 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/struct/Struct24.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.struct; 15 | 16 | public interface Struct24 extends Struct23 { 17 | T23 get23(); 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/struct/Struct3.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.struct; 15 | 16 | public interface Struct3 extends Struct2 { 17 | T2 get2(); 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/struct/Struct4.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.struct; 15 | 16 | public interface Struct4 extends Struct3 { 17 | T3 get3(); 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/struct/Struct5.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.struct; 15 | 16 | public interface Struct5 extends Struct4 { 17 | T4 get4(); 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/struct/Struct6.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.struct; 15 | 16 | public interface Struct6 extends Struct5 { 17 | T5 get5(); 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/struct/Struct7.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.struct; 15 | 16 | public interface Struct7 extends Struct6 { 17 | T6 get6(); 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/struct/Struct8.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.struct; 15 | 16 | public interface Struct8 extends Struct7 { 17 | T7 get7(); 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/struct/Struct9.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.struct; 15 | 16 | public interface Struct9 extends Struct8 { 17 | T8 get8(); 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/struct/impl/Struct0Impl.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.struct.impl; 15 | 16 | import org.modelingvalue.collections.struct.Struct0; 17 | 18 | public class Struct0Impl extends StructImpl implements Struct0 { 19 | 20 | private static final long serialVersionUID = -851702180710134661L; 21 | 22 | public Struct0Impl() { 23 | super(); 24 | } 25 | 26 | protected Struct0Impl(Object... data) { 27 | super(data); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/util/NotMergeableException.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.util; 15 | 16 | public class NotMergeableException extends Error { 17 | 18 | private static final long serialVersionUID = 10352309221474014L; 19 | 20 | public NotMergeableException(String message) { 21 | super(message); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/util/QuadConsumer.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.util; 15 | 16 | @FunctionalInterface 17 | public interface QuadConsumer { 18 | 19 | void accept(S s, T t, U u, V v); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/util/QuadFunction.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.util; 15 | 16 | @FunctionalInterface 17 | public interface QuadFunction { 18 | 19 | R apply(S s, T t, U u, V v); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/util/TernaryOperator.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.util; 15 | 16 | @FunctionalInterface 17 | public interface TernaryOperator extends TriFunction { 18 | 19 | } 20 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/util/TriConsumer.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.util; 15 | 16 | @FunctionalInterface 17 | public interface TriConsumer { 18 | 19 | void accept(S s, T t, U u); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /org.modelingvalue.collections/src/org/modelingvalue/collections/util/TriFunction.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.collections.util; 15 | 16 | @FunctionalInterface 17 | public interface TriFunction { 18 | 19 | R apply(S s, T t, U u); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /org.modelingvalue.dclare.test/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /org.modelingvalue.dclare.test/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | org.modelingvalue.dclare.test 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /org.modelingvalue.dclare.test/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate 4 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 5 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 6 | org.eclipse.jdt.core.compiler.compliance=11 7 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 8 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 9 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 10 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 11 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 12 | org.eclipse.jdt.core.compiler.release=disabled 13 | org.eclipse.jdt.core.compiler.source=11 14 | -------------------------------------------------------------------------------- /org.modelingvalue.dclare.test/org.modelingvalue.dclare.test.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /org.modelingvalue.dclare.test/src/org/modelingvalue/dclare/test/DObject.java: -------------------------------------------------------------------------------- 1 | package org.modelingvalue.dclare.test; 2 | 3 | import org.modelingvalue.collections.util.StringUtil; 4 | import org.modelingvalue.dclare.Mutable; 5 | 6 | public class DObject implements Mutable { 7 | private final Object id; 8 | private final DClass dClass; 9 | 10 | public static DObject of(Object id, DClass dClass) { 11 | return new DObject(id, dClass); 12 | } 13 | 14 | protected DObject(Object id, DClass dClass) { 15 | this.id = id; 16 | this.dClass = dClass; 17 | } 18 | 19 | @Override 20 | public DClass dClass() { 21 | return dClass; 22 | } 23 | 24 | public Object id() { 25 | return id; 26 | } 27 | 28 | @Override 29 | public String toString() { 30 | return dClass + "@" + StringUtil.toString(id); 31 | } 32 | 33 | @Override 34 | public int hashCode() { 35 | return dClass.hashCode() ^ id.hashCode(); 36 | } 37 | 38 | @Override 39 | public boolean equals(Object obj) { 40 | if (this == obj) { 41 | return true; 42 | } else if (obj == null) { 43 | return false; 44 | } else if (getClass() != obj.getClass()) { 45 | return false; 46 | } else { 47 | DObject c = (DObject) obj; 48 | return id.equals(c.id) && dClass.equals(c.dClass); 49 | } 50 | } 51 | 52 | } 53 | -------------------------------------------------------------------------------- /org.modelingvalue.dclare.test/src/org/modelingvalue/dclare/test/DUniverse.java: -------------------------------------------------------------------------------- 1 | package org.modelingvalue.dclare.test; 2 | 3 | import java.util.function.Consumer; 4 | 5 | import org.modelingvalue.dclare.Universe; 6 | 7 | public class DUniverse extends DObject implements Universe { 8 | 9 | public static DUniverse of(Object id, DClass dClass) { 10 | return new DUniverse(id, u -> { 11 | }, dClass); 12 | } 13 | 14 | public static DUniverse of(Object id, Consumer init, DClass dClass) { 15 | return new DUniverse(id, init, dClass); 16 | } 17 | 18 | private final Consumer init; 19 | 20 | protected DUniverse(Object id, Consumer init, DClass dClass) { 21 | super(id, dClass); 22 | this.init = init; 23 | } 24 | 25 | @Override 26 | public void init() { 27 | Universe.super.init(); 28 | init.accept(this); 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /org.modelingvalue.dclare/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /org.modelingvalue.dclare/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | org.modelingvalue.dclare 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /org.modelingvalue.dclare/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate 4 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 5 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 6 | org.eclipse.jdt.core.compiler.compliance=11 7 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 8 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 9 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 10 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 11 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 12 | org.eclipse.jdt.core.compiler.release=disabled 13 | org.eclipse.jdt.core.compiler.source=11 14 | -------------------------------------------------------------------------------- /org.modelingvalue.dclare/org.modelingvalue.dclare.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /org.modelingvalue.dclare/src/org/modelingvalue/dclare/DeferException.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.dclare; 15 | 16 | public final class DeferException extends RuntimeException { 17 | 18 | private static final long serialVersionUID = -4289705377708158959L; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /org.modelingvalue.dclare/src/org/modelingvalue/dclare/EmptyMandatoryException.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.dclare; 15 | 16 | public final class EmptyMandatoryException extends ConsistencyError { 17 | 18 | private static final long serialVersionUID = -6687018038130352922L; 19 | 20 | public EmptyMandatoryException(Object object, Setable setable) { 21 | super(object, setable, "Empty mandatory property '" + setable + "' of object '" + object + "'"); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /org.modelingvalue.dclare/src/org/modelingvalue/dclare/Feature.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.dclare; 15 | 16 | public interface Feature { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.dclare/src/org/modelingvalue/dclare/NonDeterministicException.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.dclare; 15 | 16 | public final class NonDeterministicException extends ConsistencyError { 17 | private static final long serialVersionUID = 7857822332170335179L; 18 | 19 | public NonDeterministicException(Object object, Getable getable, String message) { 20 | super(object, getable, message); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /org.modelingvalue.dclare/src/org/modelingvalue/dclare/Priority.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.dclare; 15 | 16 | public enum Priority { 17 | 18 | preDepth(0), 19 | 20 | postDepth(1), 21 | 22 | depth(2); 23 | 24 | public final int nr; 25 | 26 | private Priority(int nr) { 27 | this.nr = nr; 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /org.modelingvalue.dclare/src/org/modelingvalue/dclare/StopObserverException.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.dclare; 15 | 16 | public final class StopObserverException extends RuntimeException { 17 | 18 | private static final long serialVersionUID = 2616181071425492626L; 19 | 20 | public StopObserverException(String mess) { 21 | super(mess); 22 | } 23 | 24 | public StopObserverException(Throwable t) { 25 | super(t); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /org.modelingvalue.dclare/src/org/modelingvalue/dclare/ThrowableError.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.dclare; 15 | 16 | public final class ThrowableError extends ConsistencyError { 17 | 18 | private static final long serialVersionUID = -4723221087879478090L; 19 | 20 | public ThrowableError(Object object, Feature feature, Throwable t) { 21 | super(object, feature, t); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /org.modelingvalue.dclare/src/org/modelingvalue/dclare/Universe.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.dclare; 15 | 16 | import org.modelingvalue.collections.util.Internable; 17 | 18 | public interface Universe extends Mutable, Internable { 19 | 20 | default void init() { 21 | dActivate(); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.examples/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.examples/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | org.modelingvalue.jdclare.examples 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.examples/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 4 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 5 | org.eclipse.jdt.core.compiler.compliance=11 6 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 7 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 8 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 9 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 10 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 11 | org.eclipse.jdt.core.compiler.release=enabled 12 | org.eclipse.jdt.core.compiler.source=11 13 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.examples/org.modelingvalue.jdclare.examples.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.examples/src/org/modelingvalue/jdclare/examples/Fibonacci.java: -------------------------------------------------------------------------------- 1 | package org.modelingvalue.jdclare.examples; 2 | 3 | import static java.math.BigInteger.*; 4 | import static org.modelingvalue.jdclare.DClare.*; 5 | import static org.modelingvalue.jdclare.PropertyQualifier.*; 6 | 7 | import java.math.BigInteger; 8 | 9 | import org.modelingvalue.jdclare.DStruct1; 10 | import org.modelingvalue.jdclare.Property; 11 | 12 | public interface Fibonacci extends DStruct1 { 13 | 14 | @Property(key = 0) 15 | int nr(); 16 | 17 | @Property(constant) 18 | default BigInteger fibonaci() { 19 | return nr() == 0 ? ZERO : nr() == 1 ? ONE : of(nr() - 1).add(of(nr() - 2)); 20 | } 21 | 22 | static BigInteger of(int nr) { 23 | return dStruct(Fibonacci.class, nr).fibonaci(); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.swing.examples/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.swing.examples/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | org.modelingvalue.jdclare.swing.examples 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.swing.examples/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 4 | org.eclipse.jdt.core.compiler.compliance=11 5 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 6 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 7 | org.eclipse.jdt.core.compiler.release=enabled 8 | org.eclipse.jdt.core.compiler.source=11 9 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.swing.examples/org.modelingvalue.jdclare.swing.examples.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.swing.examples/resources/circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModelingValueGroup/jdclare/8285cc330b75eecc0a7e2069f16a8861cc8599ea/org.modelingvalue.jdclare.swing.examples/resources/circle.png -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.swing.examples/resources/line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModelingValueGroup/jdclare/8285cc330b75eecc0a7e2069f16a8861cc8599ea/org.modelingvalue.jdclare.swing.examples/resources/line.png -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.swing.examples/resources/rectangle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModelingValueGroup/jdclare/8285cc330b75eecc0a7e2069f16a8861cc8599ea/org.modelingvalue.jdclare.swing.examples/resources/rectangle.png -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.swing.examples/resources/selection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModelingValueGroup/jdclare/8285cc330b75eecc0a7e2069f16a8861cc8599ea/org.modelingvalue.jdclare.swing.examples/resources/selection.png -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.swing.examples/resources/triangle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ModelingValueGroup/jdclare/8285cc330b75eecc0a7e2069f16a8861cc8599ea/org.modelingvalue.jdclare.swing.examples/resources/triangle.png -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.swing.examples/src/org/modelingvalue/jdclare/swing/examples/newton/CollisionPair.java: -------------------------------------------------------------------------------- 1 | package org.modelingvalue.jdclare.swing.examples.newton; 2 | 3 | import org.modelingvalue.jdclare.DObject; 4 | import org.modelingvalue.jdclare.Property; 5 | import org.modelingvalue.jdclare.swing.draw2d.DPoint; 6 | 7 | public interface CollisionPair extends DObject { 8 | 9 | @Property 10 | double preCollisionTime(); 11 | 12 | double postCollisionTime(); 13 | 14 | DPoint velocity(Ball ball); 15 | 16 | double distance(); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.swing/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.swing/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | org.modelingvalue.jdclare.swing 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.swing/org.modelingvalue.jdclare.swing.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.swing/src/org/modelingvalue/jdclare/swing/Column.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare.swing; 15 | 16 | import org.modelingvalue.jdclare.DStruct3; 17 | import org.modelingvalue.jdclare.Property; 18 | 19 | public interface Column extends DStruct3, C, Integer>, DVisible { 20 | 21 | @Property(key = 0) 22 | Table table(); 23 | 24 | @Property(key = 1) 25 | C object(); 26 | 27 | @Property(key = 2) 28 | int nr(); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.swing/src/org/modelingvalue/jdclare/swing/DAction.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare.swing; 15 | 16 | import org.modelingvalue.jdclare.DNamed; 17 | 18 | public interface DAction extends DNamed { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.swing/src/org/modelingvalue/jdclare/swing/draw2d/CanvasMode.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare.swing.draw2d; 15 | 16 | import org.modelingvalue.jdclare.DObject; 17 | 18 | public interface CanvasMode extends DObject { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.swing/src/org/modelingvalue/jdclare/swing/draw2d/SelectionMode.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare.swing.draw2d; 15 | 16 | public interface SelectionMode extends CanvasMode { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.syntax.test/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.syntax.test/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | org.modelingvalue.jdclare.syntax.test 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.syntax.test/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 4 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 5 | org.eclipse.jdt.core.compiler.compliance=11 6 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 7 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 8 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 9 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 10 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 11 | org.eclipse.jdt.core.compiler.release=enabled 12 | org.eclipse.jdt.core.compiler.source=11 13 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.syntax.test/org.modelingvalue.jdclare.syntax.test.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.syntax.test/src/org/modelingvalue/jdclare/syntax/test/simple/AClass.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare.syntax.test.simple; 15 | 16 | import static org.modelingvalue.jdclare.PropertyQualifier.*; 17 | 18 | import org.modelingvalue.collections.Set; 19 | import org.modelingvalue.jdclare.Property; 20 | 21 | public interface AClass extends ANamed { 22 | 23 | @Property(containment) 24 | Set fields(); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.syntax.test/src/org/modelingvalue/jdclare/syntax/test/simple/AExpression.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare.syntax.test.simple; 15 | 16 | public interface AExpression extends ATyped { 17 | } 18 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.syntax.test/src/org/modelingvalue/jdclare/syntax/test/simple/APackage.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare.syntax.test.simple; 15 | 16 | import static org.modelingvalue.jdclare.PropertyQualifier.*; 17 | 18 | import org.modelingvalue.collections.Set; 19 | import org.modelingvalue.jdclare.DUUObject; 20 | import org.modelingvalue.jdclare.Property; 21 | 22 | public interface APackage extends DUUObject, ANamed, APackageContainer { 23 | 24 | @Property(containment) 25 | Set classes(); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.syntax.test/src/org/modelingvalue/jdclare/syntax/test/simple/APackageContainer.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare.syntax.test.simple; 15 | 16 | import static org.modelingvalue.jdclare.PropertyQualifier.*; 17 | 18 | import org.modelingvalue.collections.Set; 19 | import org.modelingvalue.jdclare.DObject; 20 | import org.modelingvalue.jdclare.Property; 21 | 22 | public interface APackageContainer extends DObject { 23 | 24 | @Property(containment) 25 | Set aPackages(); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.syntax.test/src/org/modelingvalue/jdclare/syntax/test/simple/ATyped.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare.syntax.test.simple; 15 | 16 | import org.modelingvalue.jdclare.DObject; 17 | import org.modelingvalue.jdclare.Property; 18 | import org.modelingvalue.jdclare.syntax.test.types.AType; 19 | 20 | public interface ATyped extends DObject { 21 | 22 | @Property 23 | AType type(); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.syntax.test/src/org/modelingvalue/jdclare/syntax/test/simple/AUniverse.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare.syntax.test.simple; 15 | 16 | import org.modelingvalue.jdclare.DUniverse; 17 | 18 | public interface AUniverse extends APackageContainer, DUniverse { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.syntax.test/src/org/modelingvalue/jdclare/syntax/test/types/AType.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare.syntax.test.types; 15 | 16 | import org.modelingvalue.collections.Set; 17 | import org.modelingvalue.jdclare.DStruct; 18 | import org.modelingvalue.jdclare.syntax.test.simple.AField; 19 | 20 | public interface AType extends DStruct { 21 | 22 | Set fields(); 23 | 24 | default boolean isAssignableFrom(AType type) { 25 | return equals(type); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.syntax/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.syntax/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | org.modelingvalue.jdclare.syntax 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.syntax/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 4 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 5 | org.eclipse.jdt.core.compiler.compliance=11 6 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 7 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 8 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 9 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 10 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 11 | org.eclipse.jdt.core.compiler.release=enabled 12 | org.eclipse.jdt.core.compiler.source=11 13 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.syntax/org.modelingvalue.jdclare.syntax.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.syntax/src/org/modelingvalue/jdclare/syntax/Skipped.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare.syntax; 15 | 16 | import java.lang.annotation.ElementType; 17 | import java.lang.annotation.Retention; 18 | import java.lang.annotation.RetentionPolicy; 19 | import java.lang.annotation.Target; 20 | 21 | @Retention(RetentionPolicy.RUNTIME) 22 | @Target(ElementType.TYPE) 23 | public @interface Skipped { 24 | String[] value();; 25 | } 26 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.syntax/src/org/modelingvalue/jdclare/syntax/meta/ObjectSequenceClass.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare.syntax.meta; 15 | 16 | import org.modelingvalue.jdclare.syntax.Grammar.ObjectNode; 17 | 18 | public interface ObjectSequenceClass extends ObjectNodeClass, SequenceClass { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.syntax/src/org/modelingvalue/jdclare/syntax/meta/ObjectTerminalClass.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare.syntax.meta; 15 | 16 | import org.modelingvalue.jdclare.syntax.Grammar.ObjectNode; 17 | 18 | public interface ObjectTerminalClass extends ObjectNodeClass, TerminalClass { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.syntax/src/org/modelingvalue/jdclare/syntax/meta/StructSequenceClass.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare.syntax.meta; 15 | 16 | import org.modelingvalue.jdclare.syntax.Grammar.StructNode; 17 | 18 | public interface StructSequenceClass extends SequenceClass, StructNodeClass { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.syntax/src/org/modelingvalue/jdclare/syntax/meta/StructTerminalClass.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare.syntax.meta; 15 | 16 | import org.modelingvalue.jdclare.syntax.Grammar.StructNode; 17 | 18 | public interface StructTerminalClass extends TerminalClass, StructNodeClass { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.syntax/src/org/modelingvalue/jdclare/syntax/regex/DMatch.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare.syntax.regex; 15 | 16 | import org.modelingvalue.jdclare.DStruct3; 17 | import org.modelingvalue.jdclare.Property; 18 | 19 | public interface DMatch extends DStruct3 { 20 | 21 | @Property(key = 0) 22 | int start(); 23 | 24 | @Property(key = 1) 25 | String value(); 26 | 27 | @Property(key = 2) 28 | int multiNr(); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.test/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.test/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | org.modelingvalue.jdclare.test 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.test/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 4 | org.eclipse.jdt.core.compiler.compliance=11 5 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 6 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 7 | org.eclipse.jdt.core.compiler.release=enabled 8 | org.eclipse.jdt.core.compiler.source=11 9 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.test/org.modelingvalue.jdclare.test.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.test/src/org/modelingvalue/jdclare/test/Company.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare.test; 15 | 16 | import static org.modelingvalue.jdclare.PropertyQualifier.*; 17 | 18 | import org.modelingvalue.collections.Set; 19 | import org.modelingvalue.jdclare.DNamed; 20 | import org.modelingvalue.jdclare.DUUObject; 21 | import org.modelingvalue.jdclare.Property; 22 | 23 | public interface Company extends DUUObject, DNamed { 24 | 25 | @Property(containment) 26 | Set employees(); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.test/src/org/modelingvalue/jdclare/test/Instrument.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare.test; 15 | 16 | import org.modelingvalue.jdclare.DObject; 17 | import org.modelingvalue.jdclare.DStruct1; 18 | import org.modelingvalue.jdclare.Property; 19 | 20 | public interface Instrument extends DObject, DStruct1 { 21 | 22 | @Property(key = 0) 23 | String name(); 24 | 25 | default Orchestra orchestra() { 26 | return (Orchestra) dParent(); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.test/src/org/modelingvalue/jdclare/test/Person.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare.test; 15 | 16 | import org.modelingvalue.jdclare.DNamed; 17 | import org.modelingvalue.jdclare.DUUObject; 18 | 19 | public interface Person extends DUUObject, DNamed { 20 | 21 | } 22 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.workbench/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.workbench/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | org.modelingvalue.jdclare.workbench 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.workbench/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 4 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 5 | org.eclipse.jdt.core.compiler.compliance=11 6 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 7 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 8 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 9 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 10 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 11 | org.eclipse.jdt.core.compiler.release=enabled 12 | org.eclipse.jdt.core.compiler.source=11 13 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare.workbench/org.modelingvalue.jdclare.workbench.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | org.modelingvalue.jdclare 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 4 | org.eclipse.jdt.core.compiler.compliance=11 5 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 6 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 7 | org.eclipse.jdt.core.compiler.release=enabled 8 | org.eclipse.jdt.core.compiler.source=11 9 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/org.modelingvalue.jdclare.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/src/org/modelingvalue/jdclare/Abstract.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare; 15 | 16 | import java.lang.annotation.ElementType; 17 | import java.lang.annotation.Retention; 18 | import java.lang.annotation.RetentionPolicy; 19 | import java.lang.annotation.Target; 20 | 21 | @Retention(RetentionPolicy.RUNTIME) 22 | @Target(ElementType.TYPE) 23 | public @interface Abstract { 24 | 25 | } 26 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/src/org/modelingvalue/jdclare/Constraints.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare; 15 | 16 | import java.lang.annotation.ElementType; 17 | import java.lang.annotation.Retention; 18 | import java.lang.annotation.RetentionPolicy; 19 | import java.lang.annotation.Target; 20 | 21 | @Retention(RetentionPolicy.RUNTIME) 22 | @Target(ElementType.METHOD) 23 | public @interface Constraints { 24 | } 25 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/src/org/modelingvalue/jdclare/DClock.java: -------------------------------------------------------------------------------- 1 | package org.modelingvalue.jdclare; 2 | 3 | import static org.modelingvalue.jdclare.DClare.*; 4 | 5 | import java.time.Duration; 6 | import java.time.Instant; 7 | 8 | public interface DClock extends DObject, DStruct0 { 9 | 10 | final double BILLION = 1000000000.0; 11 | 12 | @Property 13 | @Default 14 | default Instant time() { 15 | return dClare().getClock().instant(); 16 | } 17 | 18 | @Property 19 | default Duration passTime() { 20 | return Duration.between(pre(this, DClock::time), time()); 21 | } 22 | 23 | @Property 24 | default double passSeconds() { 25 | return passTime().toNanos() / BILLION; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/src/org/modelingvalue/jdclare/DFunctionObject.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare; 15 | 16 | import java.util.function.Function; 17 | 18 | import org.modelingvalue.collections.List; 19 | 20 | public interface DFunctionObject extends DStruct1, O>> { 21 | 22 | @Property(key = 0) 23 | Function, O> function(); 24 | 25 | default O run(List params) { 26 | return function().apply(params); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/src/org/modelingvalue/jdclare/DNamed.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare; 15 | 16 | public interface DNamed extends DObject { 17 | 18 | @Property 19 | String name(); 20 | 21 | @Override 22 | default String asString() { 23 | return name(); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/src/org/modelingvalue/jdclare/DSeverity.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare; 15 | 16 | public enum DSeverity { 17 | fatal(), 18 | error(), 19 | warning(), 20 | info(); 21 | } 22 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/src/org/modelingvalue/jdclare/DStruct0.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare; 15 | 16 | public interface DStruct0 extends DStruct { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/src/org/modelingvalue/jdclare/DStruct1.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare; 15 | 16 | public interface DStruct1 extends DStruct { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/src/org/modelingvalue/jdclare/DStruct10.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare; 15 | 16 | public interface DStruct10 extends DStruct { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/src/org/modelingvalue/jdclare/DStruct2.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare; 15 | 16 | public interface DStruct2 extends DStruct { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/src/org/modelingvalue/jdclare/DStruct3.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare; 15 | 16 | public interface DStruct3 extends DStruct { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/src/org/modelingvalue/jdclare/DStruct4.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare; 15 | 16 | public interface DStruct4 extends DStruct { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/src/org/modelingvalue/jdclare/DStruct5.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare; 15 | 16 | public interface DStruct5 extends DStruct { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/src/org/modelingvalue/jdclare/DStruct6.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare; 15 | 16 | public interface DStruct6 extends DStruct { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/src/org/modelingvalue/jdclare/DStruct7.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare; 15 | 16 | public interface DStruct7 extends DStruct { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/src/org/modelingvalue/jdclare/DStruct8.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare; 15 | 16 | public interface DStruct8 extends DStruct { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/src/org/modelingvalue/jdclare/DStruct9.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare; 15 | 16 | public interface DStruct9 extends DStruct { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/src/org/modelingvalue/jdclare/DUUObject.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare; 15 | 16 | import java.util.UUID; 17 | 18 | public interface DUUObject extends DStruct1, DObject { 19 | @Property(key = 0) 20 | UUID uuid(); 21 | } 22 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/src/org/modelingvalue/jdclare/Default.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare; 15 | 16 | import java.lang.annotation.ElementType; 17 | import java.lang.annotation.Retention; 18 | import java.lang.annotation.RetentionPolicy; 19 | import java.lang.annotation.Target; 20 | 21 | @Retention(RetentionPolicy.RUNTIME) 22 | @Target(ElementType.METHOD) 23 | public @interface Default { 24 | } 25 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/src/org/modelingvalue/jdclare/Deferred.java: -------------------------------------------------------------------------------- 1 | package org.modelingvalue.jdclare; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | @Retention(RetentionPolicy.RUNTIME) 9 | @Target(ElementType.METHOD) 10 | public @interface Deferred { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/src/org/modelingvalue/jdclare/Extend.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare; 15 | 16 | import java.lang.annotation.ElementType; 17 | import java.lang.annotation.Retention; 18 | import java.lang.annotation.RetentionPolicy; 19 | import java.lang.annotation.Target; 20 | 21 | @Retention(RetentionPolicy.RUNTIME) 22 | @Target({ElementType.ANNOTATION_TYPE, ElementType.TYPE}) 23 | public @interface Extend { 24 | @SuppressWarnings("rawtypes") 25 | Class[] value(); 26 | } 27 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/src/org/modelingvalue/jdclare/Native.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare; 15 | 16 | import java.lang.annotation.ElementType; 17 | import java.lang.annotation.Retention; 18 | import java.lang.annotation.RetentionPolicy; 19 | import java.lang.annotation.Target; 20 | 21 | @Retention(RetentionPolicy.RUNTIME) 22 | @Target(ElementType.TYPE) 23 | public @interface Native { 24 | @SuppressWarnings("rawtypes") 25 | Class value(); 26 | } 27 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/src/org/modelingvalue/jdclare/Property.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare; 15 | 16 | import java.lang.annotation.ElementType; 17 | import java.lang.annotation.Retention; 18 | import java.lang.annotation.RetentionPolicy; 19 | import java.lang.annotation.Target; 20 | 21 | @Retention(RetentionPolicy.RUNTIME) 22 | @Target(ElementType.METHOD) 23 | public @interface Property { 24 | 25 | PropertyQualifier[] value() default {}; 26 | 27 | int key() default -1; 28 | 29 | } 30 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/src/org/modelingvalue/jdclare/PropertyQualifier.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare; 15 | 16 | public enum PropertyQualifier { 17 | mandatory(), 18 | optional(), 19 | containment(), 20 | constant(), 21 | visible(), 22 | hidden(), 23 | validation(); 24 | } 25 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/src/org/modelingvalue/jdclare/Rule.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare; 15 | 16 | import java.lang.annotation.ElementType; 17 | import java.lang.annotation.Retention; 18 | import java.lang.annotation.RetentionPolicy; 19 | import java.lang.annotation.Target; 20 | 21 | @Retention(RetentionPolicy.RUNTIME) 22 | @Target(ElementType.METHOD) 23 | public @interface Rule { 24 | } 25 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/src/org/modelingvalue/jdclare/meta/DClassContainer.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare.meta; 15 | 16 | import static org.modelingvalue.jdclare.PropertyQualifier.*; 17 | 18 | import org.modelingvalue.collections.Set; 19 | import org.modelingvalue.jdclare.DNamed; 20 | import org.modelingvalue.jdclare.Property; 21 | 22 | public interface DClassContainer extends DNamed { 23 | 24 | @Property(containment) 25 | Set> classes(); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /org.modelingvalue.jdclare/src/org/modelingvalue/jdclare/meta/DPackageContainer.java: -------------------------------------------------------------------------------- 1 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | // (C) Copyright 2018 Modeling Value Group B.V. (http://modelingvalue.org) ~ 3 | // ~ 4 | // Licensed under the GNU Lesser General Public License v3.0 (the "License"). You may not use this file except in ~ 5 | // compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.0 ~ 6 | // Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on ~ 7 | // an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the ~ 8 | // specific language governing permissions and limitations under the License. ~ 9 | // ~ 10 | // Contributors: ~ 11 | // Wim Bast, Carel Bast, Tom Brus, Arjan Kok, Ronald Krijgsheld ~ 12 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 | 14 | package org.modelingvalue.jdclare.meta; 15 | 16 | import static org.modelingvalue.jdclare.PropertyQualifier.*; 17 | 18 | import org.modelingvalue.collections.Set; 19 | import org.modelingvalue.jdclare.DObject; 20 | import org.modelingvalue.jdclare.Property; 21 | 22 | public interface DPackageContainer extends DObject { 23 | 24 | @Property(containment) 25 | Set packages(); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /postProcessAntFiles.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | sedi() { 4 | if [[ "$OSTYPE" =~ darwin* ]]; then 5 | sed -i '' "$@" 6 | else 7 | sed -i "$@" 8 | fi 9 | } 10 | 11 | for xml in build.xml */module_*.xml; do 12 | echo "===== $xml" 13 | # unfortunately IntellJ generates absolute paths for some zipfileset: 14 | sedi 's| calls: 17 | sedi 's|