
prompto.prompto.pec Maven / Gradle / Ivy
define Any as native category with attributes id and text, and bindings:
define category bindings as:
Java: prompto.intrinsic.PromptoAny
C#: prompto.value.Any
Python2: Any from module: prompto.value.Any
Python3: Any from module: prompto.value.Any
JavaScript: Any from module: prompto/intrinsic/Any.js
and methods:
define id as getter doing:
Java: return System.identityHashCode(self);
C#: return System.Runtime.CompilerServices.RuntimeHelpers.GetHashCode(self);
Python2: return id(self)
Python3: return id(self)
JavaScript: return self.id;
define text as getter doing:
Java: return self.toString();
C#: return self.ToString();
Python2: return str(self)
Python3: return str(self)
JavaScript: return self.toString();
define Attribute as native category with attribute name, and bindings:
define category bindings as:
Java: prompto.declaration.AttributeDeclaration
C#: prompto.declaration.AttributeDeclaration
Python2: AttributeDeclaration from module: prompto.declaration.AttributeDeclaration
Python3: AttributeDeclaration from module: prompto.declaration.AttributeDeclaration
JavaScript: AttributeDeclaration from module: prompto/declaration/AttributeDeclaration.js
define findAttribute as native method receiving name returning Attribute doing:
Java: return $context.findAttribute(name);
C#: return $context.findAttribute(name);
Python2: return $context.findAttribute(name)
Python3: return $context.findAttribute(name)
JavaScript: return $context.findAttribute(name);
define getAllAttributes as native method returning Attribute[] doing:
Java: return $context.getAllAttributes();
C#: return $context.getAllAttributes();
Python2: return $context.getAllAttributes()
Python3: return $context.getAllAttributes()
JavaScript: return $context.getAllAttributes();
define "findAttribute id" as test method doing:
a = findAttribute "id"
and verifying:
a is an Attribute
a.name = "id"
define "findAttribute name" as test method doing:
a = findAttribute "name"
and verifying:
a is an Attribute
a.name = "name"
define "findAttribute text" as test method doing:
a = findAttribute "text"
and verifying:
a is an Attribute
a.name = "text"
define "at least 3 items getAllAttributes" as test method doing:
l = getAllAttributes
and verifying:
l is an Attribute[]
l.count >= 3
// runtime reference of any object
define id as Any attribute
// database reference of stored object
define dbId as Any attribute
// any object has a text attribute, used for display
define text as storable Text attribute with value and words index
// many objects have a name, it is not unique
define name as storable Text attribute with key and value index
// many objects have a description, it is not unique
define description as storable Text attribute with words index
// many objects have an image, it is not unique
define image as storable Image attribute
// many events have a timeStamp
define timeStamp as storable DateTime attribute
// urls, files and fragments have a path
define path as storable Text attribute
// external text sources have an encoding such as "UTF-8"
define encoding as storable Text attribute
// many systems require a login
define login as storable Text attribute with key and value index
// many systems require a password
define password as Text attribute
// users typically have an email
define email as storable Text attribute with value index
define getCurrentCloud as native method returning Text doing:
Java: return prompto.cloud.Cloud.current().name();
define Error as enumerated category with attributes name and text, and symbols:
DIVIDE_BY_ZERO with "Divide by zero!" as text
INDEX_OUT_OF_RANGE with "Index out of range!" as text
NULL_REFERENCE with "Null reference!" as text
NOT_MUTABLE with "Not a mutable object!" as text
NOT_STORABLE with "Not a storable object!" as text
READ_WRITE with "Read/write failed!" as text
define DecimalConstant as enumerated Decimal with symbols:
PI with 3.14159265358979323846 as value
E with 2.7182818284590452354 as value
define parseInteger as native method receiving Text text returning Integer doing:
Java: return Long.parseLong(text);
C#: return System.Int64.Parse(text);
Python2: return int(text)
Python3: return int(text)
JavaScript: return parseInt(text);
define parseDecimal as native method receiving Text text returning Decimal doing:
Java: return Double.parseDouble(text);
C#: return System.Double.Parse(text, System.Globalization.CultureInfo.InvariantCulture);
Python2: return float(text)
Python3: return float(text)
JavaScript: return parseFloat(text);
define parseDate as native method receiving Text text returning Date doing:
Java: return prompto.intrinsic.PromptoDate.parse(text);
C#: return prompto.value.Date.Parse(text);
Python2: return Date.Parse(text) from module: prompto.value.Date
Python3: return Date.Parse(text) from module: prompto.value.Date
JavaScript: return LocalDate.parse(text); from module: prompto/intrinsic/LocalDate.js
define parseTime as native method receiving Text text returning Time doing:
Java: return prompto.intrinsic.PromptoTime.parse(text);
C#: return prompto.value.Time.Parse(text);
Python2: return Time.Parse(text) from module: prompto.value.Time
Python3: return Time.Parse(text) from module: prompto.value.Time
JavaScript: return LocalTime.parse(text); from module: prompto/intrinsic/LocalTime.js
define parseDateTime as native method receiving Text text returning DateTime doing:
Java: return prompto.intrinsic.PromptoDateTime.parse(text);
C#: return prompto.value.DateTime.Parse(text);
Python2: return DateTime.Parse(text) from module: prompto.value.DateTime
Python3: return DateTime.Parse(text) from module: prompto.value.DateTime
JavaScript: return DateTime.parse(text); from module: prompto/intrinsic/DateTime.js
define parseUuid as native method receiving Text text returning Uuid doing:
Java: return java.util.UUID.fromString(text);
C#: return System.Guid.Parse(text);
Python2: return UUID(text) from module: uuid
Python3: return UUID(text) from module: uuid
JavaScript: return UUID.fromString(text); from module: prompto/intrinsic/UUID.js
define parseVersion as native method receiving Text text returning Version doing:
Java: return prompto.intrinsic.PromptoVersion.parse(text);
C#: return prompto.value.Version.Parse(text);
Python2: return Version.Parse(text) from module: prompto.value.Version
Python3: return Version.Parse(text) from module: prompto.value.Version
JavaScript: return Version.Parse(text); from module: prompto/intrinsic/Version.js
define parsePeriod as native method receiving Text text returning Period doing:
Java: return prompto.intrinsic.PromptoPeriod.parse(text);
C#: return prompto.value.Period.Parse(text);
Python2: return Period.Parse(text) from module: prompto.value.Period
Python3: return Period.Parse(text) from module: prompto.value.Period
JavaScript: return Period.parse(text); from module: prompto/intrinsic/Period.js
define "parses Integer" as test method doing:
i = parseInteger "123"
and verifying:
i = 123
define "parses Integer with leading 0" as test method doing:
i = parseInteger "0123"
and verifying:
i = 123
define "parses Decimal" as test method doing:
i = parseDecimal "123.45"
and verifying:
i = 123.45
define "parses Date" as test method doing:
d = parseDate "2018-02-17"
and verifying:
d = '2018-02-17'
define "parses Time" as test method doing:
t = parseTime "16:15:18"
and verifying:
t = '16:15:18'
define "parses DateTime" as test method doing:
dt = parseDateTime "2018-02-17T16:15:18"
and verifying:
dt = '2018-02-17T16:15:18'
define "parses Uuid" as test method doing:
u = parseUuid "11223344-aabb-ccdd-eeff-112233445566"
and verifying:
u = '11223344-aabb-ccdd-eeff-112233445566'
define "parses Version" as test method doing:
v = parseVersion "v1.2.3"
and verifying:
v = 'v1.2.3'
define "parses Period" as test method doing:
p = parsePeriod "PT1S"
and verifying:
p = 'PT1S'
define now as native method returning DateTime doing:
Java: return prompto.intrinsic.PromptoDateTime.now();
C#: return System.DateTimeOffset.Now;
Python2: return datetime.utcnow() from module: datetime
Python3: return datetime.utcnow() from module: datetime
JavaScript: return DateTime.now(); from module: prompto/intrinsic/DateTime.js
define "now is a DateTime" as test method doing:
a = now
and verifying:
a is a DateTime
define today as method returning Date doing:
return now.date
// returns a random UUID as defined by http://www.ietf.org/rfc/rfc4122.txt
define randomUuid as native method returning Uuid doing:
Java: return java.util.UUID.randomUUID();
C#: return System.Guid.NewGuid();
Python2: return uuid4() from module: uuid
Python3: return uuid4() from module: uuid
JavaScript: return UUID.create(); from module: prompto/intrinsic/UUID.js
// waits for n milliseconds (consuming all CPU in JavaScript)
define sleep as native method receiving Integer millis doing:
Java: java.lang.Thread.sleep(millis);
C#: prompto.utils.Utils.Sleep(millis);
Python2: sleep(millis) from module: prompto.utils.Utils
Python3: sleep(millis) from module: prompto.utils.Utils
JavaScript: sleep(millis); from module: prompto/utils/Utils.js
define isServer as native method returning Boolean doing:
Java: return $context.isServer();
C#: return false;
Python2: return False
Python3: return False
JavaScript: return false;
define fetchTextResource as native method receiving path returning Text doing:
Java: return $context.fetchTextResource(path);
C#: return $context.fetchTextResource(path);
Python2: return $context.fetchTextResource(path)
Python3: return $context.fetchTextResource(path)
JavaScript: return $context.fetchTextResource(path);
define "randomUuid is not null" as test method doing:
uuid = randomUuid
and verifying:
uuid is not Nothing
define "sleeps for 1 second" as test method doing:
start = now
sleep 1000
end = now
and verifying:
end >= start + 'PT1S'
define Buffer as native resource with attribute text, and bindings:
define category bindings as:
Java: prompto.io.Buffer
C#: prompto.io.Buffer
Python2: Buffer from module: prompto.io.Buffer
Python3: Buffer from module: prompto.io.Buffer
JavaScript: Buffer from module: prompto/io/Buffer.js
define "writes to Buffer" as test method doing:
content = ""
with buffer = Buffer, do:
write "some content" to buffer
write "other content" to buffer
content = buffer.text
and verifying:
"some content" in content
"other content" in content
// a wrapper around native console printing
define printNative as native method receiving any value and NativeWriter writer doing:
Java: writer.print(value);
C#: writer.Write(value);
Python2: print(objects=str(value), end="", file=writer)
Python3: print(objects=str(value), end="", file=writer)
JavaScript: writer.write(value.toString());
// a wrapper around heterogeneous native console io
define NativeWriter as native category with bindings:
define category bindings as:
Java: java.io.PrintStream
C#: System.IO.TextWriter
Python2: StringIO from module: StringIO
Python3: StringIO from module: io
JavaScript: writer from module: prompto/io/io.js
// a wrapper around heterogeneous native stdout
define stdout as native method returning NativeWriter doing:
Java: return System.out;
C#: return System.Console.Out;
Python2: return stdout from module: sys
Python3: return stdout from module: sys
JavaScript: return stdout; from module: prompto/io/io.js
// a wrapper around heterogeneous native stdin
define stderr as native method returning NativeWriter doing:
Java: return System.err;
C#: return System.Console.Error;
Python2: return stderr from module: sys
Python3: return stderr from module: sys
JavaScript: return stderr; from module: prompto/io/io.js
// an abstract Writer which can be derived (unlike NativeWriter)
define Writer as category with methods:
define print as abstract method receiving any value
// the native Writer implementation
define nativeWriter as NativeWriter attribute
define ConsoleWriter as Writer with attribute nativeWriter, and methods:
define print as method receiving any value doing:
printNative value with nativeWriter as writer
// the buffered Writer implementation (useful for testing)
define TextWriter as Writer with attribute text, and methods:
define print as method receiving any value doing:
if text is nothing:
text = "" + value
else:
text = text + value
// now the interesting methods
define print as method receiving any value doing:
out = invoke: stdout
printNative value with out as writer
define printLine as method receiving any value doing:
out = invoke: stdout
value = "" + value + "\n"
printNative value with out as writer
define print as method receiving any value and Writer writer doing:
writer.print with value as value
define printLine as method receiving any value and Writer writer doing:
print value with writer as writer
print '\n' with writer as writer
// and the corresponding tests
define "print a text" as test method doing:
w = mutable TextWriter
print "Hello" with w as writer
print " John" with w as writer
and verifying:
w.text = "Hello John"
define "print an integer" as test method doing:
w = mutable TextWriter
print 12345 with w as writer
and verifying:
w.text = "12345"
define "printLine a text" as test method doing:
w = mutable TextWriter
print "Hello" with w as writer
printLine " John" with w as writer
and verifying:
w.text = "Hello John\n"
define "printLine an integer" as test method doing:
w = mutable TextWriter
printLine 12345 with w as writer
and verifying:
w.text = "12345\n"
define htmlEncode as native method receiving Text value returning Text doing:
Java: return prompto.internet.Html.encode(value);
C#: return System.Net.WebUtility.HtmlEncode(value);
Python2: return escape(value) from module: cgi
Python3: return escape(value) from module: html
JavaScript: return htmlEncode(value); from module: prompto/internet/Html.js
define htmlDecode as native method receiving Text value returning Text doing:
Java: return prompto.internet.Html.decode(value);
C#: return System.Net.WebUtility.HtmlDecode(value);
Python2: return HTMLParser().unescape(value) from module: HTMLParser
Python3: return unescape(value) from module: html.parser
JavaScript: return htmlDecode(value); from module: prompto/internet/Html.js
define "encode Html entity" as test method doing:
encoded = htmlEncode ""
and verifying:
encoded = "<ab>"
define "decode Html entity" as test method doing:
encoded = htmlDecode "<ab>"
and verifying:
encoded = ""
define "decode Html charcode" as test method doing:
encoded = htmlDecode "a1b"
and verifying:
encoded = "a1b"
define Url as storable native resource with attributes path and encoding, and bindings:
define category bindings as:
Java: prompto.internet.Url
C#: prompto.internet.Url
Python2: Url from module: prompto.internet.Url
Python3: Url from module: prompto.internet.Url
JavaScript: Url from module: prompto/internet/Url.js
// many objects have an Url
define url as storable Url attribute
define "reads from www.google.com" as test method doing:
// need a cross-domain enabled page for browser testing
content = read all from Url with "https://www.google.com/" as path
and verifying:
content contains "doctype"
define readJson as native method receiving text returning Any doing:
Java: return prompto.reader.JSONReader.read(text);
C#: return prompto.reader.JSONReader.read(text);
Python2: return jsonRead(text) from module: prompto.reader.JSONReader
Python3: return jsonRead(text) from module: prompto.reader.JSONReader
JavaScript: return jsonRead(text); from module: prompto/reader/JSONReader.js
define "test that readJson returns a boolean" as test method doing:
o = readJson "true"
and verifying:
o is a Boolean
o is true
define "test that readJson returns an Integer" as test method doing:
o = readJson "237"
and verifying:
o is an Integer
o = 237
define "test that readJson returns a Decimal" as test method doing:
o = readJson "123.02"
and verifying:
o is a Decimal
o = 123.02
define "test that readJson returns a Text" as test method doing:
o = readJson "\"some text\""
and verifying:
o is a Text
o = "some text"
define "test that readJson returns a Document" as test method doing:
o = (readJson "{\"field\":122}") as Document
and verifying:
o is a Document
o.field = 122
define "test that readJson returns a List" as test method doing:
o = (readJson "[{\"field\":122}]") as Document[]
and verifying:
o is a Document[]
o[1].field = 122
define "test that readJson returns a complex Document" as test method doing:
json = "[{\"field\":122, \"list\": [{\"field\":123, \"doc\": {\"name\": \"John\"}}], \"doc\": { \"list\": [ 122, 233, 344] }}]"
o = (readJson json) as Document[]
and verifying:
o is a Document[]
o[1].field = 122
define iterateCsv as native method receiving text, Text<:> columnNames = nothing, Character separator = ',', Character quote = '"' returning Iterator doing:
Java: return prompto.reader.CSVReader.iterator(text, columnNames, separator, quote);
C#: return prompto.reader.CSVReader.iterator(text, columnNames, separator, quote);
Python2: return csvIterate(text, columnNames, separator, quote) from module: prompto.reader.CSVReader
Python3: return csvIterate(text, columnNames, separator, quote) from module: prompto.reader.CSVReader
JavaScript: return csvIterate(text, columnNames, separator, quote); from module: prompto/reader/CSVReader.js
define readCsv as native method receiving text, Text<:> columnNames = nothing, Character separator = ',', Character quote = '"' returning Document[] doing:
Java: return prompto.reader.CSVReader.read(text, columnNames, separator, quote);
C#: return prompto.reader.CSVReader.read(text, columnNames, separator, quote);
Python2: return csvRead(text, columnNames, separator, quote) from module: prompto.reader.CSVReader
Python3: return csvRead(text, columnNames, separator, quote) from module: prompto.reader.CSVReader
JavaScript: return csvRead(text, columnNames, separator, quote); from module: prompto/reader/CSVReader.js
define "reads from csv text" as test method doing:
docs = readCsv with "id,name\n1,John\n2,Riou\\, Sylvie\n" as text
and verifying:
docs.count = 2
docs[1].id = "1"
docs[1].name = "John"
docs[2].id = "2"
docs[2].name = "Riou, Sylvie"
define "iterates from csv text" as test method doing:
iterCsv = iterateCsv with "id,name\n1,John\n2,Riou\\, Sylvie\n" as text
docs = [] as Document[]
for each doc in iterCsv:
docs = docs + [doc]
and verifying:
docs.count = 2
docs[1].id = "1"
docs[1].name = "John"
docs[2].id = "2"
docs[2].name = "Riou, Sylvie"
define "maps csv headers" as test method doing:
names = < "Code" : "id", "Name" : "name" >
docs = readCsv with "Code,Name\n1,John\n2,Riou\\, Sylvie\n" as text and names as columnNames
and verifying:
docs.count = 2
docs[1].id = "1"
docs[1].name = "John"
docs[2].id = "2"
docs[2].name = "Riou, Sylvie"
define LoginFactory as native category with bindings:
define category bindings as:
Java: prompto.security.auth.source.IAuthenticationSource
and methods:
define createLogin as method receiving login and password doing:
Java: this.createLogin(login, password);
define updateLogin as method receiving login and password doing:
Java: this.updateLogin(login, password);
define checkLogin as method receiving login and password doing:
Java: this.checkLogin(login, password);
define hasLogin as method receiving login returning Boolean doing:
Java: return this.hasLogin(login);
define serviceHandler as abstract method receiving Document doc
define installServiceHandler as native method receiving Text path and serviceHandler doing:
Java: $server.installHandler(path, serviceHandler);
define getLoginFactory as native method receiving Text config = nothing returning LoginFactory doing:
Java: $server.getLoginFactory(config);
define getHttpUser as native method returning Text doing:
Java: return $server.getHttpUser();
define getHttpSession as native method returning Document doing:
Java: return $server.getHttpSession();
define getHttpPort as native method returning Integer doing:
Java: return $server.getHttpPort();
JavaScript: return self.location.port;
define ClickEvent as native category with bindings:
define category bindings as:
JavaScript: Event
@Inlined
define RadioChangedEvent as native category with bindings:
define category bindings as:
JavaScript: Event
and methods:
define getSelectedRadio as method returning Text doing:
JavaScript: return this.target.id;
@Inlined
define InputChangedEvent as native category with bindings:
define category bindings as:
JavaScript: Event
and methods:
define getCurrentText as method returning Text doing:
JavaScript: return this.target.defaultValue;
define getProposedText as method returning Text doing:
JavaScript: return this.target.value;
define getReactWidgetProps as native method receiving ReactWidget w returning Document doing:
JavaScript: return w.props;
define getReactWidgetState as native method receiving ReactWidget w returning Document doing:
JavaScript: return w.state;
define setReactWidgetState as native method receiving ReactWidget w and Document state doing:
JavaScript: w.setState(state);
define forceReactWidgetRender as native method receiving ReactWidget w doing:
JavaScript: w.forceUpdate();
define showReactModal as native method receiving Html w doing:
JavaScript: ReactUtils.showModal(w);
define hideReactModal as native method doing:
JavaScript: ReactUtils.hideModal();
define ReactWidget as widget with methods:
@Static
@Callback
define getDerivedStateFromProps as method receiving Document props and Document state doing:
return Nothing
@Callback
define getInitialState as method doing:
return {}
@Callback
define componentDidMount as method doing:
// nothing to do
@Callback
define render as method returning Html doing:
return Your widget must override render!
@Callback
define componentWillUnmount as method doing:
// nothing to do
@Callback
define shouldComponentUpdate as method receiving Document nextProps and Document nextState returning Boolean doing:
return true
@Callback
define getSnapshotBeforeUpdate as method receiving Document prevProps and Document prevState returning Boolean doing:
return nothing
@Callback
define componentDidUpdate as method receiving Document prevProps, Document prevState and Document snapshot returning Boolean doing:
// nothing to do
define getProperties as method doing:
return getReactWidgetProps self
define getState as method doing:
return getReactWidgetState self
define setState as method receiving Document state doing:
setReactWidgetState self with state
define forceRender as method doing:
forceReactWidgetRender self
define alert as native method receiving Text text doing:
JavaScript: alert(text);
© 2015 - 2025 Weber Informatics LLC | Privacy Policy