Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
TokenProperty.cs
1using System;
2using System.Threading.Tasks;
3using System.Xml;
4
6{
10 public enum TokenProperties
11 {
15 TokenId,
16
20 TokenIdMethod,
21
25 Visibility,
26
30 Creator,
31
35 CreatorJid,
36
40 Owner,
41
45 OwnerJid,
46
50 TrustProvider,
51
55 TrustProviderJid,
56
60 Currency,
61
65 Reference,
66
70 Definition,
71
75 DefinitionNamespace,
76
80 CreationContract,
81
85 OwnershipContract,
86
90 Value,
91
95 Created,
96
100 Updated,
101
105 Expires,
106
110 ArchiveRequired,
111
115 ArchiveOptional,
116
120 SignatureTimestamp,
121
125 Signature,
126
130 DefinitionSchemaDigest,
131
135 DefinitionSchemaHashFunction,
136
140 CreatorCanDestroy,
141
145 OwnerCanDestroyBatch,
146
150 OwnerCanDestroyIndividual,
151
155 CertifierCanDestroy,
156
160 FriendlyName,
161
165 Glyph,
166
170 GlyphContentType,
171
175 GlyphWidth,
176
180 GlyphHeight,
181
185 Ordinal,
186
190 BatchSize
191 }
192
197 {
202 : base()
203 {
204 }
205
209 public TokenProperties Value { get; set; }
210
214 public override string LocalName => nameof(TokenProperty);
215
220 public override IStateMachineNode Create()
221 {
222 return new TokenProperty();
223 }
224
229 public override Task Parse(XmlElement Xml)
230 {
231 if (!Enum.TryParse<TokenProperties>(Xml.InnerText, out TokenProperties p))
232 throw new Exception("Invalid Token Property value.");
233
234 this.Value = p;
235
236 return base.Parse(Xml);
237 }
238
243 public override Task<object> Evaluate(EvaluationArguments Arguments)
244 {
245 if (Arguments.Token is null)
246 throw new Exception("State Machine does not have single token owner.");
247
248 switch (this.Value)
249 {
250 case TokenProperties.TokenId: return Task.FromResult<object>(Arguments.Token.TokenId);
251 case TokenProperties.TokenIdMethod: return Task.FromResult<object>(Arguments.Token.TokenIdMethod);
252 case TokenProperties.Visibility: return Task.FromResult<object>(Arguments.Token.Visibility);
253 case TokenProperties.Creator: return Task.FromResult<object>(Arguments.Token.Creator);
254 case TokenProperties.CreatorJid: return Task.FromResult<object>(Arguments.Token.CreatorJid);
255 case TokenProperties.Owner: return Task.FromResult<object>(Arguments.Token.Owner);
256 case TokenProperties.OwnerJid: return Task.FromResult<object>(Arguments.Token.OwnerJid);
257 case TokenProperties.TrustProvider: return Task.FromResult<object>(Arguments.Token.TrustProvider);
258 case TokenProperties.TrustProviderJid: return Task.FromResult<object>(Arguments.Token.TrustProviderJid);
259 case TokenProperties.Currency: return Task.FromResult<object>(Arguments.Token.Currency);
260 case TokenProperties.Reference: return Task.FromResult<object>(Arguments.Token.Reference);
261 case TokenProperties.Definition: return Task.FromResult<object>(Arguments.Token.Definition);
262 case TokenProperties.DefinitionNamespace: return Task.FromResult<object>(Arguments.Token.DefinitionNamespace);
263 case TokenProperties.CreationContract: return Task.FromResult<object>(Arguments.Token.CreationContract);
264 case TokenProperties.OwnershipContract: return Task.FromResult<object>(Arguments.Token.OwnershipContract);
265 case TokenProperties.Value: return Task.FromResult<object>(Arguments.Token.Value);
266 case TokenProperties.Created: return Task.FromResult<object>(Arguments.Token.Created);
267 case TokenProperties.Updated: return Task.FromResult<object>(Arguments.Token.Updated);
268 case TokenProperties.Expires: return Task.FromResult<object>(Arguments.Token.Expires);
269 case TokenProperties.ArchiveRequired: return Task.FromResult<object>(Arguments.Token.ArchiveRequired);
270 case TokenProperties.ArchiveOptional: return Task.FromResult<object>(Arguments.Token.ArchiveOptional);
271 case TokenProperties.SignatureTimestamp: return Task.FromResult<object>(Arguments.Token.SignatureTimestamp);
272 case TokenProperties.Signature: return Task.FromResult<object>(Arguments.Token.Signature);
273 case TokenProperties.DefinitionSchemaDigest: return Task.FromResult<object>(Arguments.Token.DefinitionSchemaDigest);
274 case TokenProperties.DefinitionSchemaHashFunction: return Task.FromResult<object>(Arguments.Token.DefinitionSchemaHashFunction);
275 case TokenProperties.CreatorCanDestroy: return Task.FromResult<object>(Arguments.Token.CreatorCanDestroy);
276 case TokenProperties.OwnerCanDestroyBatch: return Task.FromResult<object>(Arguments.Token.OwnerCanDestroyBatch);
277 case TokenProperties.OwnerCanDestroyIndividual: return Task.FromResult<object>(Arguments.Token.OwnerCanDestroyIndividual);
278 case TokenProperties.CertifierCanDestroy: return Task.FromResult<object>(Arguments.Token.CertifierCanDestroy);
279 case TokenProperties.FriendlyName: return Task.FromResult<object>(Arguments.Token.FriendlyName);
280 case TokenProperties.Glyph: return Task.FromResult<object>(Arguments.Token.Glyph);
281 case TokenProperties.GlyphContentType: return Task.FromResult<object>(Arguments.Token.GlyphContentType);
282 case TokenProperties.GlyphWidth: return Task.FromResult<object>(Arguments.Token.GlyphWidth);
283 case TokenProperties.GlyphHeight: return Task.FromResult<object>(Arguments.Token.GlyphHeight);
284 case TokenProperties.Ordinal: return Task.FromResult<object>(Arguments.Token.Ordinal);
285 case TokenProperties.BatchSize: return Task.FromResult<object>(Arguments.Token.BatchSize);
286 default: return Task.FromResult<object>(null);
287 }
288 }
289 }
290}
Contains information required for evaluating script in a state-machine.
override IStateMachineNode Create()
Creates a new node of the corresponding type.
override Task Parse(XmlElement Xml)
Parses the State-machine node.
override Task< object > Evaluate(EvaluationArguments Arguments)
Evaluates the value node.
Abstract base class for nodes with a value.
Definition: Value.cs:13
Abstract base class for State-Machine nodes containing a value.
Definition: ValueNode.cs:9