├── .gitignore ├── LICENSE ├── LICENSE_HEADER ├── MachineLearninAlg.rtf ├── README.md ├── TODO_AFTERNOON ├── addons ├── org.kevoree.modeling.microframework.addons.nunjucks │ ├── pom.xml │ └── src │ │ └── main │ │ └── resources │ │ ├── filters.js │ │ └── nunjucks.js └── org.kevoree.modeling.microframework.addons.swing │ ├── pom.xml │ └── src │ ├── main │ └── java │ │ └── org │ │ └── kevoree │ │ └── modeling │ │ └── framework │ │ └── addons │ │ └── swing │ │ └── GraphBuilder.java │ └── test │ └── java │ └── GraphTest.java ├── deploy.sh ├── documentation ├── build.sh ├── docs │ ├── about.md │ ├── index.md │ ├── reflexive.md │ ├── start.md │ ├── start_js.md │ ├── template_js.md │ └── traversal.md ├── mkdocs.yml ├── run.sh └── site │ ├── about │ └── index.html │ ├── css │ ├── highlight.css │ ├── theme.css │ └── theme_extra.css │ ├── fonts │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ └── fontawesome-webfont.woff │ ├── img │ └── favicon.ico │ ├── index.html │ ├── js │ ├── highlight.pack.js │ └── theme.js │ └── license │ └── highlight.js │ └── LICENSE ├── drivers ├── org.kevoree.modeling.microframework.databases.dht.openChord │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── OpenchordContentDeliveryDriver.java │ │ └── test │ │ └── java │ │ └── OpenChordTest.java ├── org.kevoree.modeling.microframework.databases.webrtc │ ├── pom.xml │ └── src │ │ └── main │ │ ├── html │ │ ├── core-page.css │ │ ├── elements │ │ │ └── peerRTC │ │ │ │ ├── peerRTC.css │ │ │ │ ├── peerRTC.html │ │ │ │ └── peerRTCchrome.html │ │ └── index.html │ │ ├── js │ │ ├── adapter.js │ │ ├── dbIndexed.js │ │ └── intercom.js │ │ └── resources │ │ ├── bower.json │ │ └── bower_components │ │ ├── core-component-page │ │ ├── .bower.json │ │ ├── README.md │ │ ├── bowager-logo.png │ │ ├── bower.json │ │ ├── core-component-page.html │ │ ├── demo.html │ │ └── index.html │ │ ├── polymer │ │ ├── .bower.json │ │ ├── README.md │ │ ├── bower.json │ │ ├── build.log │ │ ├── layout.html │ │ ├── polymer.html │ │ ├── polymer.js │ │ └── polymer.min.js │ │ └── webcomponentsjs │ │ ├── .bower.json │ │ ├── CustomElements.js │ │ ├── CustomElements.min.js │ │ ├── HTMLImports.js │ │ ├── HTMLImports.min.js │ │ ├── README.md │ │ ├── ShadowDOM.js │ │ ├── ShadowDOM.min.js │ │ ├── bower.json │ │ ├── build.log │ │ ├── package.json │ │ ├── webcomponents-lite.js │ │ ├── webcomponents-lite.min.js │ │ ├── webcomponents.js │ │ └── webcomponents.min.js ├── org.kevoree.modeling.microframework.drivers.chronicle │ ├── README.md │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── org │ │ │ └── kevoree │ │ │ └── modeling │ │ │ └── databases │ │ │ └── chronicle │ │ │ └── ChronicleContentDeliveryDriver.java │ │ └── test │ │ └── java │ │ └── org │ │ └── kevoree │ │ └── modeling │ │ └── databases │ │ └── chronicle │ │ └── ChronicleTest.java ├── org.kevoree.modeling.microframework.drivers.leveldb │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── org │ │ │ └── kevoree │ │ │ └── modeling │ │ │ └── drivers │ │ │ └── leveldb │ │ │ └── LevelDbContentDeliveryDriver.java │ │ └── test │ │ └── java │ │ └── org │ │ └── kevoree │ │ └── modeling │ │ └── drivers │ │ └── leveldb │ │ └── LevelDbTest.java ├── org.kevoree.modeling.microframework.drivers.mapdb │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── org │ │ └── kevoree │ │ └── modeling │ │ └── drivers │ │ └── mapdb │ │ └── MapDbContentDeliveryDriver.java ├── org.kevoree.modeling.microframework.drivers.mongodb │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── org │ │ │ └── kevoree │ │ │ └── modeling │ │ │ └── drivers │ │ │ └── mongodb │ │ │ └── MongoDbContentDeliveryDriver.java │ │ └── test │ │ └── java │ │ └── org │ │ └── kevoree │ │ └── modeling │ │ └── drivers │ │ └── mongodb │ │ └── MongoDbTest.java ├── org.kevoree.modeling.microframework.drivers.redis │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── org │ │ │ └── kevoree │ │ │ └── modeling │ │ │ └── databases │ │ │ └── redis │ │ │ └── RedisContentDeliveryDriver.java │ │ └── test │ │ └── java │ │ └── org │ │ └── kevoree │ │ └── modeling │ │ └── databases │ │ └── redis │ │ └── RedisTest.java ├── org.kevoree.modeling.microframework.drivers.rocksdb │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── org │ │ └── kevoree │ │ └── modeling │ │ └── databases │ │ └── rocksdb │ │ └── RocksDbContentDeliveryDriver.java └── org.kevoree.modeling.microframework.drivers.websocket │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── kevoree │ │ │ └── modeling │ │ │ └── databases │ │ │ └── websocket │ │ │ ├── UndertowWSClient.java │ │ │ ├── WebSocketClient.java │ │ │ └── WebSocketWrapper.java │ └── ts │ │ ├── org.kevoree.modeling.database.websocket.WebSocket.js │ │ ├── org.kevoree.modeling.database.websocket.WebSocket.js.map │ │ └── org.kevoree.modeling.database.websocket.WebSocket.ts │ └── test │ └── java │ └── org │ └── kevoree │ └── modeling │ └── databases │ └── websocket │ └── test │ ├── KContentDeliveryDriverMock.java │ └── WebSocketTest.java ├── install.sh ├── org.kevoree.modeling.ast ├── pom.xml └── src │ └── main │ └── java │ └── org │ └── kevoree │ └── modeling │ └── ast │ ├── MModel.java │ ├── MModelAttribute.java │ ├── MModelClass.java │ ├── MModelClassifier.java │ ├── MModelEnum.java │ ├── MModelOperation.java │ ├── MModelOperationParam.java │ └── MModelReference.java ├── org.kevoree.modeling.generator.mavenplugin ├── pom.xml └── src │ └── main │ ├── java │ └── org │ │ └── kevoree │ │ └── modeling │ │ └── generator │ │ └── mavenplugin │ │ ├── GenModelPlugin.java │ │ ├── HtmlTemplateGenerator.java │ │ └── TscRunner.java │ └── resources │ ├── node.js │ ├── tsc.js │ └── tsc │ ├── lib.core.d.ts │ ├── lib.core.es6.d.ts │ ├── lib.d.ts │ ├── lib.dom.d.ts │ ├── lib.es6.d.ts │ ├── lib.scriptHost.d.ts │ └── lib.webworker.d.ts ├── org.kevoree.modeling.generator.standalone ├── pom.xml └── src │ └── main │ └── java │ └── org │ └── kevoree │ └── modeling │ └── generator │ └── standalone │ └── App.java ├── org.kevoree.modeling.generator ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── kevoree │ │ │ └── modeling │ │ │ └── generator │ │ │ ├── ClassGenerationContext.java │ │ │ ├── GenerationContext.java │ │ │ ├── Generator.java │ │ │ ├── MMPsiVisitor.java │ │ │ ├── ProcessorHelper.java │ │ │ └── misc │ │ │ └── VelocityLog.java │ └── resources │ │ └── vTemplates │ │ ├── ClassImplTemplate.vm │ │ ├── ClassTemplate.vm │ │ ├── EnumTemplate.vm │ │ ├── MetaClassTemplate2.vm │ │ ├── MetaEnumTemplate.vm │ │ ├── ModelTemplate.vm │ │ ├── UniverseTemplate.vm │ │ ├── ViewImplTemplate.vm │ │ └── ViewTemplate.vm │ └── test │ ├── java │ └── org │ │ └── kevoree │ │ └── modeling │ │ └── generator │ │ └── test │ │ ├── CloudGenTest.java │ │ └── EnumGenTest.java │ └── resources │ ├── Cloud.mm │ └── Enum.mm ├── org.kevoree.modeling.microframework.typescript ├── package.json ├── pom.xml └── src │ ├── main │ ├── resources │ │ ├── java.d.ts │ │ ├── java.js │ │ ├── org.kevoree.modeling.microframework.typescript.d.ts │ │ └── org.kevoree.modeling.microframework.typescript.js │ └── ts │ │ ├── java.d.ts │ │ ├── java.js │ │ ├── org.kevoree.modeling.microframework.typescript.js │ │ ├── org.kevoree.modeling.microframework.typescript.js.map │ │ └── org.kevoree.modeling.microframework.typescript.ts │ └── test │ ├── java │ └── org │ │ └── kevoree │ │ └── modeling │ │ └── microframework │ │ └── typescript │ │ └── NoJs_MainTest.java │ └── resources │ ├── MyTestRunner.js │ ├── es6-collections-full.js │ └── test.html ├── org.kevoree.modeling.microframework ├── pom.xml └── src │ ├── main │ └── java │ │ └── org │ │ └── kevoree │ │ └── modeling │ │ ├── KActionType.java │ │ ├── KCallback.java │ │ ├── KConfig.java │ │ ├── KContentKey.java │ │ ├── KModel.java │ │ ├── KObject.java │ │ ├── KTimeWalker.java │ │ ├── KType.java │ │ ├── KUniverse.java │ │ ├── KView.java │ │ ├── abs │ │ ├── AbstractDataType.java │ │ ├── AbstractKModel.java │ │ ├── AbstractKObject.java │ │ ├── AbstractKUniverse.java │ │ ├── AbstractKView.java │ │ ├── AbstractTimeWalker.java │ │ └── KLazyResolver.java │ │ ├── cdn │ │ ├── KContentDeliveryDriver.java │ │ ├── KContentPutRequest.java │ │ └── impl │ │ │ ├── ContentPutRequest.java │ │ │ └── MemoryContentDeliveryDriver.java │ │ ├── defer │ │ ├── KDefer.java │ │ └── impl │ │ │ └── Defer.java │ │ ├── event │ │ ├── KEventListener.java │ │ ├── KEventMultiListener.java │ │ └── impl │ │ │ └── LocalEventListeners.java │ │ ├── extrapolation │ │ ├── Extrapolation.java │ │ └── impl │ │ │ ├── DiscreteExtrapolation.java │ │ │ ├── PolynomialExtrapolation.java │ │ │ └── maths │ │ │ ├── AdjLinearSolverQr.java │ │ │ ├── DenseMatrix64F.java │ │ │ ├── PolynomialFitEjml.java │ │ │ └── QRDecompositionHouseholderColumn_D64.java │ │ ├── format │ │ ├── KModelFormat.java │ │ ├── json │ │ │ ├── JsonFormat.java │ │ │ ├── JsonModelLoader.java │ │ │ ├── JsonModelSerializer.java │ │ │ ├── JsonObjectReader.java │ │ │ ├── JsonRaw.java │ │ │ ├── JsonString.java │ │ │ ├── JsonType.java │ │ │ └── Lexer.java │ │ └── xmi │ │ │ ├── SerializationContext.java │ │ │ ├── XMILoadingContext.java │ │ │ ├── XMIModelLoader.java │ │ │ ├── XMIModelSerializer.java │ │ │ ├── XMIResolveCommand.java │ │ │ ├── XmiFormat.java │ │ │ ├── XmlParser.java │ │ │ └── XmlToken.java │ │ ├── infer │ │ ├── AnalyticKInfer.java │ │ ├── GaussianClassificationKInfer.java │ │ ├── KInfer.java │ │ ├── KInferState.java │ │ ├── LinearRegressionKInfer.java │ │ ├── PerceptronClassificationKInfer.java │ │ ├── PolynomialOfflineKInfer.java │ │ ├── PolynomialOnlineKInfer.java │ │ ├── WinnowClassificationKInfer.java │ │ └── states │ │ │ ├── AnalyticKInferState.java │ │ │ ├── Bayesian │ │ │ ├── BayesianSubstate.java │ │ │ ├── EnumSubstate.java │ │ │ └── GaussianSubState.java │ │ │ ├── BayesianClassificationState.java │ │ │ ├── DoubleArrayKInferState.java │ │ │ ├── GaussianArrayKInferState.java │ │ │ └── PolynomialKInferState.java │ │ ├── memory │ │ ├── KMemoryElement.java │ │ ├── KMemoryFactory.java │ │ ├── cache │ │ │ ├── KCache.java │ │ │ └── impl │ │ │ │ ├── HashMemoryCache.java │ │ │ │ ├── KCacheDirty.java │ │ │ │ └── KObjectWeakReference.java │ │ ├── manager │ │ │ ├── AccessMode.java │ │ │ ├── KMemoryManager.java │ │ │ ├── KMemorySegmentResolutionTrace.java │ │ │ └── impl │ │ │ │ ├── HeapMemoryManager.java │ │ │ │ ├── KeyCalculator.java │ │ │ │ ├── LookupAllRunnable.java │ │ │ │ ├── MemorySegmentResolutionTrace.java │ │ │ │ └── ResolutionHelper.java │ │ └── struct │ │ │ ├── HeapMemoryFactory.java │ │ │ ├── map │ │ │ ├── KIntMap.java │ │ │ ├── KIntMapCallBack.java │ │ │ ├── KLongLongMap.java │ │ │ ├── KLongLongMapCallBack.java │ │ │ ├── KLongMap.java │ │ │ ├── KLongMapCallBack.java │ │ │ ├── KStringMap.java │ │ │ ├── KStringMapCallBack.java │ │ │ ├── KUniverseOrderMap.java │ │ │ └── impl │ │ │ │ ├── ArrayIntMap.java │ │ │ │ ├── ArrayLongLongMap.java │ │ │ │ ├── ArrayLongMap.java │ │ │ │ ├── ArrayStringMap.java │ │ │ │ └── ArrayUniverseOrderMap.java │ │ │ ├── segment │ │ │ ├── KMemorySegment.java │ │ │ └── impl │ │ │ │ └── HeapMemorySegment.java │ │ │ └── tree │ │ │ ├── KLongLongTree.java │ │ │ ├── KLongTree.java │ │ │ ├── KTree.java │ │ │ ├── KTreeWalker.java │ │ │ └── impl │ │ │ ├── LongLongTree.java │ │ │ ├── LongTree.java │ │ │ ├── LongTreeNode.java │ │ │ ├── TreeNode.java │ │ │ └── TreeReaderContext.java │ │ ├── message │ │ ├── KMessage.java │ │ ├── KMessageLoader.java │ │ └── impl │ │ │ ├── AtomicGetIncrementRequest.java │ │ │ ├── AtomicGetIncrementResult.java │ │ │ ├── Events.java │ │ │ ├── GetRequest.java │ │ │ ├── GetResult.java │ │ │ ├── MessageHelper.java │ │ │ ├── OperationCallMessage.java │ │ │ ├── OperationResultMessage.java │ │ │ ├── PutRequest.java │ │ │ └── PutResult.java │ │ ├── meta │ │ ├── KMeta.java │ │ ├── KMetaAttribute.java │ │ ├── KMetaClass.java │ │ ├── KMetaModel.java │ │ ├── KMetaOperation.java │ │ ├── KMetaReference.java │ │ ├── KPrimitiveTypes.java │ │ ├── MetaType.java │ │ └── impl │ │ │ ├── GenericModel.java │ │ │ ├── GenericObject.java │ │ │ ├── GenericUniverse.java │ │ │ ├── GenericView.java │ │ │ ├── MetaAttribute.java │ │ │ ├── MetaClass.java │ │ │ ├── MetaModel.java │ │ │ ├── MetaOperation.java │ │ │ └── MetaReference.java │ │ ├── operation │ │ ├── KOperation.java │ │ ├── KOperationManager.java │ │ └── impl │ │ │ └── HashOperationManager.java │ │ ├── scheduler │ │ ├── KScheduler.java │ │ └── impl │ │ │ ├── DirectScheduler.java │ │ │ └── ExecutorServiceScheduler.java │ │ ├── traversal │ │ ├── KTraversal.java │ │ ├── KTraversalAction.java │ │ ├── KTraversalFilter.java │ │ ├── impl │ │ │ ├── Traversal.java │ │ │ ├── actions │ │ │ │ ├── DeepCollectAction.java │ │ │ │ ├── FilterAction.java │ │ │ │ ├── FilterAttributeAction.java │ │ │ │ ├── FilterAttributeQueryAction.java │ │ │ │ ├── FilterNotAttributeAction.java │ │ │ │ ├── FinalAction.java │ │ │ │ ├── MapAction.java │ │ │ │ ├── RemoveDuplicateAction.java │ │ │ │ ├── TraverseAction.java │ │ │ │ └── TraverseQueryAction.java │ │ │ └── selector │ │ │ │ ├── Query.java │ │ │ │ ├── QueryParam.java │ │ │ │ └── Selector.java │ │ └── visitor │ │ │ ├── KModelAttributeVisitor.java │ │ │ ├── KModelVisitor.java │ │ │ └── KVisitResult.java │ │ └── util │ │ └── Checker.java │ └── test │ └── java │ └── org │ └── kevoree │ └── modeling │ ├── DeleteTest.java │ ├── HelloTest.java │ ├── LookupRootTest.java │ ├── LookupTest.java │ ├── MultiUniverseTest.java │ ├── ParentStorageTest.java │ ├── SpeedTest.java │ ├── TimeTest.java │ ├── UniverseResolutionTest.java │ ├── UniverseTest.java │ ├── UtilityTest.java │ ├── cdn │ └── BaseKContentDeliveryDriverTest.java │ ├── cloudmodel │ ├── CloudModel.java │ ├── CloudUniverse.java │ ├── CloudView.java │ ├── Element.java │ ├── Node.java │ ├── impl │ │ ├── CloudViewImpl.java │ │ ├── ElementImpl.java │ │ └── NodeImpl.java │ └── meta │ │ ├── MetaElement.java │ │ └── MetaNode.java │ ├── defer │ └── BaseKDeferTest.java │ ├── event │ └── KEventListenerTest.java │ ├── extrapolation │ ├── PolynomialKMFTest.java │ ├── PolynomialModel.java.deactivated │ ├── PolynomialSaveLoadTest.java.deactivated │ ├── PolynomialTest.java.deactivated │ └── StatClass.java.deactivated │ ├── format │ ├── json │ │ ├── JSONLoadTest.java │ │ └── JSONSaveTest.java │ └── xmi │ │ └── XMISaveTest.java │ ├── infer │ └── BaseKInferTest.java │ ├── memory │ ├── cache │ │ ├── BaseKCacheTest.java │ │ └── impl │ │ │ ├── HashMemoryCacheTest.java │ │ │ ├── KCacheCleanerTest.java │ │ │ └── KContentKeyTest.java │ ├── manager │ │ └── BaseKMemoryManagerTest.java │ └── struct │ │ ├── map │ │ ├── BaseKIntHashMapTest.java │ │ ├── BaseKLongHashMapTest.java │ │ ├── BaseKLongLongHashMapTest.java │ │ ├── BaseKStringHashMapTest.java │ │ ├── BaseKUniverseOrderMapTest.java │ │ ├── RandomString.java │ │ └── impl │ │ │ ├── ArrayLongHashMapTest.java │ │ │ ├── ArrayLongLongHashMapTest.java │ │ │ ├── ArrayStringHashMapTest.java │ │ │ └── ArrayUniverseOrderMapTest.java │ │ ├── segment │ │ ├── BaseKMemorySegmentTest.java │ │ └── impl │ │ │ └── HeapMemorySegmentTest.java │ │ └── tree │ │ ├── BaseKLongLongTreeTest.java │ │ ├── BaseKLongTreeTest.java │ │ ├── BaseKTreeTest.java │ │ ├── BaseKTreeWalkerTest.java │ │ ├── MutableInteger.java │ │ └── impl │ │ ├── LongLongTreeTest.java │ │ └── LongTreeTest.java │ ├── message │ └── KMessageTest.java │ ├── meta │ └── ReflexiveTest.java │ ├── operation │ └── CloudOperationTest.java │ ├── scheduler │ ├── BaseKSchedulerTest.java │ └── impl │ │ └── SchedulerTest.java │ └── traversal │ ├── BasicSelectTest.java │ ├── ParentAndReverseTest.java │ ├── QueryParserTest.java │ └── TraversalTest.java ├── pom.xml ├── releaseScript.sh └── test ├── org.kevoree.modeling.test.cloud ├── metamodel │ └── Cloud.mm ├── pom.xml └── src │ ├── main │ └── resources │ │ ├── index.html │ │ └── org.kevoree.modeling.test.cloud-all.js │ └── test │ └── java │ └── org │ └── kevoree │ └── cloud │ └── test │ ├── CloudOperationTest.java │ └── SerializerTest.java ├── org.kevoree.modeling.test.datastore ├── metamodel │ └── Geometry.mm ├── pom.xml └── src │ └── main │ ├── java │ └── org │ │ └── kevoree │ │ └── modeling │ │ └── test │ │ └── datastore │ │ ├── MainClientTest.java │ │ ├── MainServerTest.java │ │ └── Utils.java │ └── resources │ ├── index.html │ ├── java.d.ts │ ├── java.js │ ├── lib.d.ts │ ├── org.kevoree.modeling.database.websocket.WebSocket.d.ts │ ├── org.kevoree.modeling.database.websocket.WebSocket.js │ ├── org.kevoree.modeling.microframework.typescript.d.ts │ ├── org.kevoree.modeling.microframework.typescript.js │ ├── org.kevoree.modeling.test.datastore-all.js │ ├── org.kevoree.modeling.test.datastore.d.ts │ ├── org.kevoree.modeling.test.datastore.js │ ├── org.kevoree.modeling.test.datastore.js.map │ ├── org.kevoree.modeling.test.datastore.ts │ └── tsc.js ├── org.kevoree.modeling.test.diamond ├── Diamond.mm ├── pom.xml └── src │ ├── main │ └── resources │ │ ├── index.html │ │ └── org.kevoree.modeling.test.diamond-all.js │ └── test │ └── java │ └── DiamondTest.java ├── org.kevoree.modeling.test.fsm ├── metamodel │ ├── FSM.mm │ ├── fsm-noOpposite.ecore │ └── org.fsmsample.ecore ├── pom.xml └── src │ └── test │ └── java │ └── org │ └── kevoree │ └── fsm │ └── test │ └── SaveXMITest.java ├── org.kevoree.modeling.test.kevoree ├── org.kevoree.mm ├── pom.xml └── src │ ├── main │ └── resources │ │ ├── index.html │ │ └── org.kevoree.modeling.test.kevoree-all.js │ └── test │ └── java │ └── org │ └── kevoree │ └── test │ └── SimpleTest.java ├── org.kevoree.modeling.test.opposite ├── metamodel │ └── opposite.mm ├── pom.xml └── src │ └── test │ └── java │ └── org │ └── kevoree │ └── modeling │ └── test │ └── opposite │ └── OppositeTest.java ├── org.kevoree.modeling.test.polymer ├── TimeMachine.mm ├── pom.xml └── src │ └── main │ └── resources │ ├── bower_components │ ├── core-component-page │ │ ├── .bower.json │ │ ├── README.md │ │ ├── bowager-logo.png │ │ ├── bower.json │ │ ├── core-component-page.html │ │ ├── demo.html │ │ └── index.html │ ├── polymer │ │ ├── .bower.json │ │ ├── README.md │ │ ├── bower.json │ │ ├── build.log │ │ ├── layout.html │ │ ├── polymer.html │ │ ├── polymer.js │ │ └── polymer.min.js │ └── webcomponentsjs │ │ ├── .bower.json │ │ ├── CustomElements.js │ │ ├── CustomElements.min.js │ │ ├── HTMLImports.js │ │ ├── HTMLImports.min.js │ │ ├── README.md │ │ ├── ShadowDOM.js │ │ ├── ShadowDOM.min.js │ │ ├── bower.json │ │ ├── webcomponents-lite.js │ │ ├── webcomponents-lite.min.js │ │ ├── webcomponents.js │ │ └── webcomponents.min.js │ ├── index.html │ ├── kmf_components │ ├── kmf-collection │ │ └── kmf-collection.html │ └── kmf-element │ │ └── kmf-element.html │ └── org.kevoree.modeling.test.timemachine-all.js └── pom.xml /.gitignore: -------------------------------------------------------------------------------- 1 | */.svn/* 2 | **/.svn/* 3 | **/bin/* 4 | /.svn/ 5 | target/ 6 | CMakeFiles/ 7 | .DS_Store 8 | .classpath 9 | .project 10 | .settings/ 11 | *.iml 12 | .class 13 | *.class 14 | *.ipr 15 | *.iws 16 | keystore 17 | org.kevoree.modeling.idea/out 18 | **/node_modules/** 19 | **/*.jar 20 | /release.properties 21 | build/ 22 | CMakeCache.txt 23 | cmake_install.cmake 24 | .idea 25 | .DS_Store -------------------------------------------------------------------------------- /LICENSE_HEADER: -------------------------------------------------------------------------------- 1 | Licensed under the GNU LESSER GENERAL PUBLIC LICENSE, Version 3, 29 June 2007; 2 | you may not use this file except in compliance with the License. 3 | You may obtain a copy of the License at 4 | 5 | http://www.gnu.org/licenses/lgpl-3.0.txt 6 | 7 | Unless required by applicable law or agreed to in writing, software 8 | distributed under the License is distributed on an "AS IS" BASIS, 9 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10 | See the License for the specific language governing permissions and 11 | limitations under the License. 12 | 13 | Authors: 14 | Fouquet Francois 15 | Nain Gregory -------------------------------------------------------------------------------- /MachineLearninAlg.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\cocoartf1343\cocoasubrtf160 2 | {\fonttbl\f0\fswiss\fcharset0 Helvetica;} 3 | {\colortbl;\red255\green255\blue255;} 4 | \paperw11900\paperh16840\margl1440\margr1440\vieww37900\viewh20840\viewkind0 5 | \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural 6 | 7 | \f0\fs24 \cf0 Machine Learning Algorithms: \ 8 | \ 9 | Full Online (live learning) algorithms: \ 10 | \'97\'97\'97\'97\'97\'97\'97\'97\'97\'97\'97\'97\ 11 | Supervised Classification: \ 12 | - Winnow: Input: array of booleans, output: boolean classification, state: array of double (weights), parameters (alpha: reward, beta: penalty).\ 13 | - Perceptron: Input: array of double, output: boolean classification, state: array of double (weights) + one double (bias), parameters (maxIteration).\ 14 | \ 15 | Supervised Regression:\ 16 | - Live Linear regression: Input: array of double, output: double, state: array of double (weights), parameters (alpha: learning rate).\ 17 | \ 18 | \ 19 | Ref\ 20 | More algorithms: {\field{\*\fldinst{HYPERLINK "http://alumnus.caltech.edu/~amir/compar.pdf"}}{\fldrslt http://alumnus.caltech.edu/~amir/compar.pdf}}\ 21 | Nice slides about learning with time-series: {\field{\*\fldinst{HYPERLINK "http://www.ulb.ac.be/di/map/gbonte/ftp/time_ser.pdf"}}{\fldrslt http://www.ulb.ac.be/di/map/gbonte/ftp/time_ser.pdf}} (VERY NICE)\ 22 | \ 23 | } -------------------------------------------------------------------------------- /TODO_AFTERNOON: -------------------------------------------------------------------------------- 1 | 2 | Finish storage of KInfer 3 | Think about changing the storage using the MM versionning ... from JSON to BSON (using ID), will make everything faster !! 4 | CHECK the clone object on polynomial and so on 5 | Add strategy for periodic storage (especially for infer) 6 | Merge MetaModel and KObject for TimeSave -------------------------------------------------------------------------------- /addons/org.kevoree.modeling.microframework.addons.nunjucks/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | org.kevoree.modeling.microframework.addons.nunjucks 5 | Kevoree :: Modeling :: Addons :: Nunjucks 6 | 7 | 8 | org.kevoree.modeling.root 9 | org.kevoree.modeling 10 | 4.18.5-SNAPSHOT 11 | ../../pom.xml 12 | 13 | 14 | 15 | 16 | org.kevoree.modeling 17 | org.kevoree.modeling.microframework 18 | ${project.version} 19 | 20 | 21 | org.kevoree.modeling 22 | org.kevoree.modeling.microframework.typescript 23 | ${project.version} 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /addons/org.kevoree.modeling.microframework.addons.nunjucks/src/main/resources/filters.js: -------------------------------------------------------------------------------- 1 | 2 | function fieldFilter(src, attName) { 3 | var metaAtt = src.metaClass().attribute(attName); 4 | //todo improve 5 | var id = 'el_' + Math.floor(Math.random() * 10000); 6 | var id_fct = id + '_fct'; 7 | var copyObj = src; 8 | window[id_fct] = function(newVal){ 9 | copyObj.set(metaAtt,newVal); 10 | copyObj.view().universe().model().save(); 11 | } 12 | var currentVal = src.get(metaAtt); 13 | var ret = new nunjucks.runtime.SafeString(''); 14 | return ret; 15 | } 16 | -------------------------------------------------------------------------------- /addons/org.kevoree.modeling.microframework.addons.swing/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | org.kevoree.modeling.microframework.addons.swing 5 | Kevoree :: Modeling :: Addons :: Swing 6 | 7 | 8 | 1.2 9 | 10 | 11 | 12 | org.kevoree.modeling.root 13 | org.kevoree.modeling 14 | 4.18.5-SNAPSHOT 15 | ../../pom.xml 16 | 17 | 18 | 19 | 20 | org.kevoree.modeling 21 | org.kevoree.modeling.microframework 22 | ${project.parent.version} 23 | 24 | 25 | org.graphstream 26 | gs-core 27 | ${gs.core.version} 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /deploy.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Licensed under the GNU LESSER GENERAL PUBLIC LICENSE, Version 3, 29 June 2007; 3 | # you may not use this file except in compliance with the License. 4 | # You may obtain a copy of the License at 5 | # 6 | # http://www.gnu.org/licenses/lgpl-3.0.txt 7 | # 8 | # Unless required by applicable law or agreed to in writing, software 9 | # distributed under the License is distributed on an "AS IS" BASIS, 10 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | # See the License for the specific language governing permissions and 12 | # limitations under the License. 13 | # 14 | # Authors: 15 | # Fouquet Francois 16 | # Nain Gregory 17 | # 18 | 19 | export JAVA_HOME=$(/usr/libexec/java_home) 20 | mvn clean deploy -------------------------------------------------------------------------------- /documentation/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mkdocs build -------------------------------------------------------------------------------- /documentation/docs/about.md: -------------------------------------------------------------------------------- 1 | # About the Kevoree Modeling Framework developement team 2 | 3 | ## Who are we ? 4 | 5 | Most of us are working in the Serval Team at the Security for Reliability and Trust lab in Luxembourg. 6 | We are researchers in Data, Modeling and Software engineering methods 7 | 8 | We are researchers in Modeling and Big Data to interested in software methods to define and enhance intelligent software in the domain of Smart*(Home,Building,City,Grid). 9 | 10 | ## Developers 11 | 12 | - François Fouquet 13 | - Grégory Nain 14 | - Thomas Hartmann 15 | - Assaad Moawad -------------------------------------------------------------------------------- /documentation/docs/index.md: -------------------------------------------------------------------------------- 1 | # Welcome to MkDocs 2 | 3 | For full documentation visit [mkdocs.org](http://mkdocs.org). 4 | 5 | ## Commands 6 | 7 | * `mkdocs new [dir-name]` - Create a new project. 8 | * `mkdocs serve` - Start the live-reloading docs server. 9 | * `mkdocs build` - Build the documentation site. 10 | * `mkdocs help` - Print this help message. 11 | 12 | ## Project layout 13 | 14 | mkdocs.yml # The configuration file. 15 | docs/ 16 | index.md # The documentation homepage. 17 | ... # Other markdown pages, images and other files. 18 | -------------------------------------------------------------------------------- /documentation/docs/start.md: -------------------------------------------------------------------------------- 1 | # Getting started in Java -------------------------------------------------------------------------------- /documentation/docs/start_js.md: -------------------------------------------------------------------------------- 1 | # Getting started in JavaScript -------------------------------------------------------------------------------- /documentation/docs/template_js.md: -------------------------------------------------------------------------------- 1 | TODO (how to use, refer) -------------------------------------------------------------------------------- /documentation/docs/traversal.md: -------------------------------------------------------------------------------- 1 | # Promise and Select traversal API 2 | 3 | KMF is in roots asynchronous, this mean that you have to define a callback object object to retrieve the result of a relationship navigation for instance. 4 | This asynchronous aspect add a bit complexity when man has to travers a deep structure. 5 | Thus, similarly to graph database, KMF offer APIs to traverse directly several layer, similarly to some graph query languages. 6 | 7 | - Promise API 8 | - 9 | 10 | ## Promise based Traversal API 11 | 12 | ## Select API -------------------------------------------------------------------------------- /documentation/mkdocs.yml: -------------------------------------------------------------------------------- 1 | site_name: Kevoree Modeling Framework 2 | pages: 3 | - [index.md, Home] 4 | - [start.md, Getting Started in Java] 5 | - [start_js.md, Getting Started in JavaScript] 6 | - [promise.md, Promise API] 7 | - [reflexive.md, Reflexive API] 8 | - [about.md, About] 9 | theme: readthedocs -------------------------------------------------------------------------------- /documentation/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mkdocs serve -------------------------------------------------------------------------------- /documentation/site/css/theme_extra.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Sphinx doesn't have support for section dividers like we do in 3 | * MkDocs, this styles the section titles in the nav 4 | * 5 | * https://github.com/tomchristie/mkdocs/issues/175 6 | */ 7 | .wy-menu-vertical span { 8 | line-height: 18px; 9 | padding: 0.4045em 0.809em; 10 | display: block; 11 | position: relative; 12 | font-size: 90%; 13 | color: #838383; 14 | } 15 | 16 | /* 17 | * Long navigations run off the bottom of the screen as the nav 18 | * area doesn't scroll. 19 | * 20 | * https://github.com/tomchristie/mkdocs/pull/202 21 | */ 22 | .wy-nav-side { 23 | height: 100%; 24 | overflow-y: auto; 25 | } 26 | 27 | /* 28 | * Fix wrapping in the code highlighting 29 | * 30 | * https://github.com/tomchristie/mkdocs/issues/233 31 | */ 32 | code { 33 | white-space: pre; 34 | } 35 | -------------------------------------------------------------------------------- /documentation/site/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dukeboard/kevoree-modeling-framework/66a89dcde4c857042378e664dfc967c149b03326/documentation/site/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /documentation/site/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dukeboard/kevoree-modeling-framework/66a89dcde4c857042378e664dfc967c149b03326/documentation/site/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /documentation/site/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dukeboard/kevoree-modeling-framework/66a89dcde4c857042378e664dfc967c149b03326/documentation/site/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /documentation/site/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dukeboard/kevoree-modeling-framework/66a89dcde4c857042378e664dfc967c149b03326/documentation/site/img/favicon.ico -------------------------------------------------------------------------------- /documentation/site/js/theme.js: -------------------------------------------------------------------------------- 1 | $( document ).ready(function() { 2 | // Shift nav in mobile when clicking the menu. 3 | $(document).on('click', "[data-toggle='wy-nav-top']", function() { 4 | $("[data-toggle='wy-nav-shift']").toggleClass("shift"); 5 | $("[data-toggle='rst-versions']").toggleClass("shift"); 6 | }); 7 | // Close menu when you click a link. 8 | $(document).on('click', ".wy-menu-vertical .current ul li a", function() { 9 | $("[data-toggle='wy-nav-shift']").removeClass("shift"); 10 | $("[data-toggle='rst-versions']").toggleClass("shift"); 11 | }); 12 | $(document).on('click', "[data-toggle='rst-current-version']", function() { 13 | $("[data-toggle='rst-versions']").toggleClass("shift-up"); 14 | }); 15 | // Make tables responsive 16 | $("table.docutils:not(.field-list)").wrap("
"); 17 | 18 | hljs.initHighlightingOnLoad(); 19 | }); 20 | 21 | window.SphinxRtdTheme = (function (jquery) { 22 | var stickyNav = (function () { 23 | var navBar, 24 | win, 25 | stickyNavCssClass = 'stickynav', 26 | applyStickNav = function () { 27 | if (navBar.height() <= win.height()) { 28 | navBar.addClass(stickyNavCssClass); 29 | } else { 30 | navBar.removeClass(stickyNavCssClass); 31 | } 32 | }, 33 | enable = function () { 34 | applyStickNav(); 35 | win.on('resize', applyStickNav); 36 | }, 37 | init = function () { 38 | navBar = jquery('nav.wy-nav-side:first'); 39 | win = jquery(window); 40 | }; 41 | jquery(init); 42 | return { 43 | enable : enable 44 | }; 45 | }()); 46 | return { 47 | StickyNav : stickyNav 48 | }; 49 | }($)); 50 | -------------------------------------------------------------------------------- /documentation/site/license/highlight.js/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2006, Ivan Sagalaev 2 | All rights reserved. 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions are met: 5 | 6 | * Redistributions of source code must retain the above copyright 7 | notice, this list of conditions and the following disclaimer. 8 | * Redistributions in binary form must reproduce the above copyright 9 | notice, this list of conditions and the following disclaimer in the 10 | documentation and/or other materials provided with the distribution. 11 | * Neither the name of highlight.js nor the names of its contributors 12 | may be used to endorse or promote products derived from this software 13 | without specific prior written permission. 14 | 15 | THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY 16 | EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18 | DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY 19 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 22 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 | -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.databases.dht.openChord/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | org.kevoree.modeling.microframework.databases.openChord 5 | Kevoree :: Modeling :: DataBases :: Chord 6 | 7 | org.kevoree.modeling.root 8 | org.kevoree.modeling 9 | 4.11.1-SNAPSHOT 10 | ../../pom.xml 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | org.kevoree.modeling 19 | org.kevoree.modeling.microframework 20 | ${project.version} 21 | 22 | 23 | databases.dht 24 | openchord_jar 25 | 1.0.5 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.databases.webrtc/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | org.kevoree.modeling.microframework.databases.webrtc 5 | Kevoree :: Modeling :: DataBases :: WebRTC 6 | 7 | org.kevoree.modeling.root 8 | org.kevoree.modeling 9 | 4.11.1-SNAPSHOT 10 | ../../pom.xml 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | org.kevoree.modeling 19 | org.kevoree.modeling.microframework 20 | ${project.version} 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.databases.webrtc/src/main/html/core-page.css: -------------------------------------------------------------------------------- 1 | html,body { 2 | font-family: 'RobotoDraft', sans-serif; 3 | font-weight: 300; 4 | height: 100%; 5 | margin: 0; 6 | background-color: #E5E5E5; 7 | 8 | } 9 | .container { 10 | margin: 0 auto 0 auto; 11 | max-width: 40em; 12 | padding: 1em 1.5em 1.3em 1.5em; 13 | } -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.databases.webrtc/src/main/html/elements/peerRTC/peerRTC.css: -------------------------------------------------------------------------------- 1 | button { 2 | background-color: #d84a38; 3 | border: none; 4 | border-radius: 2px; 5 | color: white; 6 | font-family: 'Roboto', sans-serif; 7 | font-size: 0.8em; 8 | margin: 0 0 1em 0; 9 | padding: 0.5em 0.7em 0.6em 0.7em; 10 | } 11 | 12 | button:active { 13 | background-color: #cf402f; 14 | } 15 | 16 | button:hover { 17 | background-color: #cf402f; 18 | } 19 | 20 | button[disabled] { 21 | color: #ccc; 22 | } 23 | 24 | button[disabled]:hover { 25 | background-color: #d84a38; 26 | } 27 | div#buttons { 28 | margin: 0 0 1em 0; 29 | } 30 | div#send { 31 | margin: 0 20px 1em 0; 32 | } 33 | div#sendReceive { 34 | border-bottom: 1px solid #eee; 35 | margin: 0; 36 | padding: 0 0 10px 0; 37 | } 38 | div#sendReceive > div { 39 | display: inline-block; 40 | width: calc(50% - 20px); 41 | } 42 | form { 43 | margin: 0 0 1em 0; 44 | white-space: nowrap; 45 | } 46 | form span { 47 | font-weight: 300; 48 | margin: 0 1em 0 0; 49 | white-space: normal; 50 | } 51 | textarea { 52 | color: #444; 53 | font-size: 0.9em; 54 | font-weight: 300; 55 | height: 7.0em; 56 | padding: 5px; 57 | width: calc(100% - 10px); 58 | } 59 | -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.databases.webrtc/src/main/html/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | peer RTC test 12 | 13 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 27 |
28 | 29 |
30 | 31 | 32 | -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.databases.webrtc/src/main/resources/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "peer-rtc", 3 | "version": "0.1.0", 4 | "homepage": "none", 5 | "keywords": [ 6 | "peer-to-peer" 7 | ], 8 | "authors": [ 9 | "cyril cassagnes" 10 | ], 11 | "license": "MIT", 12 | "private": true, 13 | "ignore": [ 14 | "**/.*", 15 | "node_modules", 16 | "bower_components", 17 | "test", 18 | "tests" 19 | ], 20 | "dependencies": { 21 | "polymer": "Polymer/polymer#~0.5.4", 22 | "firebase": "~2.2.0" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.databases.webrtc/src/main/resources/bower_components/core-component-page/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-component-page", 3 | "private": true, 4 | "dependencies": { 5 | "webcomponentsjs": "Polymer/webcomponentsjs#^0.5", 6 | "polymer": "Polymer/polymer#^0.5" 7 | }, 8 | "version": "0.5.4", 9 | "homepage": "https://github.com/Polymer/core-component-page", 10 | "_release": "0.5.4", 11 | "_resolution": { 12 | "type": "version", 13 | "tag": "0.5.4", 14 | "commit": "a69d738a104271b497f50c2dfc449ec54d3e01b5" 15 | }, 16 | "_source": "git://github.com/Polymer/core-component-page.git", 17 | "_target": "^0.5", 18 | "_originalSource": "Polymer/core-component-page" 19 | } -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.databases.webrtc/src/main/resources/bower_components/core-component-page/README.md: -------------------------------------------------------------------------------- 1 | core-component-page 2 | =================== 3 | 4 | See the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-component-page) for more information. 5 | 6 | Note: this is the vulcanized version of [`core-component-page-dev`](https://github.com/Polymer/core-component-page-dev) (the source). 7 | -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.databases.webrtc/src/main/resources/bower_components/core-component-page/bowager-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dukeboard/kevoree-modeling-framework/66a89dcde4c857042378e664dfc967c149b03326/drivers/org.kevoree.modeling.microframework.databases.webrtc/src/main/resources/bower_components/core-component-page/bowager-logo.png -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.databases.webrtc/src/main/resources/bower_components/core-component-page/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-component-page", 3 | "private": true, 4 | "dependencies": { 5 | "webcomponentsjs": "Polymer/webcomponentsjs#^0.5", 6 | "polymer": "Polymer/polymer#^0.5" 7 | }, 8 | "version": "0.5.4" 9 | } -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.databases.webrtc/src/main/resources/bower_components/core-component-page/demo.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.databases.webrtc/src/main/resources/bower_components/core-component-page/index.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.databases.webrtc/src/main/resources/bower_components/polymer/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "polymer", 3 | "description": "Polymer is a new type of library for the web, built on top of Web Components, and designed to leverage the evolving web platform on modern browsers.", 4 | "homepage": "http://www.polymer-project.org/", 5 | "keywords": [ 6 | "util", 7 | "client", 8 | "browser", 9 | "web components", 10 | "web-components" 11 | ], 12 | "author": "Polymer Authors ", 13 | "private": true, 14 | "dependencies": { 15 | "core-component-page": "Polymer/core-component-page#^0.5", 16 | "webcomponentsjs": "Polymer/webcomponentsjs#^0.5" 17 | }, 18 | "devDependencies": { 19 | "tools": "Polymer/tools#master", 20 | "web-component-tester": "Polymer/web-component-tester#^1.4.2" 21 | }, 22 | "version": "0.5.4", 23 | "_release": "0.5.4", 24 | "_resolution": { 25 | "type": "version", 26 | "tag": "0.5.4", 27 | "commit": "17f0b5d75b1ceeb4414556d44eca197f7dacbde2" 28 | }, 29 | "_source": "git://github.com/Polymer/polymer.git", 30 | "_target": "^0.5", 31 | "_originalSource": "Polymer/polymer" 32 | } -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.databases.webrtc/src/main/resources/bower_components/polymer/README.md: -------------------------------------------------------------------------------- 1 | # Polymer 2 | 3 | [![Polymer build status](http://www.polymer-project.org/build/polymer-dev/status.png "Polymer build status")](http://build.chromium.org/p/client.polymer/waterfall) 4 | 5 | ## Brief Overview 6 | 7 | For more detailed info goto [http://polymer-project.org/](http://polymer-project.org/). 8 | 9 | Polymer is a new type of library for the web, designed to leverage the existing browser infrastructure to provide the encapsulation and extendability currently only available in JS libraries. 10 | 11 | Polymer is based on a set of future technologies, including [Shadow DOM](http://w3c.github.io/webcomponents/spec/shadow/), [Custom Elements](http://w3c.github.io/webcomponents/spec/custom/) and Model Driven Views. Currently these technologies are implemented as polyfills or shims, but as browsers adopt these features natively, the platform code that drives Polymer evacipates, leaving only the value-adds. 12 | 13 | ## Tools & Testing 14 | 15 | For running tests or building minified files, consult the [tooling information](https://www.polymer-project.org/resources/tooling-strategy.html). 16 | 17 | ## Releases 18 | 19 | [Release (tagged) versions](https://github.com/Polymer/polymer/releases) of Polymer include concatenated and minified sources for your convenience. 20 | 21 | [![Analytics](https://ga-beacon.appspot.com/UA-39334307-2/Polymer/polymer/README)](https://github.com/igrigorik/ga-beacon) 22 | -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.databases.webrtc/src/main/resources/bower_components/polymer/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "polymer", 3 | "description": "Polymer is a new type of library for the web, built on top of Web Components, and designed to leverage the evolving web platform on modern browsers.", 4 | "homepage": "http://www.polymer-project.org/", 5 | "keywords": [ 6 | "util", 7 | "client", 8 | "browser", 9 | "web components", 10 | "web-components" 11 | ], 12 | "author": "Polymer Authors ", 13 | "private": true, 14 | "dependencies": { 15 | "core-component-page": "Polymer/core-component-page#^0.5", 16 | "webcomponentsjs": "Polymer/webcomponentsjs#^0.5" 17 | }, 18 | "devDependencies": { 19 | "tools": "Polymer/tools#master", 20 | "web-component-tester": "Polymer/web-component-tester#^1.4.2" 21 | }, 22 | "version": "0.5.4" 23 | } -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.databases.webrtc/src/main/resources/bower_components/polymer/build.log: -------------------------------------------------------------------------------- 1 | BUILD LOG 2 | --------- 3 | Build Time: 2015-01-23T16:15:54 4 | 5 | NODEJS INFORMATION 6 | ================== 7 | nodejs: v0.10.35 8 | grunt: 0.4.5 9 | grunt-audit: 1.0.0 10 | grunt-contrib-concat: 0.5.0 11 | grunt-contrib-copy: 0.7.0 12 | grunt-contrib-uglify: 0.6.0 13 | grunt-string-replace: 1.0.0 14 | 15 | REPO REVISIONS 16 | ============== 17 | polymer-expressions: bbe5e753aa4aec7653145d403abb5c4c152b565c 18 | polymer-gestures: d796c5a47b33c7feeb5bfdbdb67040e74b1fbee7 19 | polymer: d65025bae57be28f20c113818ef13e24d180fae6 20 | 21 | BUILD HASHES 22 | ============ 23 | dist/polymer.js: 54c5a39a737129b4d0742eaf151e48f7f212a40a 24 | dist/polymer.min.js: 950ed84abd9a7ad9c24615176d3c7f5b2a142b79 25 | dist/layout.html: 348d358a91712ecc2f8811efa430fcd954b4590c -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.databases.webrtc/src/main/resources/bower_components/polymer/polymer.html: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.databases.webrtc/src/main/resources/bower_components/webcomponentsjs/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webcomponentsjs", 3 | "main": "webcomponents.js", 4 | "version": "0.5.4", 5 | "homepage": "http://webcomponents.org", 6 | "authors": [ 7 | "The Polymer Authors" 8 | ], 9 | "keywords": [ 10 | "webcomponents" 11 | ], 12 | "license": "BSD", 13 | "ignore": [], 14 | "_release": "0.5.4", 15 | "_resolution": { 16 | "type": "version", 17 | "tag": "0.5.4", 18 | "commit": "d31b29c8c3bf4ad7ddd9a84236f04864003bc40d" 19 | }, 20 | "_source": "git://github.com/Polymer/webcomponentsjs.git", 21 | "_target": "^0.5", 22 | "_originalSource": "Polymer/webcomponentsjs" 23 | } -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.databases.webrtc/src/main/resources/bower_components/webcomponentsjs/README.md: -------------------------------------------------------------------------------- 1 | webcomponents.js 2 | ================ 3 | 4 | A suite of polyfills supporting the [Web Components](http://webcomponents.org) specs: 5 | 6 | **Custom Elements**: allows authors to define their own custom tags ([spec](https://w3c.github.io/webcomponents/spec/custom/)). 7 | 8 | **HTML Imports**: a way to include and reuse HTML documents via other HTML documents ([spec](https://w3c.github.io/webcomponents/spec/imports/)). 9 | 10 | **Shadow DOM**: provides encapsulation by hiding DOM subtrees under shadow roots ([spec](https://w3c.github.io/webcomponents/spec/shadow/)). 11 | 12 | This also folds in polyfills for `MutationObserver` and `WeakMap`. 13 | 14 | 15 | ## Releases 16 | 17 | Pre-built (concatenated & minified) versions of the polyfills are maintained in the [tagged versions](https://github.com/webcomponents/webcomponentsjs/releases) of this repo. There are two variants: 18 | 19 | `webcomponents.js` includes all of the polyfills. 20 | 21 | `webcomponents-lite.js` includes all polyfills except for shadow DOM. 22 | 23 | 24 | ### Manually Building 25 | 26 | If you wish to build the polyfills yourself, you'll need `node` and `gulp` on your system: 27 | 28 | * install [node.js](http://nodejs.org/) using the instructions on their website 29 | * use `npm` to install [gulp.js](http://gulpjs.com/): `npm install -g gulp` 30 | 31 | Now you are ready to build the polyfills with: 32 | 33 | # install dependencies 34 | npm install 35 | # build 36 | gulp build 37 | 38 | The builds will be placed into the `dist/` directory. 39 | 40 | ## Contribute 41 | 42 | See the [contributing guide](CONTRIBUTING.md) 43 | 44 | 45 | -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.databases.webrtc/src/main/resources/bower_components/webcomponentsjs/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webcomponentsjs", 3 | "main": "webcomponents.js", 4 | "version": "0.5.4", 5 | "homepage": "http://webcomponents.org", 6 | "authors": [ 7 | "The Polymer Authors" 8 | ], 9 | "keywords": [ 10 | "webcomponents" 11 | ], 12 | "license": "BSD", 13 | "ignore": [] 14 | } -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.databases.webrtc/src/main/resources/bower_components/webcomponentsjs/build.log: -------------------------------------------------------------------------------- 1 | BUILD LOG 2 | --------- 3 | Build Time: 2015-01-23T16:15:30-0800 4 | 5 | NODEJS INFORMATION 6 | ================== 7 | nodejs: v0.10.35 8 | gulp: 3.8.10 9 | gulp-audit: 1.0.0 10 | gulp-concat: 2.4.3 11 | gulp-header: 1.2.2 12 | gulp-uglify: 1.1.0 13 | run-sequence: 1.0.2 14 | web-component-tester: 2.0.5 15 | 16 | REPO REVISIONS 17 | ============== 18 | webcomponentsjs: 9f91fd5d9d68a96821283869efac008535446218 19 | 20 | BUILD HASHES 21 | ============ 22 | CustomElements.js: 4580193ee75072cb380d439fbf75a62deb9ca233 23 | CustomElements.min.js: 4b2c4f065126f25cfdf5f6c23f12169c9c18baa2 24 | HTMLImports.js: 736763ab217d150ccb625f42362fc03158fcaeb1 25 | HTMLImports.min.js: 7df544b9a6ac9f93dcdefa3eb6eaaea68c228967 26 | ShadowDOM.js: 1f6f01526cbc098563bf5b2d217090bf210a42f3 27 | ShadowDOM.min.js: 06f2ab5b486297bc9e3ce2a8b5cfe2130aa6ccbb 28 | webcomponents-lite.js: 644f816326e29842a8fb7cb0fa82636540d46257 29 | webcomponents-lite.min.js: 3f54f511045bd45d89df2c5bbcade19a242e2a64 30 | webcomponents.js: 9ea79ac36b5875de59b8277c5867bff72e3dab6c 31 | webcomponents.min.js: 97774057dcb06111606cf1b48623b7441a1d3f6a -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.databases.webrtc/src/main/resources/bower_components/webcomponentsjs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webcomponents.js", 3 | "version": "0.5.4", 4 | "description": "webcomponents.js", 5 | "main": "gulpfile.js", 6 | "directories": { 7 | "test": "tests" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/webcomponents/webcomponentsjs.git" 12 | }, 13 | "author": "The Polymer Authors", 14 | "license": { 15 | "type": "BSD-3-Clause", 16 | "url": "http://polymer.github.io/LICENSE.txt" 17 | }, 18 | "bugs": { 19 | "url": "https://github.com/webcomponents/webcomponentsjs/issues" 20 | }, 21 | "homepage": "http://webcomponents.org", 22 | "devDependencies": { 23 | "gulp": "^3.8.8", 24 | "gulp-audit": "^1.0.0", 25 | "gulp-concat": "^2.4.1", 26 | "gulp-header": "^1.1.1", 27 | "gulp-uglify": "^1.0.1", 28 | "run-sequence": "^1.0.1", 29 | "web-component-tester": "*" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.drivers.chronicle/README.md: -------------------------------------------------------------------------------- 1 | ### Chronicle database 2 | 3 | The package offer a chronicle based (https://github.com/OpenHFT) implementation of Kevoree DataBase. 4 | The implementation is localized into the ChronicleDataBase class: 5 | 6 | ```java 7 | org.kevoree.modeling.databases.chronicle.ChronicleDataBase 8 | ``` 9 | 10 | ```java 11 | universe.setDataBase(new ChronicleDataBase(param)); 12 | ``` 13 | 14 | The implementation offer two main structure: 15 | 16 | - Pure Off-heap structure 17 | 18 | The pure off-heap memory allows to fill the system memory til the physical limit. 19 | 20 | ```java 21 | universe.setDataBase(new ChronicleDataBase(null)); 22 | ``` 23 | 24 | - Disk mapped structure 25 | 26 | The pure disk mapped structure allows to fill the system memory til the physical limit and then unload last used part on disk. 27 | It also offer a stateful storage through the disk commit method. 28 | 29 | ```java 30 | universe.setDataBase(new ChronicleDataBase("/myStorage")); 31 | ``` 32 | 33 | It is available on maven central as 34 | 35 | ```xml 36 | 37 | org.kevoree.modeling 38 | org.kevoree.modeling.microframework.databases.chronicle 39 | 40 | 41 | ``` 42 | 43 | Click here to get the [Latest Version Number](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.kevoree.modeling%22%20AND%20a%3A%22org.kevoree.modeling.microframework.databases.chronicle%22) 44 | 45 | -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.drivers.chronicle/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | org.kevoree.modeling.microframework.databases.chronicle 5 | Kevoree :: Modeling :: DataBases :: Chronicle 6 | 7 | 8 | org.kevoree.modeling.root 9 | org.kevoree.modeling 10 | 4.18.4-SNAPSHOT 11 | ../../pom.xml 12 | 13 | 14 | 15 | 16 | org.kevoree.modeling 17 | org.kevoree.modeling.microframework 18 | ${project.version} 19 | 20 | 21 | net.openhft 22 | chronicle-map 23 | 2.0.14b 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.drivers.chronicle/src/test/java/org/kevoree/modeling/databases/chronicle/ChronicleTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.databases.chronicle; 2 | 3 | import org.junit.Assert; 4 | import org.junit.Test; 5 | import org.kevoree.modeling.api.Callback; 6 | import org.kevoree.modeling.api.ThrowableCallback; 7 | 8 | import java.io.IOException; 9 | 10 | /** 11 | * Created by duke on 11/4/14. 12 | */ 13 | public class ChronicleTest { 14 | 15 | @Test 16 | public void test() throws IOException { 17 | ChronicleContentDeliveryDriver db = new ChronicleContentDeliveryDriver("target/temp"); 18 | String[][] insertPayload = new String[2][2]; 19 | insertPayload[0][0] = "/0"; 20 | insertPayload[0][1] = "/0/payload"; 21 | insertPayload[1][0] = "/1"; 22 | insertPayload[1][1] = "/1/payload"; 23 | db.put(insertPayload, new Callback() { 24 | @Override 25 | public void on(Throwable throwable) { 26 | 27 | } 28 | }); 29 | 30 | String[] keys = {"/0", "/1"}; 31 | db.get(keys, new ThrowableCallback() { 32 | @Override 33 | public void on(String[] strings, Throwable error) { 34 | Assert.assertEquals(strings.length, 2); 35 | Assert.assertEquals(strings[0], "/0/payload"); 36 | Assert.assertEquals(strings[1], "/1/payload"); 37 | } 38 | }); 39 | 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.drivers.leveldb/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | org.kevoree.modeling.microframework.drivers.leveldb 5 | Kevoree :: Modeling :: Drivers :: LevelDB 6 | 7 | 8 | org.kevoree.modeling.root 9 | org.kevoree.modeling 10 | 4.18.5-SNAPSHOT 11 | ../../pom.xml 12 | 13 | 14 | 15 | 16 | org.kevoree.modeling 17 | org.kevoree.modeling.microframework 18 | ${project.version} 19 | 20 | 21 | org.fusesource.leveldbjni 22 | leveldbjni-all 23 | 1.8 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.drivers.mapdb/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | org.kevoree.modeling.microframework.drivers.mapdb 5 | Kevoree :: Modeling :: Drivers :: MapDB 6 | 7 | 8 | org.kevoree.modeling.root 9 | org.kevoree.modeling 10 | 4.18.5-SNAPSHOT 11 | ../../pom.xml 12 | 13 | 14 | 15 | 16 | org.kevoree.modeling 17 | org.kevoree.modeling.microframework 18 | ${project.version} 19 | 20 | 21 | org.mapdb 22 | mapdb 23 | 1.0.7 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.drivers.mongodb/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | org.kevoree.modeling.microframework.drivers.mongodb 5 | Kevoree :: Modeling :: Drivers :: MongoDB 6 | 7 | 8 | org.kevoree.modeling.root 9 | org.kevoree.modeling 10 | 4.18.5-SNAPSHOT 11 | ../../pom.xml 12 | 13 | 14 | 15 | 3.0.1 16 | 17 | 18 | 19 | 20 | org.kevoree.modeling 21 | org.kevoree.modeling.microframework 22 | ${project.version} 23 | 24 | 25 | org.mongodb 26 | mongo-java-driver 27 | ${mongo.driver.version} 28 | 29 | 30 | 31 | de.flapdoodle.embed 32 | de.flapdoodle.embed.mongo 33 | 1.28 34 | test 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.drivers.redis/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | org.kevoree.modeling.microframework.drivers.redis 5 | Kevoree :: Modeling :: Drivers :: Redis 6 | 7 | 8 | org.kevoree.modeling.root 9 | org.kevoree.modeling 10 | 4.18.5-SNAPSHOT 11 | ../../pom.xml 12 | 13 | 14 | 15 | 16 | org.kevoree.modeling 17 | org.kevoree.modeling.microframework 18 | ${project.version} 19 | 20 | 21 | redis.clients 22 | jedis 23 | 2.7.2 24 | 25 | 26 | redis.embedded 27 | embedded-redis 28 | 0.3 29 | test 30 | 31 | 32 | 33 | 34 | 35 | 36 | clojars.org 37 | http://clojars.org/repo 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /drivers/org.kevoree.modeling.microframework.drivers.rocksdb/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | org.kevoree.modeling.microframework.drivers.rocksdb 5 | Kevoree :: Modeling :: Drivers :: RocksDB 6 | 7 | 8 | org.kevoree.modeling.root 9 | org.kevoree.modeling 10 | 4.18.5-SNAPSHOT 11 | ../../pom.xml 12 | 13 | 14 | 15 | 16 | org.kevoree.modeling 17 | org.kevoree.modeling.microframework 18 | ${project.version} 19 | 20 | 21 | org.rocksdb 22 | rocksdbjni 23 | 3.6.2 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Licensed under the GNU LESSER GENERAL PUBLIC LICENSE, Version 3, 29 June 2007; 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.gnu.org/licenses/lgpl-3.0.txt 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | # 15 | # Authors: 16 | # Fouquet Francois 17 | # Nain Gregory 18 | # 19 | 20 | export JAVA_HOME=$(/usr/libexec/java_home) 21 | export MAVEN_OPTS="-Xmx3000m -XX:MaxPermSize=256m" 22 | mvn clean install -------------------------------------------------------------------------------- /org.kevoree.modeling.ast/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | org.kevoree.modeling.root 5 | org.kevoree.modeling 6 | 4.18.5-SNAPSHOT 7 | 8 | 4.0.0 9 | 10 | Kevoree :: Modeling :: AST 11 | org.kevoree.modeling.ast 12 | 13 | -------------------------------------------------------------------------------- /org.kevoree.modeling.ast/src/main/java/org/kevoree/modeling/ast/MModel.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.ast; 2 | 3 | import java.util.ArrayList; 4 | import java.util.Collection; 5 | import java.util.HashMap; 6 | 7 | /** 8 | * Created by duke on 11/21/14. 9 | */ 10 | public class MModel { 11 | 12 | private HashMap classifiers = new HashMap<>(); 13 | 14 | private Integer currentIndex = 0; 15 | 16 | public Collection getClassifiers() { 17 | return classifiers.values(); 18 | } 19 | 20 | public MModelClassifier get(String fqn) { 21 | return classifiers.get(fqn); 22 | } 23 | 24 | public void addClassifier(MModelClassifier classifier) { 25 | if (classifier instanceof MModelClass) { 26 | classifier.setIndex(currentIndex); 27 | currentIndex = currentIndex + 1; 28 | } 29 | classifiers.put(classifier.getFqn(), classifier); 30 | } 31 | 32 | public Collection getClasses() { 33 | ArrayList classes = new ArrayList(); 34 | for (MModelClassifier cls : classifiers.values()) { 35 | if (cls instanceof MModelClass) { 36 | classes.add((MModelClass) cls); 37 | } 38 | } 39 | return classes; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /org.kevoree.modeling.ast/src/main/java/org/kevoree/modeling/ast/MModelAttribute.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.ast; 2 | 3 | /** 4 | * Created by gregory.nain on 14/10/2014. 5 | */ 6 | public class MModelAttribute { 7 | 8 | private String name; 9 | private String type; 10 | private boolean id = false; 11 | private double precision = -1; 12 | private boolean single = true; 13 | private Integer index = -1; 14 | 15 | public Integer getIndex() { 16 | return index; 17 | } 18 | 19 | public void setIndex(Integer index) { 20 | this.index = index; 21 | } 22 | 23 | public MModelAttribute(String name, String type) { 24 | this.name = name; 25 | this.type = type; 26 | } 27 | 28 | public void setId(boolean id) { 29 | this.id = id; 30 | } 31 | 32 | public void setSingle(boolean single) { 33 | this.single = single; 34 | } 35 | 36 | public String getName() { 37 | return name; 38 | } 39 | 40 | public String getType() { 41 | return type; 42 | } 43 | 44 | public boolean isId() { 45 | return id; 46 | } 47 | 48 | public boolean isSingle() { 49 | return single; 50 | } 51 | 52 | public Double getPrecision() { 53 | return precision; 54 | } 55 | 56 | public void setPrecision(Double precision) { 57 | this.precision = precision; 58 | } 59 | 60 | public MModelAttribute clone() { 61 | MModelAttribute cloned = new MModelAttribute(this.name, this.type); 62 | cloned.id = id; 63 | cloned.precision = precision; 64 | cloned.single = single; 65 | return cloned; 66 | } 67 | 68 | } 69 | -------------------------------------------------------------------------------- /org.kevoree.modeling.ast/src/main/java/org/kevoree/modeling/ast/MModelClassifier.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.ast; 2 | 3 | /** 4 | * Created by gregory.nain on 14/10/2014. 5 | */ 6 | public abstract class MModelClassifier { 7 | 8 | protected String name; 9 | protected String pack = null; 10 | protected Integer index = -1; 11 | 12 | public Integer getIndex() { 13 | return index; 14 | } 15 | 16 | public void setIndex(Integer index) { 17 | this.index = index; 18 | } 19 | 20 | public String getName() { 21 | return name; 22 | } 23 | 24 | public String getPack() { 25 | return pack; 26 | } 27 | 28 | public void setPack(String pack) { 29 | this.pack = pack; 30 | } 31 | 32 | public String getFqn() { 33 | return (pack != null ? pack + "." + name : name); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /org.kevoree.modeling.ast/src/main/java/org/kevoree/modeling/ast/MModelEnum.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.ast; 2 | 3 | import java.util.*; 4 | 5 | /** 6 | * Created by gregory.nain on 14/10/2014. 7 | */ 8 | public class MModelEnum extends MModelClassifier { 9 | 10 | private SortedSet litterals = new TreeSet<>(); 11 | 12 | public MModelEnum(String name) { 13 | this.name = name; 14 | } 15 | 16 | public void addLitteral(String lit) { 17 | litterals.add(lit); 18 | } 19 | 20 | public SortedSet getLitterals() { 21 | return litterals; 22 | } 23 | 24 | 25 | } 26 | -------------------------------------------------------------------------------- /org.kevoree.modeling.ast/src/main/java/org/kevoree/modeling/ast/MModelOperation.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.ast; 2 | 3 | import java.util.ArrayList; 4 | 5 | /** 6 | * Created by gregory.nain on 20/10/14. 7 | */ 8 | public class MModelOperation { 9 | 10 | public ArrayList inputParams = new ArrayList(); 11 | public MModelOperationParam returnParam = null; 12 | public String name; 13 | protected Integer index = -1; 14 | 15 | public Integer getIndex() { 16 | return index; 17 | } 18 | 19 | public void setIndex(Integer index) { 20 | this.index = index; 21 | } 22 | 23 | public MModelOperation(String name) { 24 | this.name = name; 25 | } 26 | 27 | public ArrayList getInputParams() { 28 | return inputParams; 29 | } 30 | 31 | public MModelOperationParam getReturnParam() { 32 | return returnParam; 33 | } 34 | 35 | public String getName() { 36 | return name; 37 | } 38 | 39 | public MModelOperation clone() { 40 | MModelOperation cloned = new MModelOperation(this.name); 41 | cloned.inputParams = inputParams; 42 | cloned.returnParam = returnParam; 43 | return cloned; 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /org.kevoree.modeling.ast/src/main/java/org/kevoree/modeling/ast/MModelOperationParam.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.ast; 2 | 3 | /** 4 | * Created by gregory.nain on 20/10/14. 5 | */ 6 | public class MModelOperationParam { 7 | public String name; 8 | public String type; 9 | 10 | public String getName() { 11 | return name; 12 | } 13 | 14 | public String getType() { 15 | return type; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /org.kevoree.modeling.ast/src/main/java/org/kevoree/modeling/ast/MModelReference.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.ast; 2 | 3 | /** 4 | * Created by gregory.nain on 14/10/2014. 5 | */ 6 | public class MModelReference { 7 | 8 | private String name; 9 | private MModelClass type; 10 | private MModelReference opposite = null; 11 | private Integer index = -1; 12 | private boolean single = false; 13 | private boolean visible = true; 14 | 15 | public Integer getIndex() { 16 | return index; 17 | } 18 | 19 | public void setIndex(Integer index) { 20 | this.index = index; 21 | } 22 | 23 | public MModelReference(String name, MModelClass type) { 24 | this.name = name; 25 | this.type = type; 26 | } 27 | 28 | public String getName() { 29 | return name; 30 | } 31 | 32 | public MModelClass getType() { 33 | return type; 34 | } 35 | 36 | public boolean isSingle() { 37 | return single; 38 | } 39 | 40 | public void setSingle(boolean single) { 41 | this.single = single; 42 | } 43 | 44 | public MModelReference getOpposite() { 45 | return opposite; 46 | } 47 | 48 | public void setOpposite(MModelReference opposite) { 49 | this.opposite = opposite; 50 | } 51 | 52 | public MModelReference clone() { 53 | MModelReference cloned = new MModelReference(this.name, this.type); 54 | cloned.opposite = opposite; 55 | cloned.single = single; 56 | cloned.visible = visible; 57 | return cloned; 58 | } 59 | 60 | public boolean isVisible() { 61 | return visible; 62 | } 63 | 64 | public void setVisible(boolean visible) { 65 | this.visible = visible; 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /org.kevoree.modeling.generator.mavenplugin/src/main/resources/tsc/lib.scriptHost.d.ts: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | Copyright (c) Microsoft Corporation. All rights reserved. 3 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 4 | this file except in compliance with the License. You may obtain a copy of the 5 | License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 8 | KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 9 | WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 10 | MERCHANTABLITY OR NON-INFRINGEMENT. 11 | 12 | See the Apache Version 2.0 License for specific language governing permissions 13 | and limitations under the License. 14 | ***************************************************************************** */ 15 | 16 | /// 17 | 18 | 19 | ///////////////////////////// 20 | /// Windows Script Host APIS 21 | ///////////////////////////// 22 | 23 | declare var ActiveXObject: { new (s: string): any; }; 24 | 25 | interface ITextWriter { 26 | Write(s: string): void; 27 | WriteLine(s: string): void; 28 | Close(): void; 29 | } 30 | 31 | declare var WScript: { 32 | Echo(s: any): void; 33 | StdErr: ITextWriter; 34 | StdOut: ITextWriter; 35 | Arguments: { length: number; Item(n: number): string; }; 36 | ScriptFullName: string; 37 | Quit(exitCode?: number): number; 38 | } 39 | -------------------------------------------------------------------------------- /org.kevoree.modeling.generator/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | org.kevoree.modeling.root 5 | org.kevoree.modeling 6 | 4.18.5-SNAPSHOT 7 | ../pom.xml 8 | 9 | 4.0.0 10 | 11 | org.kevoree.modeling.generator 12 | Kevoree :: Modeling :: Generator 13 | 14 | 15 | 16 | org.kevoree.modeling 17 | org.kevoree.modeling.ast 18 | ${project.version} 19 | 20 | 21 | org.kevoree.modeling.idea 22 | org.kevoree.modeling.idea.dsl 23 | ${kmf.plugin.version} 24 | 25 | 26 | org.kevoree.modeling 27 | org.kevoree.modeling.microframework 28 | ${project.version} 29 | test 30 | 31 | 32 | org.apache.velocity 33 | velocity 34 | 1.7 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /org.kevoree.modeling.generator/src/main/java/org/kevoree/modeling/generator/ClassGenerationContext.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.generator; 2 | 3 | import org.kevoree.modeling.ast.MModelClassifier; 4 | 5 | /** 6 | * Created by gregory.nain on 14/10/2014. 7 | */ 8 | public class ClassGenerationContext { 9 | 10 | public GenerationContext generationContext; 11 | //public String classPackage, classFqn, className; 12 | public MModelClassifier classDeclaration; 13 | 14 | public GenerationContext getGenerationContext() { 15 | return generationContext; 16 | } 17 | 18 | public MModelClassifier getClassDeclaration() { 19 | return classDeclaration; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /org.kevoree.modeling.generator/src/main/java/org/kevoree/modeling/generator/misc/VelocityLog.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.generator.misc; 2 | 3 | import org.apache.velocity.runtime.RuntimeServices; 4 | import org.apache.velocity.runtime.log.LogChute; 5 | 6 | /** 7 | * Created by duke on 7/17/14. 8 | */ 9 | public class VelocityLog implements LogChute { 10 | 11 | public static VelocityLog INSTANCE = new VelocityLog(); 12 | 13 | @Override 14 | public void init(RuntimeServices runtimeServices) throws Exception { 15 | 16 | } 17 | 18 | @Override 19 | public void log(int i, String s) { 20 | } 21 | 22 | @Override 23 | public void log(int i, String s, Throwable throwable) { 24 | throwable.printStackTrace(); 25 | } 26 | 27 | @Override 28 | public boolean isLevelEnabled(int i) { 29 | return false; 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /org.kevoree.modeling.generator/src/main/resources/vTemplates/EnumTemplate.vm: -------------------------------------------------------------------------------- 1 | package ${context.pack}; 2 | 3 | public enum ${context.getName()} { 4 | #set($maxEnum = ${context.litterals.size()}) 5 | #set($idx = 1) 6 | #foreach($enumAtt in ${context.litterals}) 7 | $enumAtt.toUpperCase()#if($idx < $maxEnum), 8 | #else; 9 | #end 10 | #set($idx = $idx + 1) 11 | #end 12 | } 13 | #* @vtlvariable name="context" type="org.kevoree.modeling.ast.MModelEnum" *# -------------------------------------------------------------------------------- /org.kevoree.modeling.generator/src/main/resources/vTemplates/MetaEnumTemplate.vm: -------------------------------------------------------------------------------- 1 | package ${context.pack}.meta; 2 | 3 | public class Meta${context.getName()} extends org.kevoree.modeling.abs.AbstractKDataType { 4 | 5 | private Meta${context.getName()}(String p_name, boolean p_isEnum) { 6 | super(p_name, p_isEnum); 7 | } 8 | 9 | private static Meta${context.getName()} INSTANCE; 10 | public static Meta${context.getName()} getInstance() { 11 | if(INSTANCE == null) { 12 | INSTANCE = new Meta${context.getName()}("${context.getFqn()}", true); 13 | } 14 | return INSTANCE; 15 | } 16 | 17 | #foreach($enumAtt in ${context.litterals}) 18 | private static final String _$enumAtt.toUpperCase() = "$enumAtt.toUpperCase()"; 19 | #end 20 | 21 | 22 | public Object load(String s) { 23 | #foreach($enumAtt in ${context.litterals}) 24 | if(s.equals(_$enumAtt.toUpperCase())) { 25 | return ${context.pack}.${context.getName()}.$enumAtt.toUpperCase(); 26 | } 27 | #end 28 | return null; 29 | } 30 | 31 | public String save(Object value) { 32 | #foreach($enumAtt in ${context.litterals}) 33 | if(value == ${context.pack}.${context.getName()}.$enumAtt.toUpperCase()) { 34 | return _$enumAtt.toUpperCase(); 35 | } 36 | #end 37 | return null; 38 | } 39 | } 40 | 41 | #* @vtlvariable name="context" type="org.kevoree.modeling.ast.MModelEnum" *# -------------------------------------------------------------------------------- /org.kevoree.modeling.generator/src/main/resources/vTemplates/UniverseTemplate.vm: -------------------------------------------------------------------------------- 1 | package ${context.metaModelPackage}; 2 | 3 | public class ${context.metaModelName}Universe extends org.kevoree.modeling.abs.AbstractKUniverse<${context.metaModelName}View, ${context.metaModelName}Universe, ${context.metaModelName}Model> { 4 | 5 | protected ${context.metaModelName}Universe(long p_key, org.kevoree.modeling.memory.manager.KMemoryManager p_manager) { 6 | super(p_key, p_manager); 7 | } 8 | 9 | @Override 10 | protected ${context.metaModelName}View internal_create(long timePoint) { 11 | return new ${context.metaModelPackage}.impl.${context.metaModelName}ViewImpl(_universe, timePoint, _manager); 12 | } 13 | 14 | } 15 | 16 | #* @vtlvariable name="context" type="org.kevoree.modeling.generator.GenerationContext" *# -------------------------------------------------------------------------------- /org.kevoree.modeling.generator/src/main/resources/vTemplates/ViewImplTemplate.vm: -------------------------------------------------------------------------------- 1 | package ${context.metaModelPackage}.impl; 2 | 3 | public class ${context.metaModelName}ViewImpl extends org.kevoree.modeling.abs.AbstractKView implements ${context.metaModelPackage}.${context.metaModelName}View { 4 | 5 | public ${context.metaModelName}ViewImpl(long p_universe, long _time, org.kevoree.modeling.memory.manager.KMemoryManager p_manager) { 6 | super(p_universe, _time, p_manager); 7 | } 8 | 9 | #foreach($class in $context.model.getClasses()) 10 | #set($lastIdx = $class.fqn.lastIndexOf(".")+1) 11 | @Override 12 | public $class.fqn create$class.fqn.substring($lastIdx)() { 13 | return ($class.fqn) this.create(${class.pack}.meta.Meta${class.name}.getInstance()); 14 | } 15 | #end 16 | 17 | } 18 | 19 | #* @vtlvariable name="context" type="org.kevoree.modeling.generator.GenerationContext" *# -------------------------------------------------------------------------------- /org.kevoree.modeling.generator/src/main/resources/vTemplates/ViewTemplate.vm: -------------------------------------------------------------------------------- 1 | package $context.metaModelPackage; 2 | 3 | public interface ${context.metaModelName}View extends org.kevoree.modeling.KView { 4 | 5 | #foreach($class in $context.model.getClasses()) 6 | #set($lastIdx = $class.fqn.lastIndexOf(".")+1) 7 | public $class.fqn create$class.fqn.substring($lastIdx)(); 8 | #end 9 | 10 | } 11 | 12 | #* @vtlvariable name="context" type="org.kevoree.modeling.generator.GenerationContext" *# -------------------------------------------------------------------------------- /org.kevoree.modeling.generator/src/test/java/org/kevoree/modeling/generator/test/CloudGenTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.generator.test; 2 | 3 | import org.junit.Test; 4 | import org.kevoree.modeling.generator.GenerationContext; 5 | import org.kevoree.modeling.generator.Generator; 6 | 7 | import java.io.File; 8 | 9 | /** 10 | * Created by gregory.nain on 14/10/2014. 11 | */ 12 | public class CloudGenTest { 13 | 14 | public static void main(String[] args) { 15 | (new CloudGenTest()).run(); 16 | } 17 | 18 | @Test 19 | public void run() { 20 | 21 | try { 22 | GenerationContext ctx = new GenerationContext(); 23 | ctx.setMetaModel(new File(getClass().getClassLoader().getResource("Cloud.mm").toURI())); 24 | ctx.setMetaModelName("org.kevoree.cloud"); 25 | ctx.targetSrcDir = new File(ctx.getMetaModel().getParentFile().getParent() + File.separator + "generated-kmf-test"); 26 | ctx.setVersion("#.#.#-SNAPSHOT"); 27 | Generator generator = new Generator(); 28 | generator.execute(ctx); 29 | } catch (Exception e) { 30 | e.printStackTrace(); 31 | } 32 | 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /org.kevoree.modeling.generator/src/test/java/org/kevoree/modeling/generator/test/EnumGenTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.generator.test; 2 | 3 | import org.junit.Test; 4 | import org.kevoree.modeling.generator.GenerationContext; 5 | import org.kevoree.modeling.generator.Generator; 6 | 7 | import java.io.File; 8 | 9 | /** 10 | * Created by gregory.nain on 14/10/2014. 11 | */ 12 | public class EnumGenTest { 13 | 14 | public static void main(String[] args) { 15 | (new EnumGenTest()).run(); 16 | } 17 | 18 | @Test 19 | public void run() { 20 | 21 | try { 22 | GenerationContext ctx = new GenerationContext(); 23 | ctx.setMetaModel(new File(getClass().getClassLoader().getResource("Enum.mm").toURI())); 24 | ctx.setMetaModelName("org.kevoree.enum"); 25 | ctx.targetSrcDir = new File(ctx.getMetaModel().getParentFile().getParent() + File.separator + "generated-kmf-test"); 26 | ctx.setVersion("#.#.#-SNAPSHOT"); 27 | Generator generator = new Generator(); 28 | generator.execute(ctx); 29 | } catch (Exception e) { 30 | e.printStackTrace(); 31 | } 32 | 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /org.kevoree.modeling.generator/src/test/resources/Cloud.mm: -------------------------------------------------------------------------------- 1 | class org.kevoree.cloud.Cloud { 2 | @contained 3 | nodes : org.kevoree.cloud.Node[0,*] 4 | @contained 5 | elements : org.kevoree.cloud.Element[0,*] 6 | } 7 | 8 | class org.kevoree.cloud.Node { 9 | @id 10 | name : String 11 | value : String 12 | } 13 | 14 | class org.kevoree.cloud.Element { 15 | @id 16 | name : String 17 | value : String 18 | } 19 | 20 | 21 | enum org.kevoree.cloud.CloudEnumTester { 22 | VAL1 VAL2 VAL3 23 | } 24 | 25 | -------------------------------------------------------------------------------- /org.kevoree.modeling.generator/src/test/resources/Enum.mm: -------------------------------------------------------------------------------- 1 | 2 | 3 | enum org.MyEnum { 4 | String 5 | Int 6 | } 7 | 8 | class org.Foo { 9 | bar : org.MyEnum 10 | } -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework.typescript/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "org.kevoree.modeling.microframework.typescript", 3 | "version": "1.0.0-SNAPSHOT", 4 | "devDependencies": { 5 | "grunt": "~0.4.1", 6 | "grunt-cli": "~0.1.13", 7 | "grunt-typescript": "~0.4.5", 8 | "typescript": "~1.3.0" 9 | } 10 | } -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework.typescript/src/test/resources/MyTestRunner.js: -------------------------------------------------------------------------------- 1 | var fs = require('fs'); 2 | 3 | // file is included here: 4 | //eval(fs.readFileSync(__dirname + '/es6-collections-full.js')+''); 5 | eval(fs.readFileSync(__dirname + '/../classes/java.js')+''); 6 | eval(fs.readFileSync(__dirname + '/../classes/org.kevoree.modeling.microframework.typescript.js')+''); 7 | eval(fs.readFileSync(__dirname + '/org.kevoree.modeling.microframework.typescript.js')+''); 8 | eval(fs.readFileSync(__dirname + '/TestRunner.js')+''); 9 | 10 | var timeTestSuite = new gentest.FlatJUnitTest(); 11 | timeTestSuite.run(); 12 | 13 | console.log("Tests run finished!"); 14 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework.typescript/src/test/resources/test.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | org.kevoree.modeling.microframework 6 | Kevoree :: Modeling :: MicroFramework 7 | 8 | 9 | org.kevoree.modeling.root 10 | org.kevoree.modeling 11 | 4.18.5-SNAPSHOT 12 | ../pom.xml 13 | 14 | 15 | 16 | 17 | 18 | org.apache.maven.plugins 19 | maven-jar-plugin 20 | 2.3.1 21 | 22 | 23 | test-jar 24 | 25 | test-jar 26 | 27 | 28 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/KActionType.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling; 2 | 3 | public enum KActionType { 4 | CALL, 5 | CALL_RESPONSE, 6 | SET, 7 | ADD, 8 | REMOVE, 9 | NEW 10 | } 11 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/KCallback.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling; 2 | 3 | public interface KCallback { 4 | 5 | void on(A a); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/KConfig.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling; 2 | 3 | public class KConfig { 4 | 5 | public static final int TREE_CACHE_SIZE = 3; 6 | 7 | public static final int CALLBACK_HISTORY = 1000; 8 | 9 | // Limit long lengths to 53 bits because of JS limitation 10 | 11 | public static final int LONG_SIZE = 53; 12 | 13 | public static final int PREFIX_SIZE = 16; 14 | 15 | public static final long BEGINNING_OF_TIME = -0x001FFFFFFFFFFFFEl; 16 | 17 | public static final long END_OF_TIME = 0x001FFFFFFFFFFFFEl; 18 | 19 | public static final long NULL_LONG = 0x001FFFFFFFFFFFFFl; 20 | 21 | // Limit limit local index to LONG limit - prefix size 22 | public static final long KEY_PREFIX_MASK = 0x0000001FFFFFFFFFl; 23 | 24 | public static final char KEY_SEP = '/'; 25 | 26 | public static final int KEY_SIZE = 3; 27 | 28 | public static final int CACHE_INIT_SIZE = 16; 29 | 30 | public static final float CACHE_LOAD_FACTOR = ((float) 75 / (float) 100); 31 | 32 | } 33 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/KModel.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling; 2 | 3 | import org.kevoree.modeling.cdn.KContentDeliveryDriver; 4 | import org.kevoree.modeling.defer.KDefer; 5 | import org.kevoree.modeling.memory.manager.KMemoryManager; 6 | import org.kevoree.modeling.meta.KMetaClass; 7 | import org.kevoree.modeling.meta.KMetaModel; 8 | import org.kevoree.modeling.meta.KMetaOperation; 9 | import org.kevoree.modeling.operation.KOperation; 10 | import org.kevoree.modeling.scheduler.KScheduler; 11 | 12 | public interface KModel { 13 | 14 | long key(); 15 | 16 | A newUniverse(); 17 | 18 | A universe(long key); 19 | 20 | KMemoryManager manager(); 21 | 22 | KModel setContentDeliveryDriver(KContentDeliveryDriver dataBase); 23 | 24 | KModel setScheduler(KScheduler scheduler); 25 | 26 | void setOperation(KMetaOperation metaOperation, KOperation operation); 27 | 28 | void setInstanceOperation(KMetaOperation metaOperation, KObject target, KOperation operation); 29 | 30 | KMetaModel metaModel(); 31 | 32 | KDefer defer(); 33 | 34 | void save(KCallback cb); 35 | 36 | void discard(KCallback cb); 37 | 38 | void connect(KCallback cb); 39 | 40 | void close(KCallback cb); 41 | 42 | void clearListenerGroup(long groupID); 43 | 44 | long nextGroup(); 45 | 46 | KObject createByName(String metaClassName, long universe, long time); 47 | 48 | KObject create(KMetaClass clazz, long universe, long time); 49 | 50 | } -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/KObject.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling; 2 | 3 | import org.kevoree.modeling.event.KEventListener; 4 | import org.kevoree.modeling.memory.manager.KMemoryManager; 5 | import org.kevoree.modeling.meta.KMetaAttribute; 6 | import org.kevoree.modeling.meta.KMetaClass; 7 | import org.kevoree.modeling.meta.KMetaOperation; 8 | import org.kevoree.modeling.meta.KMetaReference; 9 | import org.kevoree.modeling.traversal.KTraversal; 10 | import org.kevoree.modeling.traversal.visitor.KModelAttributeVisitor; 11 | import org.kevoree.modeling.traversal.visitor.KModelVisitor; 12 | 13 | public interface KObject { 14 | 15 | long universe(); 16 | 17 | long now(); 18 | 19 | long uuid(); 20 | 21 | void delete(KCallback cb); 22 | 23 | void select(String query, KCallback cb); 24 | 25 | void listen(long groupId, KEventListener listener); 26 | 27 | void visitAttributes(KModelAttributeVisitor visitor); 28 | 29 | void visit(KModelVisitor visitor, KCallback cb); 30 | 31 | KTimeWalker timeWalker(); 32 | 33 | KMetaClass metaClass(); 34 | 35 | void mutate(KActionType actionType, KMetaReference metaReference, KObject param); 36 | 37 | void ref(KMetaReference metaReference, KCallback cb); 38 | 39 | KTraversal traversal(); 40 | 41 | Object get(KMetaAttribute attribute); 42 | 43 | Object getByName(String atributeName); 44 | 45 | void set(KMetaAttribute attribute, Object payload); 46 | 47 | void setByName(String atributeName, Object payload); 48 | 49 | String toJSON(); 50 | 51 | boolean equals(Object other); 52 | 53 | void jump(long time, KCallback callback); 54 | 55 | KMetaReference[] referencesWith(KObject o); 56 | 57 | void call(KMetaOperation operation, Object[] params, KCallback cb); 58 | 59 | KMemoryManager manager(); 60 | 61 | } 62 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/KTimeWalker.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling; 2 | 3 | public interface KTimeWalker { 4 | 5 | void allTimes(KCallback cb); 6 | 7 | void timesBefore(long endOfSearch,KCallback cb); 8 | 9 | void timesAfter(long beginningOfSearch,KCallback cb); 10 | 11 | void timesBetween(long beginningOfSearch,long endOfSearch,KCallback cb); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/KType.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling; 2 | 3 | public interface KType { 4 | 5 | String name(); 6 | 7 | boolean isEnum(); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/KUniverse.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling; 2 | 3 | import org.kevoree.modeling.event.KEventMultiListener; 4 | 5 | import java.util.List; 6 | 7 | public interface KUniverse { 8 | 9 | long key(); 10 | 11 | A time(long timePoint); 12 | 13 | C model(); 14 | 15 | boolean equals(Object other); 16 | 17 | B diverge(); 18 | 19 | B origin(); 20 | 21 | List descendants(); 22 | 23 | void delete(KCallback cb); 24 | 25 | void lookupAllTimes(long uuid, long[] times, KCallback cb); 26 | 27 | void listenAll(long groupId, long[] objects, KEventMultiListener multiListener); 28 | 29 | } 30 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/KView.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling; 2 | 3 | import org.kevoree.modeling.format.KModelFormat; 4 | import org.kevoree.modeling.meta.KMetaClass; 5 | 6 | public interface KView { 7 | 8 | KObject createByName(String metaClassName); 9 | 10 | KObject create(KMetaClass clazz); 11 | 12 | void select(String query, KCallback cb); 13 | 14 | void lookup(long key, KCallback cb); 15 | 16 | void lookupAll(long[] keys, KCallback cb); 17 | 18 | long universe(); 19 | 20 | long now(); 21 | 22 | KModelFormat json(); 23 | 24 | KModelFormat xmi(); 25 | 26 | boolean equals(Object other); 27 | 28 | void setRoot(KObject elem, KCallback cb); 29 | 30 | void getRoot(KCallback cb); 31 | 32 | } 33 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/abs/AbstractDataType.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.abs; 2 | 3 | import org.kevoree.modeling.KType; 4 | import org.kevoree.modeling.format.json.JsonString; 5 | import org.kevoree.modeling.meta.KPrimitiveTypes; 6 | 7 | public class AbstractDataType implements KType { 8 | 9 | final private String _name; 10 | 11 | final private boolean _isEnum; 12 | 13 | public AbstractDataType(String p_name, boolean p_isEnum) { 14 | this._name = p_name; 15 | this._isEnum = p_isEnum; 16 | } 17 | 18 | @Override 19 | public String name() { 20 | return _name; 21 | } 22 | 23 | @Override 24 | public boolean isEnum() { 25 | return _isEnum; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/abs/KLazyResolver.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.abs; 2 | 3 | import org.kevoree.modeling.meta.KMeta; 4 | 5 | public interface KLazyResolver { 6 | 7 | KMeta meta(); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/cdn/KContentDeliveryDriver.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.cdn; 2 | 3 | import org.kevoree.modeling.*; 4 | import org.kevoree.modeling.event.KEventListener; 5 | import org.kevoree.modeling.event.KEventMultiListener; 6 | import org.kevoree.modeling.memory.manager.KMemoryManager; 7 | import org.kevoree.modeling.message.KMessage; 8 | 9 | public interface KContentDeliveryDriver { 10 | 11 | void get(KContentKey[] keys, KCallback callback); 12 | 13 | void atomicGetIncrement(KContentKey key, KCallback cb); 14 | 15 | void put(KContentPutRequest request, KCallback error); 16 | 17 | void remove(String[] keys, KCallback error); 18 | 19 | void connect(KCallback callback); 20 | 21 | void close(KCallback callback); 22 | 23 | void registerListener(long groupId, KObject origin, KEventListener listener); 24 | 25 | void registerMultiListener(long groupId, KUniverse origin, long[] objects, KEventMultiListener listener); 26 | 27 | void unregisterGroup(long groupId); 28 | 29 | void send(KMessage msgs); 30 | 31 | void setManager(KMemoryManager manager); 32 | 33 | } -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/cdn/KContentPutRequest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.cdn; 2 | 3 | import org.kevoree.modeling.KContentKey; 4 | 5 | public interface KContentPutRequest { 6 | 7 | void put(KContentKey p_key, String p_payload); 8 | 9 | KContentKey getKey(int index); 10 | 11 | String getContent(int index); 12 | 13 | int size(); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/cdn/impl/ContentPutRequest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.cdn.impl; 2 | 3 | import org.kevoree.modeling.KContentKey; 4 | import org.kevoree.modeling.cdn.KContentPutRequest; 5 | 6 | public class ContentPutRequest implements KContentPutRequest { 7 | 8 | private Object[][] _content; 9 | 10 | private static final int KEY_INDEX = 0; 11 | 12 | private static final int CONTENT_INDEX = 1; 13 | 14 | private static final int SIZE_INDEX = 2; 15 | 16 | private int _size = 0; 17 | 18 | public ContentPutRequest(int requestSize) { 19 | _content = new Object[requestSize][]; 20 | } 21 | 22 | public void put(KContentKey p_key, String p_payload) { 23 | Object[] newLine = new Object[SIZE_INDEX]; 24 | newLine[KEY_INDEX] = p_key; 25 | newLine[CONTENT_INDEX] = p_payload; 26 | _content[_size] = newLine; 27 | _size = _size + 1; 28 | } 29 | 30 | public KContentKey getKey(int index) { 31 | if (index < _content.length) { 32 | return (KContentKey) _content[index][0]; 33 | } else { 34 | return null; 35 | } 36 | } 37 | 38 | public String getContent(int index) { 39 | if (index < _content.length) { 40 | return (String) _content[index][1]; 41 | } else { 42 | return null; 43 | } 44 | } 45 | 46 | public int size() { 47 | return _size; 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/defer/KDefer.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.defer; 2 | 3 | import org.kevoree.modeling.KCallback; 4 | 5 | public interface KDefer { 6 | 7 | KCallback wait(String resultName); 8 | 9 | KDefer waitDefer(KDefer previous); 10 | 11 | boolean isDone(); 12 | 13 | Object getResult(String resultName) throws Exception; 14 | 15 | /** 16 | * @ignore ts 17 | */ 18 | A getResult(String resultName, Class casted) throws Exception; 19 | 20 | void then(KCallback cb); 21 | 22 | KDefer next(); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/event/KEventListener.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.event; 2 | 3 | import org.kevoree.modeling.KObject; 4 | import org.kevoree.modeling.meta.KMeta; 5 | 6 | public interface KEventListener { 7 | 8 | void on(KObject src, KMeta[] modifications); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/event/KEventMultiListener.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.event; 2 | 3 | import org.kevoree.modeling.KObject; 4 | 5 | public interface KEventMultiListener { 6 | 7 | void on(KObject[] objects); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/extrapolation/Extrapolation.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.extrapolation; 2 | 3 | import org.kevoree.modeling.KObject; 4 | import org.kevoree.modeling.meta.KMetaAttribute; 5 | 6 | public interface Extrapolation { 7 | 8 | Object extrapolate(KObject current, KMetaAttribute attribute); 9 | 10 | void mutate(KObject current, KMetaAttribute attribute, Object payload); 11 | 12 | } 13 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/extrapolation/impl/DiscreteExtrapolation.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.extrapolation.impl; 2 | 3 | import org.kevoree.modeling.KObject; 4 | import org.kevoree.modeling.abs.AbstractKObject; 5 | import org.kevoree.modeling.extrapolation.Extrapolation; 6 | import org.kevoree.modeling.memory.struct.segment.KMemorySegment; 7 | import org.kevoree.modeling.memory.manager.AccessMode; 8 | import org.kevoree.modeling.meta.KMetaAttribute; 9 | 10 | public class DiscreteExtrapolation implements Extrapolation { 11 | 12 | private static DiscreteExtrapolation INSTANCE; 13 | 14 | public static Extrapolation instance() { 15 | if (INSTANCE == null) { 16 | INSTANCE = new DiscreteExtrapolation(); 17 | } 18 | return INSTANCE; 19 | } 20 | 21 | @Override 22 | public Object extrapolate(KObject current, KMetaAttribute attribute) { 23 | KMemorySegment payload = ((AbstractKObject) current)._manager.segment(current.universe(), current.now(), current.uuid(), AccessMode.RESOLVE, current.metaClass(), null); 24 | if (payload != null) { 25 | return payload.get(attribute.index(), current.metaClass()); 26 | } else { 27 | return null; 28 | } 29 | } 30 | 31 | @Override 32 | public void mutate(KObject current, KMetaAttribute attribute, Object payload) { 33 | //By requiring a raw on the current object, we automatically create and copy the previous object 34 | KMemorySegment internalPayload = ((AbstractKObject) current)._manager.segment(current.universe(), current.now(), current.uuid(), AccessMode.NEW, current.metaClass(), null); 35 | //The object is also automatically cset to Dirty 36 | if (internalPayload != null) { 37 | internalPayload.set(attribute.index(), payload, current.metaClass()); 38 | } 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/extrapolation/impl/maths/PolynomialFitEjml.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.extrapolation.impl.maths; 2 | 3 | public class PolynomialFitEjml { 4 | // Vandermonde matrix 5 | DenseMatrix64F A; 6 | // matrix containing computed polynomial coefficients 7 | DenseMatrix64F coef; 8 | // observation matrix 9 | DenseMatrix64F y; 10 | // solver used to compute 11 | AdjLinearSolverQr solver; 12 | 13 | public PolynomialFitEjml(int degree) { 14 | coef = new DenseMatrix64F(degree + 1, 1); 15 | A = new DenseMatrix64F(1, degree + 1); 16 | y = new DenseMatrix64F(1, 1); 17 | // create a solver that allows elements to be added or removed efficiently 18 | solver = new AdjLinearSolverQr(); 19 | } 20 | 21 | public double[] getCoef() { 22 | return coef.data; 23 | } 24 | 25 | public void fit(double samplePoints[], double[] observations) { 26 | y.reshape(observations.length, 1, false); 27 | System.arraycopy(observations, 0, y.data, 0, observations.length); 28 | A.reshape(y.numRows, coef.numRows, false); 29 | // cset up the A matrix 30 | for (int i = 0; i < observations.length; i++) { 31 | double obs = 1; 32 | for (int j = 0; j < coef.numRows; j++) { 33 | A.cset(i, j, obs); 34 | obs *= samplePoints[i]; 35 | } 36 | } 37 | // process the A matrix and see if it failed 38 | solver.setA(A); 39 | solver.solve(y, coef); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/format/KModelFormat.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.format; 2 | 3 | import org.kevoree.modeling.KCallback; 4 | import org.kevoree.modeling.KObject; 5 | 6 | public interface KModelFormat { 7 | 8 | void save(KObject model, KCallback cb); 9 | 10 | void saveRoot(KCallback cb); 11 | 12 | void load(String payload, KCallback cb); 13 | 14 | } -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/format/json/JsonType.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.format.json; 2 | 3 | /** 4 | * @ignore ts 5 | */ 6 | public enum JsonType { 7 | VALUE, 8 | LEFT_BRACE, 9 | RIGHT_BRACE, 10 | LEFT_BRACKET, 11 | RIGHT_BRACKET, 12 | COMMA, 13 | COLON, 14 | EOF 15 | } -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/format/xmi/SerializationContext.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.format.xmi; 2 | 3 | import org.kevoree.modeling.KCallback; 4 | import org.kevoree.modeling.KConfig; 5 | import org.kevoree.modeling.traversal.visitor.KModelAttributeVisitor; 6 | import org.kevoree.modeling.KObject; 7 | import org.kevoree.modeling.memory.struct.map.impl.ArrayLongMap; 8 | import org.kevoree.modeling.memory.struct.map.impl.ArrayStringMap; 9 | 10 | import java.util.ArrayList; 11 | 12 | public class SerializationContext { 13 | public boolean ignoreGeneratedID = false; 14 | public KObject model; 15 | public KCallback finishCallback; 16 | public StringBuilder printer; 17 | public KModelAttributeVisitor attributesVisitor; 18 | 19 | // KPath -> XMIPath 20 | ArrayLongMap addressTable = new ArrayLongMap(KConfig.CACHE_INIT_SIZE, KConfig.CACHE_LOAD_FACTOR); 21 | // KPath -> Count 22 | ArrayStringMap elementsCount = new ArrayStringMap(KConfig.CACHE_INIT_SIZE, KConfig.CACHE_LOAD_FACTOR); 23 | 24 | ArrayList packageList = new ArrayList(); 25 | 26 | } -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/format/xmi/XMILoadingContext.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.format.xmi; 2 | 3 | import org.kevoree.modeling.KCallback; 4 | import org.kevoree.modeling.KConfig; 5 | import org.kevoree.modeling.KObject; 6 | import org.kevoree.modeling.memory.struct.map.impl.ArrayStringMap; 7 | 8 | import java.util.ArrayList; 9 | 10 | /** 11 | * Created by duke on 10/27/14. 12 | */ 13 | public class XMILoadingContext { 14 | 15 | public XmlParser xmiReader; 16 | 17 | public KObject loadedRoots = null; 18 | 19 | public ArrayList resolvers = new ArrayList(); 20 | 21 | public ArrayStringMap map = new ArrayStringMap(KConfig.CACHE_INIT_SIZE,KConfig.CACHE_LOAD_FACTOR); 22 | 23 | public ArrayStringMap elementsCount = new ArrayStringMap(KConfig.CACHE_INIT_SIZE,KConfig.CACHE_LOAD_FACTOR); 24 | 25 | public KCallback successCallback; 26 | 27 | } 28 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/format/xmi/XMIResolveCommand.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.format.xmi; 2 | 3 | import org.kevoree.modeling.KActionType; 4 | import org.kevoree.modeling.KObject; 5 | import org.kevoree.modeling.meta.KMetaReference; 6 | 7 | public class XMIResolveCommand { 8 | 9 | private XMILoadingContext context; 10 | private KObject target; 11 | private KActionType mutatorType; 12 | private String refName; 13 | private String ref; 14 | 15 | public XMIResolveCommand(XMILoadingContext context, KObject target, KActionType mutatorType, String refName, String ref) { 16 | this.context = context; 17 | this.target = target; 18 | this.mutatorType = mutatorType; 19 | this.refName = refName; 20 | this.ref = ref; 21 | } 22 | 23 | void run() throws Exception { 24 | KObject referencedElement = context.map.get(ref); 25 | if (referencedElement != null) { 26 | target.mutate(mutatorType, (KMetaReference) target.metaClass().metaByName(refName), referencedElement); 27 | return; 28 | } 29 | referencedElement = context.map.get("/"); 30 | if (referencedElement != null) { 31 | target.mutate(mutatorType, (KMetaReference) target.metaClass().metaByName(refName), referencedElement); 32 | return; 33 | } 34 | throw new Exception("KMF Load error : reference " + ref + " not found in map when trying to " + mutatorType + " " + refName + " on " + target.metaClass().metaName() + "(uuid:" + target.uuid() + ")"); 35 | } 36 | } -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/format/xmi/XmiFormat.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.format.xmi; 2 | 3 | import org.kevoree.modeling.KObject; 4 | import org.kevoree.modeling.KCallback; 5 | import org.kevoree.modeling.format.KModelFormat; 6 | import org.kevoree.modeling.memory.manager.KMemoryManager; 7 | 8 | public class XmiFormat implements KModelFormat { 9 | 10 | private KMemoryManager _manager; 11 | 12 | private long _universe; 13 | 14 | private long _time; 15 | 16 | public XmiFormat(long p_universe, long p_time, KMemoryManager p_manager) { 17 | this._universe = p_universe; 18 | this._time = p_time; 19 | this._manager = p_manager; 20 | } 21 | 22 | @Override 23 | public void save(KObject model, KCallback cb) { 24 | XMIModelSerializer.save(model, cb); 25 | } 26 | 27 | public void saveRoot(KCallback cb) { 28 | _manager.getRoot(_universe, _time, new KCallback() { 29 | @Override 30 | public void on(KObject root) { 31 | if (root == null) { 32 | if (cb != null) { 33 | cb.on(null); 34 | } 35 | } else { 36 | XMIModelSerializer.save(root, cb); 37 | } 38 | } 39 | }); 40 | } 41 | 42 | @Override 43 | public void load(String payload, KCallback cb) { 44 | XMIModelLoader.load(_manager, _universe, _time, payload, cb); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/format/xmi/XmlToken.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.format.xmi; 2 | 3 | public enum XmlToken { 4 | XML_HEADER, 5 | END_DOCUMENT, 6 | START_TAG, 7 | END_TAG, 8 | COMMENT, 9 | SINGLETON_TAG 10 | } -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/infer/AnalyticKInfer.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.infer; 2 | 3 | import org.kevoree.modeling.KCallback; 4 | import org.kevoree.modeling.memory.manager.KMemoryManager; 5 | import org.kevoree.modeling.infer.states.AnalyticKInferState; 6 | import org.kevoree.modeling.meta.KMetaClass; 7 | 8 | /** 9 | * This class is a basic live learning of the average of a field. 10 | * Training this class does not take any features. 11 | * it takes only results (the field to be learned). 12 | * The state is an accumulator (Sum of values) and a counter (number of valeus). 13 | * The prediction is a a fixed result of the average value learned. 14 | * It is calculated by dividing the accumulator by the counter; 15 | * Created by assaad on 10/02/15. 16 | */ 17 | public class AnalyticKInfer { 18 | 19 | /* 20 | @Override 21 | public void train(Object[][] trainingSet, Object[] expectedResultSet, KCallback callback) { 22 | AnalyticKInferState currentState = (AnalyticKInferState) modifyState(); 23 | 24 | for (int i = 0; i < expectedResultSet.length; i++) { 25 | double value=Double.parseDouble(expectedResultSet[i].toString()); 26 | currentState.train(value); 27 | } 28 | } 29 | 30 | @Override 31 | public Object infer(Object[] features) { 32 | AnalyticKInferState currentState = (AnalyticKInferState) readOnlyState(); 33 | return currentState.getAverage(); 34 | } 35 | 36 | @Override 37 | public Object accuracy(Object[][] testSet, Object[] expectedResultSet) { 38 | return null; 39 | } 40 | 41 | @Override 42 | public void clear() { 43 | AnalyticKInferState currentState = (AnalyticKInferState) modifyState(); 44 | currentState.clear(); 45 | } 46 | 47 | @Override 48 | public KInferState createEmptyState() { 49 | return new AnalyticKInferState(); 50 | }*/ 51 | 52 | } 53 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/infer/KInfer.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.infer; 2 | 3 | import org.kevoree.modeling.KCallback; 4 | import org.kevoree.modeling.KObject; 5 | 6 | /** 7 | * TODO consider some strategy to avoid the boxing 8 | */ 9 | public interface KInfer extends KObject { 10 | 11 | /** 12 | * @param expectedResultSet can be null in case of unsuperviseLearning 13 | * @param trainingSet represent the training set, the first array represent the samples, the second array represent the features 14 | */ 15 | void train(Object[][] trainingSet, Object[] expectedResultSet, KCallback callback); 16 | 17 | Object infer(Object[] features); 18 | 19 | Object accuracy(Object[][] testSet, Object[] expectedResultSet); 20 | 21 | void clear(); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/infer/KInferState.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.infer; 2 | 3 | public abstract class KInferState { 4 | 5 | public abstract String save(); 6 | 7 | public abstract void load(String payload); 8 | 9 | public abstract boolean isDirty(); 10 | 11 | public abstract KInferState cloneState(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/infer/states/Bayesian/BayesianSubstate.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.infer.states.Bayesian; 2 | 3 | /** 4 | * Created by assaad on 17/02/15. 5 | */ 6 | public abstract class BayesianSubstate { 7 | public abstract double calculateProbability(Object feature); 8 | 9 | public abstract void train(Object feature); 10 | 11 | public abstract String save(String separator); 12 | 13 | public abstract void load(String payload, String separator); 14 | 15 | public abstract BayesianSubstate cloneState(); 16 | } 17 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/memory/KMemoryElement.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory; 2 | 3 | import org.kevoree.modeling.meta.KMetaModel; 4 | 5 | public interface KMemoryElement { 6 | 7 | boolean isDirty(); 8 | 9 | void setClean(KMetaModel metaModel); 10 | 11 | void setDirty(); 12 | 13 | String serialize(KMetaModel metaModel); 14 | 15 | void init(String payload, KMetaModel metaModel) throws Exception; 16 | 17 | int counter(); 18 | 19 | void inc(); 20 | 21 | void dec(); 22 | 23 | void free(KMetaModel metaModel); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/memory/KMemoryFactory.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory; 2 | 3 | import org.kevoree.modeling.memory.struct.map.KUniverseOrderMap; 4 | import org.kevoree.modeling.memory.struct.segment.KMemorySegment; 5 | import org.kevoree.modeling.memory.struct.tree.KLongLongTree; 6 | import org.kevoree.modeling.memory.struct.tree.KLongTree; 7 | 8 | public interface KMemoryFactory { 9 | 10 | KMemorySegment newCacheSegment(); 11 | 12 | KLongTree newLongTree(); 13 | 14 | KLongLongTree newLongLongTree(); 15 | 16 | KUniverseOrderMap newUniverseMap(int initSize, String className); 17 | 18 | KMemoryElement newFromKey(long universe,long time, long uuid); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/memory/cache/KCache.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.cache; 2 | 3 | import org.kevoree.modeling.KObject; 4 | import org.kevoree.modeling.memory.KMemoryElement; 5 | import org.kevoree.modeling.memory.cache.impl.KCacheDirty; 6 | import org.kevoree.modeling.meta.KMetaModel; 7 | 8 | public interface KCache { 9 | 10 | KMemoryElement get(long universe, long time, long obj); 11 | 12 | void put(long universe, long time, long obj, KMemoryElement payload); 13 | 14 | KCacheDirty[] dirties(); 15 | 16 | void clear(KMetaModel metaModel); 17 | 18 | void clean(KMetaModel metaModel); 19 | 20 | void monitor(KObject origin); 21 | 22 | int size(); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/memory/cache/impl/KCacheDirty.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.cache.impl; 2 | 3 | import org.kevoree.modeling.memory.KMemoryElement; 4 | import org.kevoree.modeling.KContentKey; 5 | 6 | public class KCacheDirty { 7 | 8 | public KContentKey key; 9 | 10 | public KMemoryElement object; 11 | 12 | public KCacheDirty(KContentKey key, KMemoryElement object) { 13 | this.key = key; 14 | this.object = object; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/memory/cache/impl/KObjectWeakReference.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.cache.impl; 2 | 3 | import org.kevoree.modeling.KObject; 4 | 5 | import java.lang.ref.WeakReference; 6 | 7 | /** 8 | * @ignore ts 9 | */ 10 | public class KObjectWeakReference extends WeakReference { 11 | 12 | public long universe; 13 | 14 | public long time; 15 | 16 | public long uuid; 17 | 18 | public KObjectWeakReference next; 19 | 20 | public KObjectWeakReference(KObject referent) { 21 | super(referent, null); 22 | universe = referent.universe(); 23 | time = referent.now(); 24 | uuid = referent.uuid(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/memory/manager/AccessMode.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.manager; 2 | 3 | public enum AccessMode { 4 | RESOLVE, 5 | NEW, 6 | DELETE 7 | } -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/memory/manager/KMemorySegmentResolutionTrace.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.manager; 2 | 3 | import org.kevoree.modeling.memory.struct.map.KUniverseOrderMap; 4 | import org.kevoree.modeling.memory.struct.segment.KMemorySegment; 5 | import org.kevoree.modeling.memory.struct.tree.KLongTree; 6 | 7 | public interface KMemorySegmentResolutionTrace { 8 | 9 | long getUniverse(); 10 | 11 | void setUniverse(long universe); 12 | 13 | long getTime(); 14 | 15 | void setTime(long time); 16 | 17 | KUniverseOrderMap getUniverseTree(); 18 | 19 | void setUniverseOrder(KUniverseOrderMap orderMap); 20 | 21 | KLongTree getTimeTree(); 22 | 23 | void setTimeTree(KLongTree tree); 24 | 25 | KMemorySegment getSegment(); 26 | 27 | void setSegment(KMemorySegment tree); 28 | 29 | } 30 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/memory/manager/impl/MemorySegmentResolutionTrace.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.manager.impl; 2 | 3 | import org.kevoree.modeling.memory.manager.KMemorySegmentResolutionTrace; 4 | import org.kevoree.modeling.memory.struct.map.KUniverseOrderMap; 5 | import org.kevoree.modeling.memory.struct.segment.KMemorySegment; 6 | import org.kevoree.modeling.memory.struct.tree.KLongTree; 7 | 8 | public class MemorySegmentResolutionTrace implements KMemorySegmentResolutionTrace { 9 | 10 | private long _universe; 11 | 12 | private long _time; 13 | 14 | private KUniverseOrderMap _universeOrder; 15 | 16 | private KLongTree _timeTree; 17 | 18 | private KMemorySegment _segment; 19 | 20 | @Override 21 | public long getUniverse() { 22 | return this._universe; 23 | } 24 | 25 | @Override 26 | public void setUniverse(long p_universe) { 27 | this._universe = p_universe; 28 | } 29 | 30 | @Override 31 | public long getTime() { 32 | return this._time; 33 | } 34 | 35 | @Override 36 | public void setTime(long p_time) { 37 | this._time = p_time; 38 | } 39 | 40 | @Override 41 | public KUniverseOrderMap getUniverseTree() { 42 | return this._universeOrder; 43 | } 44 | 45 | @Override 46 | public void setUniverseOrder(KUniverseOrderMap p_u_tree) { 47 | this._universeOrder = p_u_tree; 48 | } 49 | 50 | @Override 51 | public KLongTree getTimeTree() { 52 | return this._timeTree; 53 | } 54 | 55 | @Override 56 | public void setTimeTree(KLongTree p_t_tree) { 57 | this._timeTree = p_t_tree; 58 | } 59 | 60 | @Override 61 | public KMemorySegment getSegment() { 62 | return this._segment; 63 | } 64 | 65 | @Override 66 | public void setSegment(KMemorySegment p_segment) { 67 | this._segment = p_segment; 68 | } 69 | 70 | } 71 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/memory/struct/map/KIntMap.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.map; 2 | 3 | public interface KIntMap { 4 | 5 | boolean contains(int key); 6 | 7 | V get(int key); 8 | 9 | void put(int key, V value); 10 | 11 | void each(KLongMapCallBack callback); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/memory/struct/map/KIntMapCallBack.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.map; 2 | 3 | /** 4 | * Created by duke on 04/03/15. 5 | */ 6 | public interface KIntMapCallBack { 7 | 8 | void on(int key, V value); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/memory/struct/map/KLongLongMap.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.map; 2 | 3 | public interface KLongLongMap { 4 | 5 | boolean contains(long key); 6 | 7 | long get(long key); 8 | 9 | void put(long key, long value); 10 | 11 | void each(KLongLongMapCallBack callback); 12 | 13 | int size(); 14 | 15 | void clear(); 16 | } 17 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/memory/struct/map/KLongLongMapCallBack.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.map; 2 | 3 | /** 4 | * Created by duke on 04/03/15. 5 | */ 6 | public interface KLongLongMapCallBack { 7 | 8 | public void on(long key, long value); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/memory/struct/map/KLongMap.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.map; 2 | 3 | public interface KLongMap { 4 | 5 | boolean contains(long key); 6 | 7 | V get(long key); 8 | 9 | void put(long key, V value); 10 | 11 | void each(KLongMapCallBack callback); 12 | 13 | int size(); 14 | 15 | void clear(); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/memory/struct/map/KLongMapCallBack.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.map; 2 | 3 | /** 4 | * Created by duke on 04/03/15. 5 | */ 6 | public interface KLongMapCallBack { 7 | 8 | public void on(long key, V value); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/memory/struct/map/KStringMap.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.map; 2 | 3 | public interface KStringMap { 4 | 5 | boolean contains(String key); 6 | 7 | V get(String key); 8 | 9 | void put(String key, V value); 10 | 11 | void each(KStringMapCallBack callback); 12 | 13 | int size(); 14 | 15 | void clear(); 16 | 17 | void remove(String key); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/memory/struct/map/KStringMapCallBack.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.map; 2 | 3 | /** 4 | * Created by duke on 04/03/15. 5 | */ 6 | public interface KStringMapCallBack { 7 | 8 | void on(String key, V value); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/memory/struct/map/KUniverseOrderMap.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.map; 2 | 3 | import org.kevoree.modeling.memory.KMemoryElement; 4 | 5 | public interface KUniverseOrderMap extends KLongLongMap, KMemoryElement { 6 | String metaClassName(); 7 | } 8 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/memory/struct/segment/KMemorySegment.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.segment; 2 | 3 | import org.kevoree.modeling.memory.KMemoryElement; 4 | import org.kevoree.modeling.meta.KMetaClass; 5 | 6 | public interface KMemorySegment extends KMemoryElement { 7 | 8 | KMemorySegment clone(KMetaClass metaClass); 9 | 10 | void set(int index, Object content, KMetaClass metaClass); 11 | 12 | Object get(int index, KMetaClass metaClass); 13 | 14 | //TODO add for primitive 15 | 16 | /* References management */ 17 | int getRefSize(int index, KMetaClass metaClass); 18 | 19 | long getRefElem(int index, int refIndex, KMetaClass metaClass); 20 | 21 | long[] getRef(int index, KMetaClass metaClass); 22 | 23 | boolean addRef(int index, long newRef, KMetaClass metaClass); 24 | 25 | boolean removeRef(int index, long previousRef, KMetaClass metaClass); 26 | 27 | /* Extrapolated attributes management */ 28 | double[] getInfer(int index, KMetaClass metaClass); 29 | 30 | int getInferSize(int index, KMetaClass metaClass); 31 | 32 | double getInferElem(int index, int arrayIndex, KMetaClass metaClass); 33 | 34 | void setInferElem(int index, int arrayIndex, double valueToInsert, KMetaClass metaClass); 35 | 36 | void extendInfer(int index, int newSize, KMetaClass metaClass); 37 | /* */ 38 | 39 | int[] modifiedIndexes(KMetaClass metaClass); 40 | 41 | void initMetaClass(KMetaClass metaClass); 42 | 43 | int metaClassIndex(); 44 | 45 | } 46 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/memory/struct/tree/KLongLongTree.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.tree; 2 | 3 | public interface KLongLongTree extends KTree { 4 | 5 | void insert(long key, long value); 6 | 7 | long previousOrEqualValue(long key); 8 | 9 | long lookupValue(long key); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/memory/struct/tree/KLongTree.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.tree; 2 | 3 | public interface KLongTree extends KTree { 4 | 5 | void insert(long key); 6 | 7 | long previousOrEqual(long key); 8 | 9 | long lookup(long key); 10 | 11 | void range(long startKey, long endKey, KTreeWalker walker); 12 | 13 | void delete(long key); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/memory/struct/tree/KTree.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.tree; 2 | 3 | import org.kevoree.modeling.memory.KMemoryElement; 4 | 5 | public interface KTree extends KMemoryElement { 6 | 7 | int size(); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/memory/struct/tree/KTreeWalker.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.tree; 2 | 3 | public interface KTreeWalker { 4 | 5 | void elem(long t); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/memory/struct/tree/impl/TreeReaderContext.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.tree.impl; 2 | 3 | class TreeReaderContext { 4 | 5 | public String payload; 6 | 7 | public int index; 8 | 9 | public char[] buffer; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/message/KMessage.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.message; 2 | 3 | public interface KMessage { 4 | 5 | String json(); 6 | 7 | int type(); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/message/impl/AtomicGetIncrementRequest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.message.impl; 2 | 3 | import org.kevoree.modeling.KContentKey; 4 | import org.kevoree.modeling.message.KMessage; 5 | import org.kevoree.modeling.message.KMessageLoader; 6 | 7 | public class AtomicGetIncrementRequest implements KMessage { 8 | 9 | public long id; 10 | 11 | public KContentKey key; 12 | 13 | @Override 14 | public String json() { 15 | StringBuilder buffer = new StringBuilder(); 16 | MessageHelper.printJsonStart(buffer); 17 | MessageHelper.printType(buffer, type()); 18 | MessageHelper.printElem(id, KMessageLoader.ID_NAME, buffer); 19 | MessageHelper.printElem(key, KMessageLoader.KEY_NAME, buffer); 20 | MessageHelper.printJsonEnd(buffer); 21 | return buffer.toString(); 22 | } 23 | 24 | @Override 25 | public int type() { 26 | return KMessageLoader.ATOMIC_GET_INC_REQUEST_TYPE; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/message/impl/AtomicGetIncrementResult.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.message.impl; 2 | 3 | import org.kevoree.modeling.message.KMessage; 4 | import org.kevoree.modeling.message.KMessageLoader; 5 | 6 | public class AtomicGetIncrementResult implements KMessage { 7 | 8 | public long id; 9 | 10 | public Short value; 11 | 12 | @Override 13 | public String json() { 14 | StringBuilder buffer = new StringBuilder(); 15 | MessageHelper.printJsonStart(buffer); 16 | MessageHelper.printType(buffer, type()); 17 | MessageHelper.printElem(id, KMessageLoader.ID_NAME, buffer); 18 | MessageHelper.printElem(value, KMessageLoader.VALUE_NAME, buffer); 19 | MessageHelper.printJsonEnd(buffer); 20 | return buffer.toString(); 21 | } 22 | 23 | @Override 24 | public int type() { 25 | return KMessageLoader.ATOMIC_GET_INC_RESULT_TYPE; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/message/impl/GetRequest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.message.impl; 2 | 3 | import org.kevoree.modeling.KContentKey; 4 | import org.kevoree.modeling.message.KMessage; 5 | import org.kevoree.modeling.message.KMessageLoader; 6 | 7 | public class GetRequest implements KMessage { 8 | 9 | public long id; 10 | 11 | public KContentKey[] keys; 12 | 13 | @Override 14 | public String json() { 15 | StringBuilder buffer = new StringBuilder(); 16 | MessageHelper.printJsonStart(buffer); 17 | MessageHelper.printType(buffer, type()); 18 | MessageHelper.printElem(id, KMessageLoader.ID_NAME, buffer); 19 | if (keys != null) { 20 | buffer.append(","); 21 | buffer.append("\""); 22 | buffer.append(KMessageLoader.KEYS_NAME).append("\":["); 23 | for (int i = 0; i < keys.length; i++) { 24 | if (i != 0) { 25 | buffer.append(","); 26 | } 27 | buffer.append("\""); 28 | buffer.append(keys[i].toString()); 29 | buffer.append("\""); 30 | } 31 | buffer.append("]\n"); 32 | } 33 | MessageHelper.printJsonEnd(buffer); 34 | return buffer.toString(); 35 | } 36 | 37 | @Override 38 | public int type() { 39 | return KMessageLoader.GET_REQ_TYPE; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/message/impl/GetResult.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.message.impl; 2 | 3 | import org.kevoree.modeling.format.json.JsonString; 4 | import org.kevoree.modeling.message.KMessage; 5 | import org.kevoree.modeling.message.KMessageLoader; 6 | 7 | public class GetResult implements KMessage { 8 | 9 | public long id; 10 | 11 | public String[] values; 12 | 13 | @Override 14 | public String json() { 15 | StringBuilder buffer = new StringBuilder(); 16 | MessageHelper.printJsonStart(buffer); 17 | MessageHelper.printType(buffer, type()); 18 | MessageHelper.printElem(id, KMessageLoader.ID_NAME, buffer); 19 | if (values != null) { 20 | buffer.append(","); 21 | buffer.append("\""); 22 | buffer.append(KMessageLoader.VALUES_NAME).append("\":["); 23 | for (int i = 0; i < values.length; i++) { 24 | if (i != 0) { 25 | buffer.append(","); 26 | } 27 | buffer.append("\""); 28 | buffer.append(JsonString.encode(values[i])); 29 | buffer.append("\""); 30 | } 31 | buffer.append("]\n"); 32 | } 33 | MessageHelper.printJsonEnd(buffer); 34 | return buffer.toString(); 35 | } 36 | 37 | @Override 38 | public int type() { 39 | return KMessageLoader.GET_RES_TYPE; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/message/impl/MessageHelper.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.message.impl; 2 | 3 | import org.kevoree.modeling.message.KMessageLoader; 4 | 5 | public class MessageHelper { 6 | 7 | public static void printJsonStart(StringBuilder builder) { 8 | builder.append("{\n"); 9 | } 10 | 11 | public static void printJsonEnd(StringBuilder builder) { 12 | builder.append("}\n"); 13 | } 14 | 15 | public static void printType(StringBuilder builder, int type) { 16 | builder.append("\""); 17 | builder.append(KMessageLoader.TYPE_NAME); 18 | builder.append("\":\""); 19 | builder.append(type); 20 | builder.append("\"\n"); 21 | } 22 | 23 | public static void printElem(Object elem, String name, StringBuilder builder) { 24 | if (elem != null) { 25 | builder.append(","); 26 | builder.append("\""); 27 | builder.append(name); 28 | builder.append("\":\""); 29 | builder.append(elem.toString()); 30 | builder.append("\"\n"); 31 | } 32 | } 33 | 34 | 35 | } 36 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/message/impl/OperationCallMessage.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.message.impl; 2 | 3 | import org.kevoree.modeling.KContentKey; 4 | import org.kevoree.modeling.format.json.JsonString; 5 | import org.kevoree.modeling.message.KMessage; 6 | import org.kevoree.modeling.message.KMessageLoader; 7 | 8 | public class OperationCallMessage implements KMessage { 9 | 10 | public long id; 11 | public int classIndex; 12 | public int opIndex; 13 | public String[] params; 14 | public KContentKey key; 15 | 16 | @Override 17 | public String json() { 18 | StringBuilder buffer = new StringBuilder(); 19 | MessageHelper.printJsonStart(buffer); 20 | MessageHelper.printType(buffer, type()); 21 | MessageHelper.printElem(id, KMessageLoader.ID_NAME, buffer); 22 | MessageHelper.printElem(key, KMessageLoader.KEY_NAME, buffer); 23 | buffer.append(",\"").append(KMessageLoader.CLASS_IDX_NAME).append("\":\"").append(classIndex).append("\""); 24 | buffer.append(",\"").append(KMessageLoader.OPERATION_NAME).append("\":\"").append(opIndex).append("\""); 25 | if (params != null) { 26 | buffer.append(",\""); 27 | buffer.append(KMessageLoader.PARAMETERS_NAME).append("\":["); 28 | for (int i = 0; i < params.length; i++) { 29 | if (i != 0) { 30 | buffer.append(","); 31 | } 32 | buffer.append("\""); 33 | buffer.append(JsonString.encode(params[i])); 34 | buffer.append("\""); 35 | } 36 | buffer.append("]\n"); 37 | } 38 | MessageHelper.printJsonEnd(buffer); 39 | return buffer.toString(); 40 | } 41 | 42 | @Override 43 | public int type() { 44 | return KMessageLoader.OPERATION_CALL_TYPE; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/message/impl/OperationResultMessage.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.message.impl; 2 | 3 | import org.kevoree.modeling.KContentKey; 4 | import org.kevoree.modeling.message.KMessage; 5 | import org.kevoree.modeling.message.KMessageLoader; 6 | 7 | public class OperationResultMessage implements KMessage { 8 | 9 | public long id; 10 | public String value; 11 | public KContentKey key; 12 | 13 | @Override 14 | public String json() { 15 | StringBuilder buffer = new StringBuilder(); 16 | MessageHelper.printJsonStart(buffer); 17 | MessageHelper.printType(buffer, type()); 18 | MessageHelper.printElem(id, KMessageLoader.ID_NAME, buffer); 19 | MessageHelper.printElem(key, KMessageLoader.KEY_NAME, buffer); 20 | MessageHelper.printElem(value, KMessageLoader.VALUE_NAME, buffer); 21 | MessageHelper.printJsonEnd(buffer); 22 | return buffer.toString(); 23 | } 24 | 25 | @Override 26 | public int type() { 27 | return KMessageLoader.OPERATION_RESULT_TYPE; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/message/impl/PutResult.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.message.impl; 2 | 3 | import org.kevoree.modeling.message.KMessage; 4 | import org.kevoree.modeling.message.KMessageLoader; 5 | 6 | public class PutResult implements KMessage { 7 | 8 | public long id; 9 | 10 | @Override 11 | public String json() { 12 | StringBuilder buffer = new StringBuilder(); 13 | MessageHelper.printJsonStart(buffer); 14 | MessageHelper.printType(buffer, type()); 15 | MessageHelper.printElem(id, KMessageLoader.ID_NAME, buffer); 16 | MessageHelper.printJsonEnd(buffer); 17 | return buffer.toString(); 18 | } 19 | 20 | @Override 21 | public int type() { 22 | return KMessageLoader.PUT_RES_TYPE; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/meta/KMeta.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.meta; 2 | 3 | public interface KMeta { 4 | 5 | int index(); 6 | 7 | String metaName(); 8 | 9 | MetaType metaType(); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/meta/KMetaAttribute.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.meta; 2 | 3 | import org.kevoree.modeling.KType; 4 | import org.kevoree.modeling.extrapolation.Extrapolation; 5 | 6 | public interface KMetaAttribute extends KMeta { 7 | 8 | boolean key(); 9 | 10 | KType attributeType(); 11 | 12 | Extrapolation strategy(); 13 | 14 | double precision(); 15 | 16 | void setExtrapolation(Extrapolation extrapolation); 17 | 18 | void setPrecision(double precision); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/meta/KMetaClass.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.meta; 2 | 3 | import org.kevoree.modeling.KType; 4 | import org.kevoree.modeling.extrapolation.Extrapolation; 5 | 6 | public interface KMetaClass extends KMeta { 7 | 8 | KMeta[] metaElements(); 9 | 10 | KMeta meta(int index); 11 | 12 | KMeta metaByName(String name); 13 | 14 | KMetaAttribute attribute(String name); 15 | 16 | KMetaReference reference(String name); 17 | 18 | KMetaOperation operation(String name); 19 | 20 | KMetaAttribute addAttribute(String attributeName, KType p_type); 21 | 22 | KMetaReference addReference(String referenceName, KMetaClass metaClass, String oppositeName, boolean toMany); 23 | 24 | KMetaOperation addOperation(String operationName); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/meta/KMetaModel.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.meta; 2 | 3 | import org.kevoree.modeling.KModel; 4 | 5 | public interface KMetaModel extends KMeta { 6 | 7 | KMetaClass[] metaClasses(); 8 | 9 | KMetaClass metaClassByName(String name); 10 | 11 | KMetaClass metaClass(int index); 12 | 13 | KMetaClass addMetaClass(String metaClassName); 14 | 15 | KModel model(); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/meta/KMetaOperation.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.meta; 2 | 3 | public interface KMetaOperation extends KMeta { 4 | 5 | KMeta origin(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/meta/KMetaReference.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.meta; 2 | 3 | public interface KMetaReference extends KMeta { 4 | 5 | boolean visible(); 6 | 7 | boolean single(); 8 | 9 | KMetaClass type(); 10 | 11 | KMetaReference opposite(); 12 | 13 | KMetaClass origin(); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/meta/KPrimitiveTypes.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.meta; 2 | 3 | import org.kevoree.modeling.KType; 4 | import org.kevoree.modeling.abs.AbstractDataType; 5 | 6 | public class KPrimitiveTypes { 7 | 8 | public static final KType STRING = new AbstractDataType("STRING", false); 9 | public static final KType LONG = new AbstractDataType("LONG", false); 10 | public static final KType INT = new AbstractDataType("INT", false); 11 | public static final KType BOOL = new AbstractDataType("BOOL", false); 12 | public static final KType SHORT = new AbstractDataType("SHORT", false); 13 | public static final KType DOUBLE = new AbstractDataType("DOUBLE", false); 14 | public static final KType FLOAT = new AbstractDataType("FLOAT", false); 15 | public static final KType CONTINUOUS = new AbstractDataType("CONTINUOUS", false); 16 | 17 | } -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/meta/MetaType.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.meta; 2 | 3 | public enum MetaType { 4 | ATTRIBUTE, 5 | REFERENCE, 6 | OPERATION, 7 | CLASS, 8 | MODEL 9 | } 10 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/meta/impl/GenericModel.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.meta.impl; 2 | 3 | import org.kevoree.modeling.KObject; 4 | import org.kevoree.modeling.KUniverse; 5 | import org.kevoree.modeling.abs.AbstractKModel; 6 | import org.kevoree.modeling.meta.KMetaClass; 7 | import org.kevoree.modeling.meta.KMetaModel; 8 | 9 | class GenericModel extends AbstractKModel { 10 | 11 | private KMetaModel _p_metaModel; 12 | 13 | protected GenericModel(KMetaModel mm) { 14 | super(); 15 | this._p_metaModel = mm; 16 | } 17 | @Override 18 | public KMetaModel metaModel() { 19 | return _p_metaModel; 20 | } 21 | 22 | @Override 23 | protected KUniverse internalCreateUniverse(long universe) { 24 | return new GenericUniverse(universe, _manager); 25 | } 26 | 27 | @Override 28 | protected KObject internalCreateObject(long universe, long time, long uuid, KMetaClass clazz) { 29 | return new GenericObject(universe, time, uuid, clazz, _manager); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/meta/impl/GenericObject.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.meta.impl; 2 | 3 | import org.kevoree.modeling.abs.AbstractKObject; 4 | import org.kevoree.modeling.memory.manager.KMemoryManager; 5 | import org.kevoree.modeling.meta.KMetaClass; 6 | 7 | public class GenericObject extends AbstractKObject { 8 | 9 | public GenericObject(long p_universe, long p_time, long p_uuid, KMetaClass p_metaClass, KMemoryManager p_manager) { 10 | super(p_universe, p_time, p_uuid, p_metaClass, p_manager); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/meta/impl/GenericUniverse.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.meta.impl; 2 | 3 | import org.kevoree.modeling.KView; 4 | import org.kevoree.modeling.abs.AbstractKUniverse; 5 | import org.kevoree.modeling.memory.manager.KMemoryManager; 6 | 7 | public class GenericUniverse extends AbstractKUniverse { 8 | 9 | GenericUniverse(long p_key, KMemoryManager p_manager) { 10 | super(p_key, p_manager); 11 | } 12 | 13 | @Override 14 | protected KView internal_create(long timePoint) { 15 | return new GenericView(_universe,timePoint,_manager); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/meta/impl/GenericView.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.meta.impl; 2 | 3 | import org.kevoree.modeling.abs.AbstractKView; 4 | import org.kevoree.modeling.memory.manager.KMemoryManager; 5 | 6 | class GenericView extends AbstractKView { 7 | 8 | protected GenericView(long p_universe, long _time, KMemoryManager p_manager) { 9 | super(p_universe, _time, p_manager); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/meta/impl/MetaOperation.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.meta.impl; 2 | 3 | import org.kevoree.modeling.abs.KLazyResolver; 4 | import org.kevoree.modeling.meta.KMetaClass; 5 | import org.kevoree.modeling.meta.KMetaOperation; 6 | import org.kevoree.modeling.meta.MetaType; 7 | 8 | public class MetaOperation implements KMetaOperation { 9 | 10 | private String _name; 11 | 12 | private int _index; 13 | 14 | private KLazyResolver _lazyMetaClass; 15 | 16 | @Override 17 | public int index() { 18 | return _index; 19 | } 20 | 21 | @Override 22 | public String metaName() { 23 | return _name; 24 | } 25 | 26 | @Override 27 | public MetaType metaType() { 28 | return MetaType.OPERATION; 29 | } 30 | 31 | public MetaOperation(String p_name, int p_index, KLazyResolver p_lazyMetaClass) { 32 | this._name = p_name; 33 | this._index = p_index; 34 | this._lazyMetaClass = p_lazyMetaClass; 35 | } 36 | 37 | @Override 38 | public KMetaClass origin() { 39 | if(_lazyMetaClass!=null){ 40 | return (KMetaClass) _lazyMetaClass.meta(); 41 | } 42 | return null; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/operation/KOperation.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.operation; 2 | 3 | import org.kevoree.modeling.KCallback; 4 | import org.kevoree.modeling.KObject; 5 | 6 | public interface KOperation { 7 | 8 | void on(KObject source, Object[] params, KCallback result); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/operation/KOperationManager.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.operation; 2 | 3 | import org.kevoree.modeling.KObject; 4 | import org.kevoree.modeling.KCallback; 5 | import org.kevoree.modeling.meta.KMetaOperation; 6 | import org.kevoree.modeling.message.KMessage; 7 | 8 | public interface KOperationManager { 9 | 10 | void registerOperation(KMetaOperation operation, KOperation callback, KObject target); 11 | 12 | void call(KObject source, KMetaOperation operation, Object[] param, KCallback callback); 13 | 14 | void operationEventReceived(KMessage operationEvent); 15 | } 16 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/scheduler/KScheduler.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.scheduler; 2 | 3 | public interface KScheduler { 4 | 5 | void dispatch(Runnable runnable); 6 | 7 | void stop(); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/scheduler/impl/DirectScheduler.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.scheduler.impl; 2 | 3 | import org.kevoree.modeling.scheduler.KScheduler; 4 | 5 | public class DirectScheduler implements KScheduler { 6 | 7 | @Override 8 | public void dispatch(Runnable runnable) { 9 | runnable.run(); 10 | } 11 | 12 | @Override 13 | public void stop() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/scheduler/impl/ExecutorServiceScheduler.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.scheduler.impl; 2 | 3 | import org.kevoree.modeling.scheduler.KScheduler; 4 | 5 | import java.util.concurrent.ExecutorService; 6 | import java.util.concurrent.Executors; 7 | 8 | public class ExecutorServiceScheduler implements KScheduler { 9 | 10 | /** 11 | * @ignore ts 12 | */ 13 | private ExecutorService _service = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()); 14 | 15 | /** 16 | * @native ts 17 | * p_runnable.run(); 18 | */ 19 | @Override 20 | public void dispatch(Runnable p_runnable) { 21 | _service.submit(p_runnable); 22 | } 23 | 24 | /** 25 | * @native ts 26 | */ 27 | @Override 28 | public void stop() { 29 | _service.shutdown(); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/traversal/KTraversal.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.traversal; 2 | 3 | import org.kevoree.modeling.KObject; 4 | import org.kevoree.modeling.KCallback; 5 | import org.kevoree.modeling.meta.KMetaAttribute; 6 | import org.kevoree.modeling.meta.KMetaReference; 7 | 8 | public interface KTraversal { 9 | 10 | KTraversal traverse(KMetaReference metaReference); 11 | 12 | KTraversal traverseQuery(String metaReferenceQuery); 13 | 14 | KTraversal attributeQuery(String attributeQuery); 15 | 16 | KTraversal withAttribute(KMetaAttribute attribute, Object expectedValue); 17 | 18 | KTraversal withoutAttribute(KMetaAttribute attribute, Object expectedValue); 19 | 20 | KTraversal filter(KTraversalFilter filter); 21 | 22 | void then(KCallback cb); 23 | 24 | void map(KMetaAttribute attribute, KCallback cb); 25 | 26 | KTraversal collect(KMetaReference metaReference, KTraversalFilter continueCondition); 27 | 28 | //TODO add time traversal 29 | 30 | } 31 | 32 | 33 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/traversal/KTraversalAction.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.traversal; 2 | 3 | import org.kevoree.modeling.KObject; 4 | 5 | public interface KTraversalAction { 6 | 7 | void chain(KTraversalAction next); 8 | 9 | void execute(KObject[] inputs); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/traversal/KTraversalFilter.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.traversal; 2 | 3 | import org.kevoree.modeling.KObject; 4 | 5 | public interface KTraversalFilter { 6 | 7 | boolean filter(KObject obj); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/traversal/impl/actions/FilterAction.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.traversal.impl.actions; 2 | 3 | import org.kevoree.modeling.KObject; 4 | import org.kevoree.modeling.traversal.KTraversalAction; 5 | import org.kevoree.modeling.traversal.KTraversalFilter; 6 | 7 | public class FilterAction implements KTraversalAction { 8 | 9 | private KTraversalAction _next; 10 | 11 | private KTraversalFilter _filter; 12 | 13 | public FilterAction(KTraversalFilter p_filter) { 14 | this._filter = p_filter; 15 | } 16 | 17 | @Override 18 | public void chain(KTraversalAction p_next) { 19 | _next = p_next; 20 | } 21 | 22 | @Override 23 | public void execute(KObject[] p_inputs) { 24 | boolean[] selectedIndex = new boolean[p_inputs.length]; 25 | int selected = 0; 26 | for (int i = 0; i < p_inputs.length; i++) { 27 | try { 28 | if (_filter.filter(p_inputs[i])) { 29 | selectedIndex[i] = true; 30 | selected++; 31 | } 32 | } catch (Exception e) { 33 | e.printStackTrace(); 34 | } 35 | } 36 | KObject[] nextStepElement = new KObject[selected]; 37 | int inserted = 0; 38 | for (int i = 0; i < p_inputs.length; i++) { 39 | if (selectedIndex[i]) { 40 | nextStepElement[inserted] = p_inputs[i]; 41 | inserted++; 42 | } 43 | } 44 | _next.execute(nextStepElement); 45 | } 46 | 47 | } 48 | 49 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/traversal/impl/actions/FinalAction.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.traversal.impl.actions; 2 | 3 | import org.kevoree.modeling.KCallback; 4 | import org.kevoree.modeling.KObject; 5 | import org.kevoree.modeling.traversal.KTraversalAction; 6 | 7 | public class FinalAction implements KTraversalAction { 8 | 9 | private KCallback _finalCallback; 10 | 11 | public FinalAction(KCallback p_callback) { 12 | this._finalCallback = p_callback; 13 | } 14 | 15 | @Override 16 | public void chain(KTraversalAction next) { 17 | //terminal leaf action 18 | } 19 | 20 | @Override 21 | public void execute(KObject[] inputs) { 22 | _finalCallback.on(inputs); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/traversal/impl/actions/MapAction.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.traversal.impl.actions; 2 | 3 | import org.kevoree.modeling.KCallback; 4 | import org.kevoree.modeling.KObject; 5 | import org.kevoree.modeling.meta.KMetaAttribute; 6 | import org.kevoree.modeling.traversal.KTraversalAction; 7 | 8 | public class MapAction implements KTraversalAction { 9 | 10 | private KCallback _finalCallback; 11 | 12 | private KMetaAttribute _attribute; 13 | 14 | public MapAction(KMetaAttribute p_attribute, KCallback p_callback) { 15 | this._finalCallback = p_callback; 16 | this._attribute = p_attribute; 17 | } 18 | 19 | @Override 20 | public void chain(KTraversalAction next) { 21 | //terminal leaf action 22 | } 23 | 24 | @Override 25 | public void execute(KObject[] inputs) { 26 | Object[] selected = new Object[inputs.length]; 27 | int nbElem = 0; 28 | for (int i = 0; i < inputs.length; i++) { 29 | if (inputs[i] != null) { 30 | Object resolved = inputs[i].get(_attribute); 31 | if (resolved != null) { 32 | selected[i] = resolved; 33 | nbElem++; 34 | } 35 | } 36 | } 37 | //trim the array 38 | Object[] trimmed = new Object[nbElem]; 39 | int nbInserted = 0; 40 | for (int i = 0; i < inputs.length; i++) { 41 | if (selected[i] != null) { 42 | trimmed[nbInserted] = selected[i]; 43 | nbInserted++; 44 | } 45 | } 46 | _finalCallback.on(trimmed); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/traversal/impl/actions/RemoveDuplicateAction.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.traversal.impl.actions; 2 | 3 | import org.kevoree.modeling.KConfig; 4 | import org.kevoree.modeling.KObject; 5 | import org.kevoree.modeling.memory.struct.map.impl.ArrayLongMap; 6 | import org.kevoree.modeling.memory.struct.map.KLongMapCallBack; 7 | import org.kevoree.modeling.traversal.KTraversalAction; 8 | 9 | public class RemoveDuplicateAction implements KTraversalAction { 10 | 11 | private KTraversalAction _next; 12 | 13 | @Override 14 | public void chain(KTraversalAction p_next) { 15 | _next = p_next; 16 | } 17 | 18 | @Override 19 | public void execute(KObject[] p_inputs) { 20 | ArrayLongMap elems = new ArrayLongMap(p_inputs.length, KConfig.CACHE_LOAD_FACTOR); 21 | for (int i = 0; i < p_inputs.length; i++) { 22 | elems.put(p_inputs[i].uuid(), p_inputs[i]); 23 | } 24 | final KObject[] trimmed = new KObject[elems.size()]; 25 | final int[] nbInserted = {0}; 26 | elems.each(new KLongMapCallBack() { 27 | @Override 28 | public void on(long key, KObject value) { 29 | trimmed[nbInserted[0]] = value; 30 | nbInserted[0]++; 31 | } 32 | }); 33 | _next.execute(trimmed); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/traversal/impl/selector/QueryParam.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.traversal.impl.selector; 2 | 3 | public class QueryParam { 4 | 5 | private String _name; 6 | private String _value; 7 | private boolean _negative; 8 | 9 | public QueryParam(String p_name, String p_value, boolean p_negative) { 10 | this._name = p_name; 11 | this._value = p_value; 12 | this._negative = p_negative; 13 | } 14 | 15 | public String name() { 16 | return _name; 17 | } 18 | 19 | public String value() { 20 | return _value; 21 | } 22 | 23 | public boolean isNegative() { 24 | return _negative; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/traversal/impl/selector/Selector.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.traversal.impl.selector; 2 | 3 | import org.kevoree.modeling.KCallback; 4 | import org.kevoree.modeling.KObject; 5 | import org.kevoree.modeling.traversal.KTraversal; 6 | 7 | import java.util.List; 8 | 9 | public class Selector { 10 | 11 | public static void select(final KObject root, String query, final KCallback callback) { 12 | if (callback == null) { 13 | return; 14 | } 15 | KTraversal current = null; 16 | List extracted = Query.buildChain(query); 17 | if(extracted != null){ 18 | for (int i = 0; i < extracted.size(); i++) { 19 | if (current == null) { 20 | current = root.traversal().traverseQuery(extracted.get(i).relationName); 21 | } else { 22 | current = current.traverseQuery(extracted.get(i).relationName); 23 | } 24 | current = current.attributeQuery(extracted.get(i).params); 25 | } 26 | } 27 | if (current != null) { 28 | current.then(callback); 29 | } else { 30 | callback.on(new KObject[0]); 31 | } 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/traversal/visitor/KModelAttributeVisitor.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.traversal.visitor; 2 | 3 | import org.kevoree.modeling.meta.KMetaAttribute; 4 | 5 | public interface KModelAttributeVisitor { 6 | 7 | void visit(KMetaAttribute metaAttribute, Object value); 8 | 9 | } -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/traversal/visitor/KModelVisitor.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.traversal.visitor; 2 | 3 | import org.kevoree.modeling.KObject; 4 | 5 | public interface KModelVisitor { 6 | 7 | KVisitResult visit(KObject elem); 8 | 9 | } -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/traversal/visitor/KVisitResult.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.traversal.visitor; 2 | 3 | public enum KVisitResult { 4 | CONTINUE, 5 | SKIP, 6 | STOP 7 | } -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/main/java/org/kevoree/modeling/util/Checker.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.util; 2 | 3 | public class Checker { 4 | 5 | /** 6 | * @native ts 7 | * return param != undefined && param != null; 8 | */ 9 | public static boolean isDefined(Object param){ 10 | return param != null; 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/UtilityTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling; 2 | 3 | import org.junit.Assert; 4 | import org.junit.Test; 5 | import org.kevoree.modeling.cloudmodel.CloudModel; 6 | import org.kevoree.modeling.cloudmodel.CloudUniverse; 7 | import org.kevoree.modeling.cloudmodel.CloudView; 8 | import org.kevoree.modeling.cloudmodel.Node; 9 | 10 | /** 11 | * Created by duke on 15/01/15. 12 | */ 13 | public class UtilityTest { 14 | 15 | @Test 16 | public void utilityTest() { 17 | 18 | final CloudModel model = new CloudModel(); 19 | model.connect(new KCallback() { 20 | @Override 21 | public void on(Throwable throwable) { 22 | CloudUniverse universe = model.newUniverse(); 23 | CloudView factory = universe.time(0l); 24 | Node n = factory.createNode(); 25 | n.setName("n"); 26 | factory.setRoot(n,null); 27 | Node n2 = factory.createNode(); 28 | n2.setName("n2"); 29 | n.addChildren(n2); 30 | Node n3 = factory.createNode(); 31 | n3.setName("n3"); 32 | Assert.assertTrue(n.referencesWith(n2).length > 0); 33 | Assert.assertTrue(n2.referencesWith(n).length == 1); 34 | Assert.assertTrue(n.referencesWith(n3).length == 0); 35 | Assert.assertTrue(n3.referencesWith(n).length == 0); 36 | } 37 | }); 38 | 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/cdn/BaseKContentDeliveryDriverTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.cdn; 2 | 3 | public class BaseKContentDeliveryDriverTest { 4 | // TODO 5 | } 6 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/cloudmodel/CloudUniverse.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.cloudmodel; 2 | 3 | import org.kevoree.modeling.abs.AbstractKUniverse; 4 | import org.kevoree.modeling.memory.manager.KMemoryManager; 5 | import org.kevoree.modeling.cloudmodel.impl.CloudViewImpl; 6 | 7 | /** 8 | * Created by duke on 10/13/14. 9 | */ 10 | public class CloudUniverse extends AbstractKUniverse { 11 | 12 | protected CloudUniverse(long p_universe, KMemoryManager p_manager) { 13 | super(p_universe, p_manager); 14 | } 15 | 16 | @Override 17 | protected CloudView internal_create(long timePoint) { 18 | return new CloudViewImpl(_universe, timePoint, _manager); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/cloudmodel/CloudView.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.cloudmodel; 2 | 3 | import org.kevoree.modeling.KView; 4 | 5 | /** 6 | * Created by duke on 10/9/14. 7 | */ 8 | public interface CloudView extends KView { 9 | 10 | Node createNode(); 11 | 12 | Element createElement(); 13 | 14 | } 15 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/cloudmodel/Element.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.cloudmodel; 2 | 3 | import org.kevoree.modeling.KObject; 4 | 5 | /** 6 | * Created by duke on 10/9/14. 7 | */ 8 | public interface Element extends KObject { 9 | 10 | String getName(); 11 | 12 | Element setName(String name); 13 | 14 | Double getValue(); 15 | 16 | Element setValue(Double name); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/cloudmodel/Node.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.cloudmodel; 2 | 3 | import org.kevoree.modeling.KCallback; 4 | import org.kevoree.modeling.KObject; 5 | 6 | /** 7 | * Created by duke on 10/9/14. 8 | */ 9 | public interface Node extends KObject { 10 | 11 | String getName(); 12 | 13 | Node setName(String name); 14 | 15 | String getValue(); 16 | 17 | Node setValue(String name); 18 | 19 | Node addChildren(Node obj); 20 | 21 | Node removeChildren(Node obj); 22 | 23 | void getChildren(KCallback callback); 24 | 25 | Node setElement(Element obj); 26 | 27 | void getElement(KCallback obj); 28 | 29 | void trigger(String param, KCallback callback); 30 | 31 | } 32 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/cloudmodel/impl/CloudViewImpl.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.cloudmodel.impl; 2 | 3 | import org.kevoree.modeling.abs.AbstractKView; 4 | import org.kevoree.modeling.memory.manager.KMemoryManager; 5 | import org.kevoree.modeling.cloudmodel.CloudView; 6 | import org.kevoree.modeling.cloudmodel.Element; 7 | import org.kevoree.modeling.cloudmodel.Node; 8 | import org.kevoree.modeling.cloudmodel.meta.MetaElement; 9 | import org.kevoree.modeling.cloudmodel.meta.MetaNode; 10 | 11 | /** 12 | * Created by duke on 10/9/14. 13 | */ 14 | public class CloudViewImpl extends AbstractKView implements CloudView { 15 | 16 | public CloudViewImpl(long p_universe, long _time, KMemoryManager p_manager) { 17 | super(p_universe, _time, p_manager); 18 | } 19 | 20 | @Override 21 | public Node createNode() { 22 | return (Node) this.create(MetaNode.getInstance()); 23 | } 24 | 25 | @Override 26 | public Element createElement() { 27 | return (Element) this.create(MetaElement.getInstance()); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/cloudmodel/impl/ElementImpl.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.cloudmodel.impl; 2 | 3 | import org.kevoree.modeling.abs.AbstractKObject; 4 | import org.kevoree.modeling.memory.manager.KMemoryManager; 5 | import org.kevoree.modeling.meta.KMetaClass; 6 | import org.kevoree.modeling.cloudmodel.Element; 7 | import org.kevoree.modeling.cloudmodel.meta.MetaElement; 8 | 9 | /** 10 | * Created by duke on 10/13/14. 11 | */ 12 | public class ElementImpl extends AbstractKObject implements Element { 13 | 14 | public ElementImpl(long p_universe, long p_time, long p_uuid, KMetaClass p_metaClass, KMemoryManager p_manager) { 15 | super(p_universe, p_time, p_uuid, p_metaClass, p_manager); 16 | } 17 | 18 | @Override 19 | public String getName() { 20 | return (String) this.get(MetaElement.ATT_NAME); 21 | } 22 | 23 | @Override 24 | public Element setName(String p_name) { 25 | this.set(MetaElement.ATT_NAME, p_name); 26 | return this; 27 | } 28 | 29 | @Override 30 | public Double getValue() { 31 | return (Double) this.get(MetaElement.ATT_VALUE); 32 | } 33 | 34 | @Override 35 | public Element setValue(Double p_name) { 36 | this.set(MetaElement.ATT_VALUE, p_name); 37 | return this; 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/defer/BaseKDeferTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.defer; 2 | 3 | public class BaseKDeferTest { 4 | } 5 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/extrapolation/StatClass.java.deactivated: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.microframework.test.polynomial; 2 | public class StatClass { 3 | public double maxErr; 4 | public double avgError; 5 | public Long time; 6 | public double value; 7 | public double calculatedValue; 8 | public int samples; 9 | public int degree; 10 | public long polynoms; 11 | public long storage; 12 | public double avgDegree; 13 | public double diskCompression; 14 | public double timeCompression; 15 | } 16 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/format/xmi/XMISaveTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.format.xmi; 2 | 3 | import org.junit.Test; 4 | import org.kevoree.modeling.KCallback; 5 | import org.kevoree.modeling.KObject; 6 | import org.kevoree.modeling.cloudmodel.CloudUniverse; 7 | import org.kevoree.modeling.cloudmodel.CloudModel; 8 | import org.kevoree.modeling.cloudmodel.CloudView; 9 | import org.kevoree.modeling.cloudmodel.Node; 10 | import org.kevoree.modeling.cloudmodel.Element; 11 | 12 | /** 13 | * Created by gregory.nain on 16/10/2014. 14 | */ 15 | public class XMISaveTest { 16 | 17 | @Test 18 | public void xmiSaveTest() throws InterruptedException { 19 | CloudModel universe = new CloudModel(); 20 | universe.connect(null); 21 | CloudUniverse dimension0 = universe.newUniverse(); 22 | final CloudView t0 = dimension0.time(0l); 23 | Node nodeT0 = t0.createNode(); 24 | nodeT0.setName("node0"); 25 | t0.setRoot(nodeT0,null); 26 | Element child0 = t0.createElement(); 27 | nodeT0.setElement(child0); 28 | Node nodeT1 = t0.createNode(); 29 | nodeT1.setName("n1"); 30 | nodeT0.addChildren(nodeT1); 31 | t0.lookup(nodeT0.uuid(),new KCallback() { 32 | @Override 33 | public void on(KObject root) { 34 | t0.xmi().save(root,new KCallback() { 35 | @Override 36 | public void on(String result) { 37 | 38 | } 39 | }); 40 | 41 | } 42 | }); 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/infer/BaseKInferTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.infer; 2 | 3 | /** 4 | * Created by thomas on 05/06/15. 5 | */ 6 | public class BaseKInferTest { 7 | } 8 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/memory/cache/impl/HashMemoryCacheTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.cache.impl; 2 | 3 | import org.kevoree.modeling.memory.cache.BaseKCacheTest; 4 | import org.kevoree.modeling.memory.cache.KCache; 5 | 6 | /** 7 | * Created by duke on 20/02/15. 8 | */ 9 | public class HashMemoryCacheTest extends BaseKCacheTest { 10 | 11 | @Override 12 | public KCache createKCache() { 13 | return new HashMemoryCache(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/memory/cache/impl/KContentKeyTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.cache.impl; 2 | 3 | import org.junit.Assert; 4 | import org.junit.Test; 5 | import org.kevoree.modeling.KContentKey; 6 | 7 | /** 8 | * Created by duke on 20/02/15. 9 | */ 10 | public class KContentKeyTest { 11 | 12 | @Test 13 | public void test() { 14 | String[] testKeys = new String[5]; 15 | testKeys[0] = "1//"; 16 | testKeys[1] = "//4"; 17 | testKeys[2] = "//4"; 18 | testKeys[3] = "2/3/4"; 19 | testKeys[4] = "222/333/444"; 20 | for (int i = 0; i < testKeys.length; i++) { 21 | Assert.assertEquals(testKeys[i], KContentKey.create(testKeys[i]).toString()); 22 | } 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/memory/manager/BaseKMemoryManagerTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.manager; 2 | 3 | public class BaseKMemoryManagerTest { 4 | // TODO 5 | } 6 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/memory/struct/map/BaseKIntHashMapTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.map; 2 | 3 | public class BaseKIntHashMapTest { 4 | 5 | //TODO 6 | 7 | } 8 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/memory/struct/map/BaseKLongHashMapTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.map; 2 | 3 | import org.junit.Assert; 4 | import org.junit.Test; 5 | import org.kevoree.modeling.KConfig; 6 | 7 | public abstract class BaseKLongHashMapTest { 8 | private static final int SIZE = 100; 9 | 10 | public abstract KLongMap createKLongHashMap(int p_initalCapacity, float p_loadFactor); 11 | 12 | @Test 13 | public void test() { 14 | 15 | KLongMap map = createKLongHashMap(KConfig.CACHE_INIT_SIZE, KConfig.CACHE_LOAD_FACTOR); 16 | for (long i = 0; i < SIZE; i++) { 17 | map.put(i, "" + i); 18 | } 19 | Assert.assertEquals(map.size(), SIZE); 20 | for (long i = 0; i < SIZE; i++) { 21 | Assert.assertEquals(i, Long.parseLong(map.get(i))); 22 | } 23 | final int[] nbCall = {0}; 24 | map.each(new KLongMapCallBack() { 25 | @Override 26 | public void on(long key, String s) { 27 | nbCall[0]++; 28 | Assert.assertEquals(key, Long.parseLong(s)); 29 | } 30 | }); 31 | Assert.assertEquals(nbCall[0], SIZE); 32 | map.clear(); 33 | Assert.assertEquals(map.size(), 0); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/memory/struct/map/BaseKLongLongHashMapTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.map; 2 | 3 | import org.junit.Assert; 4 | import org.junit.Test; 5 | import org.kevoree.modeling.KConfig; 6 | 7 | public abstract class BaseKLongLongHashMapTest { 8 | private static final int SIZE = 100; 9 | 10 | public abstract KLongLongMap createKLongLongHashMap(int p_initalCapacity, float p_loadFactor); 11 | 12 | @Test 13 | public void test() { 14 | 15 | KLongLongMap map = createKLongLongHashMap(KConfig.CACHE_INIT_SIZE, KConfig.CACHE_LOAD_FACTOR); 16 | for (long i = 0; i < SIZE; i++) { 17 | map.put(i, i); 18 | } 19 | Assert.assertEquals(map.size(), SIZE); 20 | for (long i = 0; i < SIZE; i++) { 21 | Assert.assertEquals(i, map.get(i)); 22 | } 23 | final int[] nbCall = {0}; 24 | map.each(new KLongLongMapCallBack() { 25 | @Override 26 | public void on(long key, long s) { 27 | nbCall[0]++; 28 | Assert.assertEquals(key, s); 29 | } 30 | }); 31 | Assert.assertEquals(nbCall[0], SIZE); 32 | map.clear(); 33 | Assert.assertEquals(map.size(), 0); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/memory/struct/map/RandomString.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.map; 2 | 3 | import java.util.Random; 4 | 5 | /** 6 | * Created by duke on 09/04/15. 7 | */ 8 | public class RandomString { 9 | 10 | private String symbols = "0123456789abcdefghijklmnopqrstuvwxyz"; 11 | 12 | private Random random = new Random(); 13 | 14 | private int _length; 15 | 16 | public RandomString(int p_length) { 17 | this._length = p_length; 18 | } 19 | 20 | public String nextString() { 21 | StringBuilder buffer = new StringBuilder(); 22 | for (int idx = 0; idx < _length; ++idx){ 23 | buffer.append(symbols.charAt(random.nextInt(symbols.length()))); 24 | } 25 | return buffer.toString(); 26 | } 27 | } -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/memory/struct/map/impl/ArrayLongHashMapTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.map.impl; 2 | 3 | import org.kevoree.modeling.memory.struct.map.BaseKLongHashMapTest; 4 | import org.kevoree.modeling.memory.struct.map.KLongMap; 5 | 6 | /** 7 | * Created by duke on 03/03/15. 8 | */ 9 | public class ArrayLongHashMapTest extends BaseKLongHashMapTest { 10 | 11 | @Override 12 | public KLongMap createKLongHashMap(int p_initalCapacity, float p_loadFactor) { 13 | return new ArrayLongMap(p_initalCapacity, p_loadFactor); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/memory/struct/map/impl/ArrayLongLongHashMapTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.map.impl; 2 | 3 | import org.kevoree.modeling.memory.struct.map.BaseKLongLongHashMapTest; 4 | import org.kevoree.modeling.memory.struct.map.KLongLongMap; 5 | 6 | public class ArrayLongLongHashMapTest extends BaseKLongLongHashMapTest { 7 | 8 | @Override 9 | public KLongLongMap createKLongLongHashMap(int p_initalCapacity, float p_loadFactor) { 10 | return new ArrayLongLongMap(p_initalCapacity, p_loadFactor); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/memory/struct/map/impl/ArrayStringHashMapTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.map.impl; 2 | 3 | import org.kevoree.modeling.memory.struct.map.BaseKStringHashMapTest; 4 | import org.kevoree.modeling.memory.struct.map.KStringMap; 5 | 6 | /** 7 | * Created by duke on 09/04/15. 8 | */ 9 | public class ArrayStringHashMapTest extends BaseKStringHashMapTest { 10 | 11 | @Override 12 | public KStringMap createKStringHashMap(int p_initalCapacity, float p_loadFactor) { 13 | return new ArrayStringMap(p_initalCapacity, p_loadFactor); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/memory/struct/map/impl/ArrayUniverseOrderMapTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.map.impl; 2 | 3 | import org.kevoree.modeling.memory.struct.map.BaseKUniverseOrderMapTest; 4 | import org.kevoree.modeling.memory.struct.map.KUniverseOrderMap; 5 | 6 | public class ArrayUniverseOrderMapTest extends BaseKUniverseOrderMapTest { 7 | 8 | @Override 9 | public KUniverseOrderMap createKUniverseOrderMap(int p_initalCapacity, float p_loadFactor, String p_className) { 10 | return new ArrayUniverseOrderMap(p_initalCapacity, p_loadFactor, p_className); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/memory/struct/segment/impl/HeapMemorySegmentTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.segment.impl; 2 | 3 | import org.kevoree.modeling.memory.struct.segment.BaseKMemorySegmentTest; 4 | import org.kevoree.modeling.memory.struct.segment.KMemorySegment; 5 | 6 | public class HeapMemorySegmentTest extends BaseKMemorySegmentTest { 7 | 8 | @Override 9 | public KMemorySegment createKMemorySegment() { 10 | return new HeapMemorySegment(); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/memory/struct/tree/BaseKTreeTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.tree; 2 | 3 | public class BaseKTreeTest { 4 | // TODO 5 | } 6 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/memory/struct/tree/BaseKTreeWalkerTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.tree; 2 | 3 | public class BaseKTreeWalkerTest { 4 | // TODO 5 | } 6 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/memory/struct/tree/MutableInteger.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.tree; 2 | 3 | /** 4 | * Created by duke on 26/05/15. 5 | */ 6 | public class MutableInteger { 7 | 8 | private int v = -1; 9 | 10 | public int get() { 11 | return v; 12 | } 13 | 14 | public void set(int newV) { 15 | v = newV; 16 | } 17 | 18 | public void increment(){ 19 | v++; 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/memory/struct/tree/impl/LongLongTreeTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.tree.impl; 2 | 3 | import org.kevoree.modeling.memory.struct.tree.BaseKLongLongTreeTest; 4 | import org.kevoree.modeling.memory.struct.tree.KLongLongTree; 5 | import org.kevoree.modeling.memory.struct.tree.KLongTree; 6 | 7 | /** 8 | * Created by duke on 01/12/14. 9 | */ 10 | public class LongLongTreeTest extends BaseKLongLongTreeTest { 11 | 12 | 13 | @Override 14 | public KLongTree createKLongTree() { 15 | return new LongTree(); 16 | } 17 | 18 | @Override 19 | public KLongLongTree createKLongLongTree() { 20 | return new LongLongTree(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/memory/struct/tree/impl/LongTreeTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.memory.struct.tree.impl; 2 | 3 | 4 | import org.kevoree.modeling.memory.struct.tree.BaseKLongTreeTest; 5 | import org.kevoree.modeling.memory.struct.tree.KLongTree; 6 | 7 | public class LongTreeTest extends BaseKLongTreeTest { 8 | 9 | @Override 10 | public KLongTree createLongTree() { 11 | return new LongTree(); 12 | } 13 | } 14 | 15 | 16 | -------------------------------------------------------------------------------- /org.kevoree.modeling.microframework/src/test/java/org/kevoree/modeling/scheduler/impl/SchedulerTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.scheduler.impl; 2 | 3 | import org.kevoree.modeling.scheduler.BaseKSchedulerTest; 4 | import org.kevoree.modeling.scheduler.KScheduler; 5 | 6 | /** 7 | * Created by duke on 23/01/15. 8 | */ 9 | public class SchedulerTest extends BaseKSchedulerTest { 10 | 11 | 12 | @Override 13 | public KScheduler createScheduler() { 14 | return new ExecutorServiceScheduler(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /releaseScript.sh: -------------------------------------------------------------------------------- 1 | # 2 | # Licensed under the GNU LESSER GENERAL PUBLIC LICENSE, Version 3, 29 June 2007; 3 | # you may not use this file except in compliance with the License. 4 | # You may obtain a copy of the License at 5 | # 6 | # http://www.gnu.org/licenses/lgpl-3.0.txt 7 | # 8 | # Unless required by applicable law or agreed to in writing, software 9 | # distributed under the License is distributed on an "AS IS" BASIS, 10 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | # See the License for the specific language governing permissions and 12 | # limitations under the License. 13 | # 14 | # Authors: 15 | # Fouquet Francois 16 | # Nain Gregory 17 | # 18 | 19 | export JAVA_HOME=$(/usr/libexec/java_home) 20 | mvn -P release release:clean 21 | mvn -P release release:prepare 22 | mvn -P release release:perform -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.cloud/metamodel/Cloud.mm: -------------------------------------------------------------------------------- 1 | class cloud.Node { 2 | @id 3 | name : String 4 | value : String 5 | children : cloud.Node[0,*] 6 | element : cloud.Element 7 | } 8 | 9 | class cloud.Element { 10 | @id 11 | name : String 12 | 13 | value : String 14 | 15 | @precision(2.2) 16 | load : Continuous 17 | 18 | func trigger(param : String, loop : Int) : String 19 | } 20 | 21 | -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.cloud/src/main/resources/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 32 | 33 | -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.cloud/src/test/java/org/kevoree/cloud/test/CloudOperationTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.cloud.test; 2 | 3 | import cloud.CloudModel; 4 | import cloud.CloudUniverse; 5 | import cloud.CloudView; 6 | import cloud.Element; 7 | import cloud.meta.MetaElement; 8 | import org.junit.Test; 9 | import org.kevoree.modeling.KCallback; 10 | import org.kevoree.modeling.KObject; 11 | import org.kevoree.modeling.operation.KOperation; 12 | 13 | import java.util.Arrays; 14 | 15 | import static org.junit.Assert.assertEquals; 16 | 17 | /** 18 | * Created by gregory.nain on 27/11/14. 19 | */ 20 | public class CloudOperationTest { 21 | 22 | @Test 23 | public void operationTest() { 24 | CloudModel model = new CloudModel(); 25 | model.connect(null); 26 | CloudUniverse universe = model.newUniverse(); 27 | CloudView view = universe.time(0L); 28 | model.setOperation(MetaElement.OP_TRIGGER, new KOperation() { 29 | public void on(KObject source, Object[] params, KCallback result) { 30 | result.on("Hey. I received Parameter:" + Arrays.toString(params) + " on element:(" + source.universe() + "," + source.now() + "," + source.uuid() + ")"); 31 | } 32 | }); 33 | 34 | Element elem = view.createElement(); 35 | elem.trigger("StringParam", 100, new KCallback() { 36 | @Override 37 | public void on(String s) { 38 | System.out.println("Operation execution result : " + s); 39 | assertEquals("Hey. I received Parameter:[StringParam, 100] on element:(1,0,1)", s); 40 | } 41 | }); 42 | } 43 | 44 | 45 | public static void main(String[] args) { 46 | new CloudOperationTest().operationTest(); 47 | } 48 | 49 | } 50 | -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.cloud/src/test/java/org/kevoree/cloud/test/SerializerTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.cloud.test; 2 | 3 | import cloud.*; 4 | import org.junit.Test; 5 | import java.util.concurrent.Semaphore; 6 | 7 | 8 | /** 9 | * Created by gregory.nain on 16/10/2014. 10 | */ 11 | public class SerializerTest { 12 | 13 | @Test 14 | public void serializeTest() throws InterruptedException { 15 | try { 16 | Semaphore s = new Semaphore(0); 17 | 18 | CloudModel universe = new CloudModel(); 19 | universe.connect(null); 20 | CloudUniverse dimension0 = universe.newUniverse(); 21 | CloudView t0 = dimension0.time(0l); 22 | Node nodeT0 = t0.createNode(); 23 | nodeT0.setName("node0"); 24 | t0.setRoot(nodeT0,null); 25 | 26 | Element child0 = t0.createElement(); 27 | nodeT0.setElement(child0); 28 | 29 | Node nodeT1 = t0.createNode(); 30 | nodeT1.setName("n1"); 31 | nodeT0.addChildren(nodeT1); 32 | 33 | 34 | t0.lookup(nodeT0.uuid(),(root) -> { 35 | t0.xmi().save(root,(result) -> { 36 | s.release(); 37 | }); 38 | }); 39 | s.acquire(); 40 | } catch (InterruptedException e) { 41 | e.printStackTrace(); 42 | } 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.datastore/metamodel/Geometry.mm: -------------------------------------------------------------------------------- 1 | class geometry.Library { 2 | @contained 3 | shapes : geometry.Shape[0,*] 4 | 5 | func addShape(shapeName : String) 6 | } 7 | 8 | class geometry.Shape { 9 | @id name : String 10 | color : String 11 | } 12 | -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.datastore/src/main/java/org/kevoree/modeling/test/datastore/MainClientTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.test.datastore; 2 | 3 | import geometry.GeometryModel; 4 | import org.kevoree.modeling.api.KEventListener; 5 | import org.kevoree.modeling.api.KObject; 6 | import org.kevoree.modeling.api.meta.Meta; 7 | import org.kevoree.modeling.databases.websocket.WebSocketWrapper; 8 | 9 | import java.util.Arrays; 10 | import java.util.concurrent.Semaphore; 11 | 12 | /** 13 | * Created by gregory.nain on 10/11/14. 14 | */ 15 | public class MainClientTest { 16 | 17 | 18 | public static void main(String[] args) { 19 | 20 | Semaphore s = new Semaphore(0); 21 | 22 | GeometryModel geoModel = new GeometryModel(); 23 | geoModel.setContentDeliveryDriver(new WebSocketWrapper(geoModel.manager().cdn(), 23665)); 24 | 25 | 26 | Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() { 27 | @Override 28 | public void run() { 29 | } 30 | })); 31 | 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.datastore/src/main/java/org/kevoree/modeling/test/datastore/Utils.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.modeling.test.datastore; 2 | 3 | import org.kevoree.modeling.KCallback; 4 | 5 | /** 6 | * Created by gregory.nain on 10/11/14. 7 | */ 8 | public class Utils { 9 | 10 | public static KCallback DefaultPrintStackTraceCallback = err->{ 11 | if(err != null) { 12 | err.printStackTrace(); 13 | } 14 | }; 15 | 16 | 17 | } 18 | -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.diamond/Diamond.mm: -------------------------------------------------------------------------------- 1 | class org.kevoree.diamond.A { 2 | att_a1 : String 3 | att_a2 : String 4 | ref_a1 : org.kevoree.diamond.A 5 | ref_a2 : org.kevoree.diamond.A 6 | } 7 | 8 | class org.kevoree.diamond.B : org.kevoree.diamond.A { 9 | att_b1 : String 10 | att_b2 : String 11 | ref_b1 : org.kevoree.diamond.A 12 | ref_b2 : org.kevoree.diamond.A 13 | } 14 | 15 | class org.kevoree.diamond.CL : org.kevoree.diamond.B{ 16 | ref_cl1 : org.kevoree.diamond.A 17 | } 18 | 19 | class org.kevoree.diamond.CR : org.kevoree.diamond.B{ 20 | att_cr1 : String 21 | att_cr2 : String 22 | att_cr3 : String 23 | } 24 | 25 | class org.kevoree.diamond.CRA : org.kevoree.diamond.CR { 26 | ref_cra1 : org.kevoree.diamond.A 27 | } 28 | 29 | class org.kevoree.diamond.D : org.kevoree.diamond.CL, org.kevoree.diamond.CRA { 30 | att_d1 : String 31 | att_d2 : String 32 | ref_d1 : org.kevoree.diamond.A 33 | } 34 | 35 | class org.kevoree.diamond.E : org.kevoree.diamond.D { 36 | att_e1 : String 37 | att_e2 : String 38 | ref_e1 : org.kevoree.diamond.A 39 | } -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.diamond/src/main/resources/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 32 | 33 | -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.diamond/src/test/java/DiamondTest.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by gregory.nain on 05/12/14. 3 | */ 4 | public class DiamondTest { 5 | } 6 | -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.fsm/metamodel/FSM.mm: -------------------------------------------------------------------------------- 1 | 2 | class fsmsample.FSM { 3 | @id 4 | name : String 5 | @contained 6 | ownedState : fsmsample.State[0,*] 7 | initialState : fsmsample.State 8 | finalState : fsmsample.State 9 | currentState : fsmsample.State 10 | } 11 | 12 | class fsmsample.State { 13 | @id 14 | name : String 15 | owningFSM : fsmsample.FSM 16 | @contained 17 | outgoingTransition : fsmsample.Transition[0,*] 18 | incomingTransition : fsmsample.Transition[0,*] 19 | } 20 | 21 | class fsmsample.Transition { 22 | @id 23 | name : String 24 | input : String 25 | output : String 26 | source : fsmsample.State 27 | target : fsmsample.State 28 | @contained 29 | action : fsmsample.Action 30 | } 31 | 32 | class fsmsample.Action { 33 | @id 34 | name : String 35 | 36 | } 37 | -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.kevoree/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | org.kevoree.modeling.test.root 7 | org.kevoree.modeling.test 8 | 1.0.0-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | org.kevoree.modeling.test.kevoree 13 | Kevoree :: Modeling :: Test :: Kevoree 14 | 15 | 16 | 17 | org.kevoree.modeling 18 | org.kevoree.modeling.microframework 19 | ${kmf.version} 20 | 21 | 22 | 23 | 24 | 25 | target/generated-sources/kmf 26 | 27 | 28 | org.kevoree.modeling 29 | org.kevoree.modeling.generator.mavenplugin 30 | ${kmf.version} 31 | 32 | 33 | ModelGen 34 | generate-sources 35 | 36 | generate 37 | 38 | 39 | org.kevoree.mm 40 | true 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.kevoree/src/main/resources/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 32 | 33 | -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.kevoree/src/test/java/org/kevoree/test/SimpleTest.java: -------------------------------------------------------------------------------- 1 | package org.kevoree.test; 2 | 3 | import org.KevoreeModel; 4 | import org.junit.Test; 5 | import org.kevoree.ContainerNode; 6 | import org.kevoree.ContainerRoot; 7 | 8 | /** 9 | * Created by duke on 14/01/15. 10 | */ 11 | public class SimpleTest { 12 | 13 | @Test 14 | public void helloTest() { 15 | 16 | 17 | KevoreeModel model = new KevoreeModel(); 18 | model.connect(); 19 | ContainerRoot root = model.universe(0).time(0).createContainerRoot(); 20 | model.universe(0).time(0).setRoot(root); 21 | 22 | ContainerNode node = model.universe(0).time(0).createContainerNode(); 23 | node.setName("node0"); 24 | root.addNodes(node); 25 | 26 | model.save(); 27 | 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.opposite/metamodel/opposite.mm: -------------------------------------------------------------------------------- 1 | 2 | class kmf.opposite.test.Container { 3 | @contained 4 | bees : kmf.opposite.test.B[0,*] 5 | @contained 6 | aees : kmf.opposite.test.A[0,*] 7 | @contained 8 | cees : kmf.opposite.test.C[0,*] 9 | } 10 | 11 | class kmf.opposite.test.C { 12 | @contained 13 | bees : kmf.opposite.test.B[0,*] 14 | } 15 | 16 | class kmf.opposite.test.A { 17 | singleRef : kmf.opposite.test.B 18 | multiRef : kmf.opposite.test.B[0,*] 19 | singleA_singleB : kmf.opposite.test.B oppositeOf singleA_singleB 20 | singleA_multiB : kmf.opposite.test.B oppositeOf singleA_multiB 21 | multiA_singleB : kmf.opposite.test.B[0,*] oppositeOf multiA_singleB 22 | multiA_multiB : kmf.opposite.test.B[0,*] oppositeOf multiA_multiB 23 | oppositeSimpleA_oppositeSimpleB : kmf.opposite.test.B[0,*] oppositeOf oppositeSimpleA_oppositeSimpleB 24 | } 25 | 26 | class kmf.opposite.test.B { 27 | @contained 28 | singleRef : kmf.opposite.test.A 29 | @contained 30 | multiRef : kmf.opposite.test.A[0,*] 31 | @contained 32 | singleA_singleB : kmf.opposite.test.A oppositeOf singleA_singleB 33 | @contained 34 | singleA_multiB : kmf.opposite.test.A[0,*] oppositeOf singleA_multiB 35 | @contained 36 | multiA_singleB : kmf.opposite.test.A oppositeOf multiA_singleB 37 | @contained 38 | multiA_multiB : kmf.opposite.test.A[0,*] oppositeOf multiA_multiB 39 | 40 | oppositeSimpleA_oppositeSimpleB : kmf.opposite.test.A[0,*] 41 | } 42 | -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.opposite/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 4.0.0 5 | 6 | 7 | org.kevoree.modeling.test 8 | org.kevoree.modeling.test.root 9 | 1.0.0-SNAPSHOT 10 | ../pom.xml 11 | 12 | org.kevoree.modeling.test.opposite 13 | jar 14 | Kevoree :: Modeling :: Test :: Opposite 15 | 16 | 17 | target/generated-sources/kmf 18 | 19 | 20 | org.kevoree.modeling 21 | org.kevoree.modeling.generator.mavenplugin 22 | ${kmf.version} 23 | 24 | 25 | ModelGen 26 | generate-sources 27 | 28 | generate 29 | 30 | 31 | kmf.opposite.test.Opposite 32 | metamodel/opposite.mm 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.polymer/TimeMachine.mm: -------------------------------------------------------------------------------- 1 | //KMF_VERSION=4.3.1 2 | //VERSION=1.0.0-SNAPSHOT 3 | class org.kevoree.modeling.test.Collection { 4 | @contained 5 | content : org.kevoree.modeling.test.Element[0,*] 6 | } 7 | 8 | 9 | class org.kevoree.modeling.test.Element { 10 | @id 11 | id : String 12 | value : String 13 | @contained 14 | children : org.kevoree.modeling.test.Element[0,*] 15 | } 16 | -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.polymer/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | org.kevoree.modeling.test.root 7 | org.kevoree.modeling.test 8 | 1.0.0-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | org.kevoree.modeling.test.polymer 13 | Kevoree :: Modeling :: Test :: Polymer 14 | 15 | 16 | target/generated-sources/kmf 17 | 18 | 19 | org.kevoree.modeling 20 | org.kevoree.modeling.generator.mavenplugin 21 | ${kmf.version} 22 | 23 | 24 | ModelGen 25 | generate-sources 26 | 27 | generate 28 | 29 | 30 | org.kevoree.modeling.test.TimeMachine 31 | TimeMachine.mm 32 | true 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.polymer/src/main/resources/bower_components/core-component-page/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-component-page", 3 | "private": true, 4 | "dependencies": { 5 | "webcomponentsjs": "Polymer/webcomponentsjs#^0.5.0", 6 | "polymer": "Polymer/polymer#^0.5.0" 7 | }, 8 | "version": "0.5.1", 9 | "homepage": "https://github.com/Polymer/core-component-page", 10 | "_release": "0.5.1", 11 | "_resolution": { 12 | "type": "version", 13 | "tag": "0.5.1", 14 | "commit": "ef1f86e659fd7498755e027d1561acc963d67807" 15 | }, 16 | "_source": "git://github.com/Polymer/core-component-page.git", 17 | "_target": "^0.5.0", 18 | "_originalSource": "Polymer/core-component-page" 19 | } -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.polymer/src/main/resources/bower_components/core-component-page/README.md: -------------------------------------------------------------------------------- 1 | core-component-page 2 | =================== 3 | 4 | See the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-component-page) for more information. 5 | 6 | Note: this is the vulcanized version of [`core-component-page-dev`](https://github.com/Polymer/core-component-page-dev) (the source). 7 | -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.polymer/src/main/resources/bower_components/core-component-page/bowager-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dukeboard/kevoree-modeling-framework/66a89dcde4c857042378e664dfc967c149b03326/test/org.kevoree.modeling.test.polymer/src/main/resources/bower_components/core-component-page/bowager-logo.png -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.polymer/src/main/resources/bower_components/core-component-page/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-component-page", 3 | "private": true, 4 | "dependencies": { 5 | "webcomponentsjs": "Polymer/webcomponentsjs#^0.5.0", 6 | "polymer": "Polymer/polymer#^0.5.0" 7 | }, 8 | "version": "0.5.1" 9 | } -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.polymer/src/main/resources/bower_components/core-component-page/demo.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.polymer/src/main/resources/bower_components/core-component-page/index.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.polymer/src/main/resources/bower_components/polymer/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "polymer", 3 | "description": "Polymer is a new type of library for the web, built on top of Web Components, and designed to leverage the evolving web platform on modern browsers.", 4 | "homepage": "http://www.polymer-project.org/", 5 | "keywords": [ 6 | "util", 7 | "client", 8 | "browser", 9 | "web components", 10 | "web-components" 11 | ], 12 | "author": "Polymer Authors ", 13 | "private": true, 14 | "dependencies": { 15 | "core-component-page": "Polymer/core-component-page#^0.5.0", 16 | "webcomponentsjs": "Polymer/webcomponentsjs#^0.5.0" 17 | }, 18 | "devDependencies": { 19 | "tools": "Polymer/tools#master", 20 | "web-component-tester": "Polymer/web-component-tester#^1.4.2" 21 | }, 22 | "version": "0.5.1", 23 | "_release": "0.5.1", 24 | "_resolution": { 25 | "type": "version", 26 | "tag": "0.5.1", 27 | "commit": "c654b2b4996a643e79234ac624d7bc38179dfc2c" 28 | }, 29 | "_source": "git://github.com/Polymer/polymer.git", 30 | "_target": "^0.5.0", 31 | "_originalSource": "Polymer/polymer" 32 | } -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.polymer/src/main/resources/bower_components/polymer/README.md: -------------------------------------------------------------------------------- 1 | # Polymer 2 | 3 | [![Polymer build status](http://www.polymer-project.org/build/polymer-dev/status.png "Polymer build status")](http://build.chromium.org/p/client.polymer/waterfall) 4 | 5 | ## Brief Overview 6 | 7 | For more detailed info goto [http://polymer-project.org/](http://polymer-project.org/). 8 | 9 | Polymer is a new type of library for the web, designed to leverage the existing browser infrastructure to provide the encapsulation and extendability currently only available in JS libraries. 10 | 11 | Polymer is based on a set of future technologies, including [Shadow DOM](https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html), [Custom Elements](https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/custom/index.html) and Model Driven Views. Currently these technologies are implemented as polyfills or shims, but as browsers adopt these features natively, the platform code that drives Polymer evacipates, leaving only the value-adds. 12 | 13 | ## Tools & Testing 14 | 15 | For running tests or building minified files, consult the [tooling information](http://polymer-project.org/resources/tooling-strategy.html). 16 | 17 | ## Releases 18 | 19 | [Release (tagged) versions](https://github.com/Polymer/polymer/releases) of Polymer include concatenated and minified sources for your convenience. 20 | 21 | [![Analytics](https://ga-beacon.appspot.com/UA-39334307-2/Polymer/polymer/README)](https://github.com/igrigorik/ga-beacon) 22 | -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.polymer/src/main/resources/bower_components/polymer/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "polymer", 3 | "description": "Polymer is a new type of library for the web, built on top of Web Components, and designed to leverage the evolving web platform on modern browsers.", 4 | "homepage": "http://www.polymer-project.org/", 5 | "keywords": [ 6 | "util", 7 | "client", 8 | "browser", 9 | "web components", 10 | "web-components" 11 | ], 12 | "author": "Polymer Authors ", 13 | "private": true, 14 | "dependencies": { 15 | "core-component-page": "Polymer/core-component-page#^0.5.0", 16 | "webcomponentsjs": "Polymer/webcomponentsjs#^0.5.0" 17 | }, 18 | "devDependencies": { 19 | "tools": "Polymer/tools#master", 20 | "web-component-tester": "Polymer/web-component-tester#^1.4.2" 21 | }, 22 | "version": "0.5.1" 23 | } -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.polymer/src/main/resources/bower_components/polymer/build.log: -------------------------------------------------------------------------------- 1 | BUILD LOG 2 | --------- 3 | Build Time: 2014-11-12T14:32:18 4 | 5 | NODEJS INFORMATION 6 | ================== 7 | nodejs: v0.10.33 8 | grunt: 0.4.5 9 | grunt-audit: 1.0.0 10 | grunt-contrib-concat: 0.5.0 11 | grunt-contrib-copy: 0.7.0 12 | grunt-contrib-uglify: 0.6.0 13 | grunt-string-replace: 1.0.0 14 | web-component-tester: 1.6.0 15 | 16 | REPO REVISIONS 17 | ============== 18 | polymer-expressions: 1288fe573dc57cde304f66f0833d0644c766158c 19 | polymer-gestures: 94660a514772e182d27f79c3d8d1bb88796a2327 20 | polymer: da75e633f39b7761494cc3139a60733c488b2215 21 | 22 | BUILD HASHES 23 | ============ 24 | dist/polymer.js: 59e0d3e669a3a1d163d8337766aa63bf809bfe79 25 | dist/polymer.min.js: a9145f911c5b9fecc0d4aa422ac658d1d462d15a 26 | dist/layout.html: 348d358a91712ecc2f8811efa430fcd954b4590c -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.polymer/src/main/resources/bower_components/polymer/polymer.html: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.polymer/src/main/resources/bower_components/webcomponentsjs/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webcomponentsjs", 3 | "main": "webcomponents.js", 4 | "version": "0.5.1", 5 | "homepage": "http://webcomponents.org", 6 | "authors": [ 7 | "The Polymer Authors" 8 | ], 9 | "keywords": [ 10 | "webcomponents" 11 | ], 12 | "license": "BSD", 13 | "ignore": [], 14 | "_release": "0.5.1", 15 | "_resolution": { 16 | "type": "version", 17 | "tag": "0.5.1", 18 | "commit": "89c466eb29642c3e5ba2594e9330eb62ade1dbab" 19 | }, 20 | "_source": "git://github.com/Polymer/webcomponentsjs.git", 21 | "_target": "^0.5.0", 22 | "_originalSource": "Polymer/webcomponentsjs" 23 | } -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.polymer/src/main/resources/bower_components/webcomponentsjs/README.md: -------------------------------------------------------------------------------- 1 | webcomponents.js 2 | ================ 3 | 4 | A suite of polyfills supporting the HTML web components specs: 5 | 6 | **Custom Elements**: allows authors to define their own custom tags ([spec](https://w3c.github.io/webcomponents/spec/custom/)). 7 | 8 | **HTML Imports**: a way to include and reuse HTML documents via other HTML documents ([spec](https://w3c.github.io/webcomponents/spec/imports/)). 9 | 10 | **Shadow DOM**: provides encapsulation by hiding DOM subtrees under shadow roots ([spec](https://w3c.github.io/webcomponents/spec/shadow/)). 11 | 12 | This also folds in polyfills for `MutationObserver` and `WeakMap`. 13 | 14 | 15 | ## Releases 16 | 17 | Pre-built (concatenated & minified) versions of the polyfills are maintained in the [tagged versions](https://github.com/Polymer/webcomponentsjs/releases) of this repo. There are two variants: 18 | 19 | `webcomponents.js` includes all of the polyfills. 20 | 21 | `webcomponents-lite.js` includes all polyfills except for shadow DOM. 22 | 23 | 24 | ### Manually Building 25 | 26 | If you wish to build the polyfills yourself, you'll need `node` and `gulp` on your system: 27 | 28 | * install [node.js](http://nodejs.org/) using the instructions on their website 29 | * use `npm` to install [gulp.js](http://gulpjs.com/): `npm install -g gulp` 30 | 31 | Now you are ready to build the polyfills with: 32 | 33 | # install dependencies 34 | npm install 35 | # build 36 | gulp build 37 | 38 | The builds will be placed into the `dist/` directory. 39 | -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.polymer/src/main/resources/bower_components/webcomponentsjs/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webcomponentsjs", 3 | "main": "webcomponents.js", 4 | "version": "0.5.1", 5 | "homepage": "http://webcomponents.org", 6 | "authors": [ 7 | "The Polymer Authors" 8 | ], 9 | "keywords": [ 10 | "webcomponents" 11 | ], 12 | "license": "BSD", 13 | "ignore": [] 14 | } -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.polymer/src/main/resources/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.polymer/src/main/resources/kmf_components/kmf-collection/kmf-collection.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 16 | 36 | -------------------------------------------------------------------------------- /test/org.kevoree.modeling.test.polymer/src/main/resources/kmf_components/kmf-element/kmf-element.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 20 | 42 | --------------------------------------------------------------------------------