build fix
[mono.git] / mcs / class / Mono.GetOptions / OptionAttribute.cs
1 //
2 // OptionAttribute.cs
3 //
4 // Author: Rafael Teixeira (rafaelteixeirabr@hotmail.com)
5 //
6 // (C) 2002 Rafael Teixeira
7 //
8 using System;
9
10 namespace Mono.GetOptions
11 {
12
13         [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property | AttributeTargets.Method)]
14         public class OptionAttribute : Attribute
15         {
16                 public string ShortDescription;
17                 public char ShortForm;
18                 public string LongForm;
19                 public string AlternateForm;
20                 public int MaxOccurs; // negative means there is no limit
21
22                 private void SetValues(
23                         string shortDescription, 
24                         char shortForm, 
25                         string longForm, 
26                         string alternateForm,
27                         int maxOccurs)
28                 {
29                         ShortDescription = shortDescription; 
30                         ShortForm = shortForm;
31                         LongForm = longForm;
32                         MaxOccurs = maxOccurs;
33                         AlternateForm = alternateForm;
34                 }
35
36                 public OptionAttribute(string shortDescription)
37                 {
38                         SetValues(shortDescription, ' ', string.Empty, string.Empty, 1);
39                 }
40
41                 public OptionAttribute(string shortDescription, char shortForm)
42                 {
43                         SetValues(shortDescription, shortForm, string.Empty, string.Empty, 1);
44                 }
45
46                 public OptionAttribute(string shortDescription, char shortForm, string longForm)
47                 {
48                         SetValues(shortDescription, shortForm, longForm, string.Empty, 1);
49                 }
50
51                 public OptionAttribute(string shortDescription, string longForm)
52                 {
53                         SetValues(shortDescription, ' ', longForm, string.Empty, 1); 
54                 }
55
56                 public OptionAttribute(string shortDescription, char shortForm, string longForm, string alternateForm)
57                 {
58                         SetValues(shortDescription, shortForm, longForm, alternateForm, 1);
59                 }
60
61                 public OptionAttribute(string shortDescription, string longForm, string alternateForm)
62                 {
63                         SetValues(shortDescription, ' ', longForm, alternateForm, 1); 
64                 }
65
66                 public OptionAttribute(int maxOccurs, string shortDescription)
67                 {
68                         SetValues(shortDescription, ' ', string.Empty, string.Empty, maxOccurs); 
69                 }
70
71                 public OptionAttribute(int maxOccurs, string shortDescription, char shortForm)
72                 {
73                         SetValues(shortDescription, shortForm, string.Empty, string.Empty, maxOccurs);
74                 }
75
76                 public OptionAttribute(int maxOccurs, string shortDescription, char shortForm, string longForm)
77                 {
78                         SetValues(shortDescription, shortForm, longForm, string.Empty, maxOccurs); 
79                 }
80
81                 public OptionAttribute(int maxOccurs, string shortDescription, string longForm)
82                 {
83                         SetValues(shortDescription, ' ', longForm, string.Empty, maxOccurs); 
84                 }
85                 
86                 public OptionAttribute(int maxOccurs, string shortDescription, char shortForm, string longForm, string alternateForm)
87                 {
88                         SetValues(shortDescription, shortForm, longForm, alternateForm, maxOccurs); 
89                 }
90
91                 public OptionAttribute(int maxOccurs, string shortDescription, string longForm, string alternateForm)
92                 {
93                         SetValues(shortDescription, ' ', longForm, alternateForm, maxOccurs); 
94                 }
95         }
96 }