Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
H
histream
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
Operations
Operations
Incidents
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Raphael
histream
Commits
743615a1
Commit
743615a1
authored
Jun 12, 2016
by
R.W.Majeed
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
scripting moved to separate project
parent
b64dbebb
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
66 additions
and
56 deletions
+66
-56
histream-import/src/main/java/de/sekmi/histream/etl/scripting/FactsArray.java
...main/java/de/sekmi/histream/etl/scripting/FactsArray.java
+0
-47
histream-js/.gitignore
histream-js/.gitignore
+4
-0
histream-js/TODO.txt
histream-js/TODO.txt
+2
-0
histream-js/pom.xml
histream-js/pom.xml
+28
-0
histream-js/src/main/java/de/sekmi/histream/scripting/Fact.java
...am-js/src/main/java/de/sekmi/histream/scripting/Fact.java
+1
-1
histream-js/src/main/java/de/sekmi/histream/scripting/Facts.java
...m-js/src/main/java/de/sekmi/histream/scripting/Facts.java
+22
-6
histream-js/src/main/java/de/sekmi/histream/scripting/package-info.java
...c/main/java/de/sekmi/histream/scripting/package-info.java
+1
-1
histream-js/src/test/java/de/sekmi/histream/scripting/TestFacts.java
.../src/test/java/de/sekmi/histream/scripting/TestFacts.java
+8
-1
No files found.
histream-import/src/main/java/de/sekmi/histream/etl/scripting/FactsArray.java
deleted
100644 → 0
View file @
b64dbebb
package
de.sekmi.histream.etl.scripting
;
import
java.util.Collection
;
import
java.util.Collections
;
import
jdk.nashorn.api.scripting.AbstractJSObject
;
public
class
FactsArray
extends
AbstractJSObject
{
private
Facts
facts
;
public
FactsArray
(
Facts
facts
){
this
.
facts
=
facts
;
}
@Override
public
Object
getMember
(
String
name
)
{
return
facts
.
get
(
name
);
}
@Override
public
Object
getSlot
(
int
index
)
{
return
facts
.
get
(
index
);
}
@Override
public
boolean
hasMember
(
String
name
)
{
return
facts
.
firstIndexOf
(
name
)
!=
-
1
;
}
@Override
public
boolean
hasSlot
(
int
slot
)
{
return
slot
>=
0
&&
slot
<
facts
.
facts
().
size
();
}
@Override
public
boolean
isArray
()
{
return
true
;
}
@Override
public
boolean
isStrictFunction
()
{
return
true
;
}
@Override
public
void
removeMember
(
String
name
)
{
facts
.
remove
(
name
);
}
@Override
public
Collection
<
Object
>
values
()
{
return
Collections
.
unmodifiableList
(
facts
.
facts
());
}
}
histream-js/.gitignore
0 → 100644
View file @
743615a1
.settings/
.classpath
.project
target/
histream-js/TODO.txt
0 → 100644
View file @
743615a1
Support for native JS objects?
-> import jdk.nashorn.api.scripting.AbstractJSObject;
\ No newline at end of file
histream-js/pom.xml
0 → 100644
View file @
743615a1
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<name>
HIStream : Javascript support
</name>
<groupId>
de.sekmi.histream
</groupId>
<artifactId>
histream-js
</artifactId>
<version>
0.8-SNAPSHOT
</version>
<parent>
<groupId>
de.sekmi.histream
</groupId>
<artifactId>
histream
</artifactId>
<version>
0.8-SNAPSHOT
</version>
</parent>
<build>
</build>
<dependencies>
<dependency>
<groupId>
de.sekmi.histream
</groupId>
<artifactId>
histream-core
</artifactId>
<version>
0.8-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
junit
</groupId>
<artifactId>
junit
</artifactId>
</dependency>
</dependencies>
</project>
\ No newline at end of file
histream-
import/src/main/java/de/sekmi/histream/etl
/scripting/Fact.java
→
histream-
js/src/main/java/de/sekmi/histream
/scripting/Fact.java
View file @
743615a1
package
de.sekmi.histream.
etl.
scripting
;
package
de.sekmi.histream.scripting
;
import
de.sekmi.histream.DateTimeAccuracy
;
import
de.sekmi.histream.Observation
;
...
...
histream-
import/src/main/java/de/sekmi/histream/etl
/scripting/Facts.java
→
histream-
js/src/main/java/de/sekmi/histream
/scripting/Facts.java
View file @
743615a1
package
de.sekmi.histream.
etl.
scripting
;
package
de.sekmi.histream.scripting
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.List
;
import
de.sekmi.histream.DateTimeAccuracy
;
import
de.sekmi.histream.Observation
;
import
de.sekmi.histream.ObservationFactory
;
/**
* Javascript compatible interface for manipulating a list of
* facts. Facts can be changed, removed, added.
* <p>
* Use {@link #setObservations(List)} to specify the list
* of observations. The provided list is edited in place.
* </>
* @author R.W.Majeed
*
*/
public
class
Facts
{
private
ArrayList
<
Fact
>
facts
;
private
List
<
Fact
>
facts
;
private
List
<
Observation
>
sourceList
;
private
ObservationFactory
factory
;
private
String
patientId
;
private
String
encounterId
;
private
DateTimeAccuracy
defaultStartTime
;
public
Facts
(
ObservationFactory
factory
,
String
patientId
,
String
encounterId
,
DateTimeAccuracy
defaultStartTime
){
this
.
factory
=
factory
;
this
.
patientId
=
patientId
;
...
...
@@ -23,7 +33,8 @@ public class Facts {
this
.
defaultStartTime
=
defaultStartTime
;
this
.
facts
=
new
ArrayList
<>();
}
public
void
setObservations
(
Collection
<
Observation
>
observations
){
public
void
setObservations
(
List
<
Observation
>
observations
){
sourceList
=
observations
;
facts
.
clear
();
observations
.
stream
().
map
(
o
->
new
Fact
(
o
)).
forEach
(
facts:
:
add
);
}
...
...
@@ -37,6 +48,7 @@ public class Facts {
Observation
o
=
factory
.
createObservation
(
patientId
,
conceptId
,
defaultStartTime
);
o
.
setEncounterId
(
encounterId
);
Fact
f
=
new
Fact
(
o
);
sourceList
.
add
(
o
);
facts
.
add
(
f
);
return
f
;
}
...
...
@@ -53,7 +65,11 @@ public class Facts {
if
(
i
==
-
1
){
return
null
;
}
else
{
return
facts
.
remove
(
i
);
Fact
f
=
facts
.
remove
(
i
);
Observation
o
=
sourceList
.
remove
(
i
);
// verify that fact and observation are associated
assert
f
.
getObservation
()
==
o
;
return
f
;
}
}
public
Fact
get
(
int
index
){
...
...
histream-
import/src/main/java/de/sekmi/histream/etl
/scripting/package-info.java
→
histream-
js/src/main/java/de/sekmi/histream
/scripting/package-info.java
View file @
743615a1
...
...
@@ -4,4 +4,4 @@
* @author R.W.Majeed
*
*/
package
de.sekmi.histream.etl.scripting
;
\ No newline at end of file
package
de.sekmi.histream.scripting
;
\ No newline at end of file
histream-
import/src/test/java/de/sekmi/histream/etl
/scripting/TestFacts.java
→
histream-
js/src/test/java/de/sekmi/histream
/scripting/TestFacts.java
View file @
743615a1
package
de.sekmi.histream.etl.scripting
;
package
de.sekmi.histream.scripting
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.List
;
import
javax.script.ScriptEngine
;
import
javax.script.ScriptEngineManager
;
...
...
@@ -35,7 +39,10 @@ public class TestFacts {
factory
.
createObservation
(
"P1"
,
"C3"
,
DateTimeAccuracy
.
parsePartialIso8601
(
"2011-02-01"
))
};
Facts
f
=
new
Facts
(
factory
,
"P1"
,
"V1"
,
defaultStart
);
List
<
Observation
>
list
=
new
ArrayList
<>();
Collections
.
addAll
(
list
,
facts
);
f
.
setObservations
(
list
);
engine
.
put
(
"facts"
,
f
);
engine
.
eval
(
"facts.add('C4')"
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment