annotate Pml/Elements/Collection.cs @ 103:8fe322656807

Cleanup some old PML code
author Ivo Smits <Ivo@UCIS.nl>
date Sat, 11 Oct 2014 14:03:31 +0200
parents 28dc7d535036
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3ab940a0c7a0 Initial commit
Ivo Smits <Ivo@UCIS.nl>
parents:
diff changeset
1 ???using System;
3ab940a0c7a0 Initial commit
Ivo Smits <Ivo@UCIS.nl>
parents:
diff changeset
2 using System.Collections;
3ab940a0c7a0 Initial commit
Ivo Smits <Ivo@UCIS.nl>
parents:
diff changeset
3 using System.Collections.Generic;
3ab940a0c7a0 Initial commit
Ivo Smits <Ivo@UCIS.nl>
parents:
diff changeset
4
3ab940a0c7a0 Initial commit
Ivo Smits <Ivo@UCIS.nl>
parents:
diff changeset
5 namespace UCIS.Pml {
3ab940a0c7a0 Initial commit
Ivo Smits <Ivo@UCIS.nl>
parents:
diff changeset
6 public class PmlCollection : PmlElement, ICollection<PmlElement> {
103
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
7 private List<PmlElement> pItems = new List<PmlElement>();
0
3ab940a0c7a0 Initial commit
Ivo Smits <Ivo@UCIS.nl>
parents:
diff changeset
8
103
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
9 public PmlCollection() { }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
10 public PmlCollection(params PmlElement[] Elements) {
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
11 pItems.AddRange(Elements);
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
12 }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
13 public PmlCollection(IEnumerable<PmlElement> Elements) {
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
14 pItems.AddRange(Elements);
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
15 }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
16 public PmlCollection(params String[] Elements) {
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
17 foreach (String s in Elements) pItems.Add(s);
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
18 }
0
3ab940a0c7a0 Initial commit
Ivo Smits <Ivo@UCIS.nl>
parents:
diff changeset
19
103
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
20 public PmlElement Add(PmlElement Element) {
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
21 pItems.Add(Element);
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
22 return Element;
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
23 }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
24 public void Remove(PmlElement Element) {
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
25 pItems.Remove(Element);
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
26 }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
27 public void RemoveAt(int Index) {
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
28 pItems.RemoveAt(Index);
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
29 }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
30 public void Clear() {
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
31 pItems.Clear();
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
32 }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
33 public bool Contains(PmlElement item) {
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
34 return pItems.Contains(item);
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
35 }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
36 public void CopyTo(PmlElement[] array, int arrayIndex) {
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
37 pItems.CopyTo(array, arrayIndex);
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
38 }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
39 public int Count { get { return pItems.Count; } }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
40 public bool IsReadOnly { get { return false; } }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
41 public IEnumerator<PmlElement> GetEnumerator() { return pItems.GetEnumerator(); }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
42 IEnumerator IEnumerable.GetEnumerator() { return pItems.GetEnumerator(); }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
43 bool ICollection<PmlElement>.Remove(PmlElement item) { return pItems.Remove(item); }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
44 void ICollection<PmlElement>.Add(PmlElement item) { Add(item); }
0
3ab940a0c7a0 Initial commit
Ivo Smits <Ivo@UCIS.nl>
parents:
diff changeset
45
103
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
46 public override PmlType Type { get { return PmlType.Collection; } }
0
3ab940a0c7a0 Initial commit
Ivo Smits <Ivo@UCIS.nl>
parents:
diff changeset
47
103
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
48 public override object ToObject() { return pItems; }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
49 public override string ToString() { return null; }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
50 public override bool ToBoolean() { return pItems.Count > 0; }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
51 public override byte ToByte() { return (Byte)pItems.Count; }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
52 public override decimal ToDecimal() { return pItems.Count; }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
53 public override double ToDouble() { return pItems.Count; }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
54 public override short ToInt16() { return (Int16)pItems.Count; }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
55 public override int ToInt32() { return pItems.Count; }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
56 public override long ToInt64() { return pItems.Count; }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
57 public override sbyte ToSByte() { return (SByte)pItems.Count; }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
58 public override float ToSingle() { return pItems.Count; }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
59 public override ushort ToUInt16() { return (UInt16)pItems.Count; }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
60 public override uint ToUInt32() { return (UInt32)pItems.Count; }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
61 public override ulong ToUInt64() { return (UInt64)pItems.Count; }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
62 public override char ToChar() { return '\0'; }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
63 public override byte[] ToByteArray() { return null; }
0
3ab940a0c7a0 Initial commit
Ivo Smits <Ivo@UCIS.nl>
parents:
diff changeset
64
103
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
65 //public override PmlElement GetChild(string name) { return GetChild(name); }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
66 public override PmlElement GetChild(int index) { return pItems[index]; }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
67 public override IEnumerable<PmlElement> GetChildren() { return pItems; }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
68 public override IEnumerable<KeyValuePair<String, PmlElement>> GetNamedChildren() {
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
69 KeyValuePair<String, PmlElement>[] kvps = new KeyValuePair<string, PmlElement>[pItems.Count];
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
70 for (int i = 0; i < kvps.Length; i++) kvps[i] = new KeyValuePair<string, PmlElement>(null, pItems[i]);
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
71 return kvps;
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
72 }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
73 public override int GetChildCount() { return pItems.Count; }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
74 public override void AddChild(string name, PmlElement value) { Add(value); }
8fe322656807 Cleanup some old PML code
Ivo Smits <Ivo@UCIS.nl>
parents: 1
diff changeset
75 public override void AddChild(PmlElement value) { Add(value); }
0
3ab940a0c7a0 Initial commit
Ivo Smits <Ivo@UCIS.nl>
parents:
diff changeset
76 }
3ab940a0c7a0 Initial commit
Ivo Smits <Ivo@UCIS.nl>
parents:
diff changeset
77 }