]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.layer0/graph/Layer0Literals.pgraph
Support tg discovery in export/import
[simantics/platform.git] / bundles / org.simantics.layer0 / graph / Layer0Literals.pgraph
1 L0 = <http://www.simantics.org/Layer0-1.1>
2
3 L0.Literal <T L0.Value
4     >-- L0.HasDataType --> L0.DataType <R L0.HasProperty : L0.FunctionalRelation
5 L0.DataType <T L0.Literal
6     @L0.assert L0.HasDataType $DataType
7
8 L0.Boolean <T L0.Literal
9     @L0.assert L0.HasDataType $Boolean
10     @L0.assert L0.Literal.HasInputValidator
11       L0.Functions.booleanInputValidator
12     @L0.assert L0.HasValueType "Boolean"
13 L0.Byte <T L0.Literal
14     @L0.assert L0.HasDataType $Byte
15     @L0.assert L0.Literal.HasInputValidator
16       L0.Functions.numberInputValidator
17     @L0.assert L0.HasValueType "Byte"
18 L0.Integer <T L0.Literal
19     @L0.assert L0.HasDataType $Integer
20     @L0.assert L0.Literal.HasInputValidator
21       L0.Functions.numberInputValidator
22     @L0.assert L0.HasValueType "Integer"
23 L0.Long <T L0.Literal
24     @L0.assert L0.HasDataType $Long
25     @L0.assert L0.Literal.HasInputValidator
26       L0.Functions.numberInputValidator
27     @L0.assert L0.HasValueType "Long"
28 L0.Float <T L0.Literal
29     @L0.assert L0.HasDataType $Float
30     @L0.assert L0.Literal.HasInputValidator
31       L0.Functions.numberInputValidator
32     @L0.assert L0.HasValueType "Float" 
33 L0.Double <T L0.Literal
34     @L0.assert L0.HasDataType $Double
35     @L0.assert L0.Literal.HasInputValidator
36       L0.Functions.numberInputValidator
37     @L0.assert L0.HasValueType "Double"
38 L0.String <T L0.Literal /*<T L0X.StringAdapter*/
39     @L0.assert L0.HasDataType $String
40     @L0.assert L0.HasValueType "String"
41 L0.BooleanArray <T L0.Literal
42     @L0.assert L0.HasDataType $(Boolean[])
43     @L0.assert L0.HasValueType "Vector Boolean"
44 L0.ByteArray <T L0.Literal
45     @L0.assert L0.HasDataType $(Byte[])
46     @L0.assert L0.HasValueType "Vector Byte"
47 L0.IntegerArray <T L0.Literal
48     @L0.assert L0.HasDataType $(Integer[])
49     @L0.assert L0.HasValueType "Vector Integer"
50 L0.LongArray <T L0.Literal
51     @L0.assert L0.HasDataType $(Long[])
52     @L0.assert L0.HasValueType "Vector Long"
53 L0.FloatArray <T L0.Literal
54     @L0.assert L0.HasDataType $(Float[])
55     @L0.assert L0.HasValueType "Vector Float"
56 L0.DoubleArray <T L0.Literal
57     @L0.assert L0.HasDataType $(Double[])
58     @L0.assert L0.HasValueType "Vector Double"
59 L0.StringArray <T L0.Literal
60     @L0.assert L0.HasDataType $(String[])
61     @L0.assert L0.HasValueType "Vector String"
62 L0.VariantArray <T L0.Literal
63     @L0.assert L0.HasDataType $(Variant[])
64     @L0.assert L0.HasValueType "Vector Variant"
65 L0.Variant <T L0.Literal
66     @L0.assert L0.HasDataType $Variant  
67 L0.CardinalityRange <T L0.Literal
68     @L0.assert L0.HasDataType ${
69         min : Optional(Integer),
70         max : Optional(Integer)    
71     }
72 L0.URI <T L0.String
73     L0.HasDescription """A Uniform Resource Identifier (URI) is just a unique string that uniquely identifies something, commonly a namespace. Sometimes they look like a URL that you could type into the address bar of your web browser, but it doesn't have to point to any physical resource on the web."""
74 L0.RevisionId <T L0.Literal
75     @L0.assert L0.HasDataType $Long(unit="revision")
76     @L0.assert L0.HasValueType "Long"
77 //L0.URL <T L0.URI
78 //    L0.HasDescription """A Uniform Resource Locator (URL) is an URI which locates a resource on the web.""" 
79
80 L0.RVI <T L0.Literal
81     @L0.assert L0.HasDataType ${ parts : ( | ResourceRVIPart { role : |CHILD|PROPERTY, resource : Long(unit="resource") } | StringRVIPart { role : |CHILD|PROPERTY, string : String } | GuidRVIPart { role : |CHILD|PROPERTY, guid : { mostSignificantPart : Long , leastSignificantPart : Long }  } ) [] }
82    
83 // Constant literals   
84 L0.True = true
85 L0.False = false     
86 //L0.EmptyString = ""
87
88 L0.Cardinality0 = { max=0 } : L0.CardinalityRange
89 L0.Cardinality1 = { min=1, max=1 } : L0.CardinalityRange
90 L0.Cardinality2 = { min=2, max=2 } : L0.CardinalityRange
91 L0.CardinalityAtMost1 = { max=1 } : L0.CardinalityRange
92 L0.CardinalityAtLeast1 = { min=1 } : L0.CardinalityRange
93
94 L0.Literal.HasInputValidator <R L0.HasProperty /*: L0X.ResourcePropertyRelation*/
95
96 L0.Literal.BooleanValidator <T L0.Value
97 L0.Literal.ByteValidator <T L0.Value
98 L0.Literal.IntegerValidator <T L0.Value
99 L0.Literal.LongValidator <T L0.Value
100 L0.Literal.FloatValidator <T L0.Value
101 L0.Literal.DoubleValidator <T L0.Value
102
103 L0.GUID <T L0.Literal
104     @L0.assert L0.HasValueType "(Long,Long)"
105     @L0.assert L0.HasDataType ${ mostSigBits : Long, leastSigBits : Long }
106     
107 L0.TypeWithIdentifier <T L0.Entity