OSDN Git Service

initial build for opensource
[applistation/AppliStation.git] / na-get-lib / NaGet.Packages / Package.cs
1 using System.Xml.Serialization;\r
2 \r
3 namespace NaGet.Packages\r
4 {\r
5         /// <summary>\r
6         /// インストーラの種類を表す。\r
7         /// </summary>\r
8         public enum InstallerType\r
9         {\r
10                 /// <summary>\r
11                 /// インストーラ\r
12                 /// </summary>\r
13                 [XmlEnum(Name="installer")]\r
14                 EXEC_INSTALLER,\r
15                 /// <summary>\r
16                 /// Microsoft Software Installer\r
17                 /// </summary>\r
18                 [XmlEnum(Name="msi")]\r
19                 MSI_PACKAGE,\r
20                 /// <summary>\r
21                 /// 自己解凍書庫を含む書庫一般\r
22                 /// </summary>\r
23                 [XmlEnum(Name="archive")]\r
24                 ARCHIVE,\r
25                 /// <summary>\r
26                 /// インストールできない単なるデータ(BIOSなど)\r
27                 /// </summary>\r
28                 [XmlEnum(Name="cannotinstall")]\r
29                 CANNOT_INSTALL,\r
30         }\r
31         \r
32         /// <summary>\r
33         /// パッケージ情報を格納するクラス\r
34         /// </summary>\r
35         public class Package\r
36         {\r
37                 /// <summary>\r
38                 /// パッケージ名\r
39                 /// </summary>\r
40                 public string Name;\r
41 \r
42                 /// <summary>\r
43                 /// バージョン文字列\r
44                 /// </summary>\r
45                 public string Version;\r
46 \r
47                 /// <summary>\r
48                 /// パッケージの概要\r
49                 /// </summary>\r
50                 public string Summary;\r
51                 \r
52                 /// <summary>\r
53                 /// パッケージの解説\r
54                 /// </summary>\r
55                 public string Description;\r
56 \r
57                 /// <summary>\r
58                 /// 公式サイトのURL\r
59                 /// </summary>\r
60                 public LocationEntry Url;\r
61                 \r
62                 /// <summary>\r
63                 /// 製作者の名前\r
64                 /// </summary>\r
65                 public string Author;\r
66                 \r
67                 /// <summary>\r
68                 /// インストーラのタイプ\r
69                 /// </summary>\r
70                 public InstallerType Type;\r
71                 \r
72                                 /// <summary>\r
73                 /// インストーラが書庫内に入っているかのフラグ\r
74                 /// </summary>\r
75                 public bool ArchivedInstaller = false;\r
76                 \r
77                 /// <summary>\r
78                 /// アンインストーラのレジストリのキー\r
79                 /// </summary>\r
80                 public string UninstallerKey;\r
81                 \r
82                 /// <summary>\r
83                 /// インストールスクリプト(MSBuildドキュメント)\r
84                 /// </summary>\r
85                 public string InstallScript;\r
86                 \r
87                 /// <summary>\r
88                 /// アーカイブインストーラのときのSystem32のコピー\r
89                 /// </summary>\r
90                 public string System32CopyFiles;\r
91                 \r
92                 /// <summary>\r
93                 /// インストーラのリソースの配列\r
94                 /// </summary>\r
95                 [XmlElement]\r
96                 public Installer[] Installer;\r
97 \r
98                 /// <summary>\r
99                 /// 必要とされるパッケージの配列\r
100                 /// </summary>\r
101                 [XmlArray(IsNullable=true),XmlArrayItem("Entry")]\r
102                 public Entry[] Requires;\r
103                 \r
104                 /// <summary>\r
105                 /// 競合するパッケージの配列\r
106                 /// </summary>\r
107                 [XmlArray(IsNullable=true),XmlArrayItem("Entry")]\r
108                 public Entry[] Conflicts;\r
109                 \r
110                 /// <summary>\r
111                 /// タグ\r
112                 /// </summary>\r
113                 public string Tags;\r
114                 \r
115                 /// <summary>\r
116                 /// ライセンス\r
117                 /// </summary>\r
118                 public string License;\r
119                 \r
120                 /// <summary>\r
121                 /// 所属するパッケージリスト名称\r
122                 /// </summary>\r
123                 public string PackageListName;\r
124         }\r
125 \r
126         /// <summary>\r
127         /// パッケージ参照を示すクラス\r
128         /// </summary>\r
129         public class Entry\r
130         {\r
131                 /// <summary>\r
132                 /// パッケージ名\r
133                 /// </summary>\r
134                 [XmlAttribute]\r
135                 public string Name;\r
136                 /// <summary>\r
137                 /// パッケージのバージョン比較の式\r
138                 /// </summary>\r
139                 [XmlAttribute]\r
140                 public string Flags;\r
141                 /// <summary>\r
142                 /// パッケージのバージョン\r
143                 /// </summary>\r
144                 public string Version;\r
145         }\r
146 \r
147         public class Installer\r
148         {\r
149                 /// <summary>\r
150                 /// コンストラクタ\r
151                 /// </summary>\r
152                 public Installer()\r
153                 {\r
154                 }\r
155                 \r
156                 public Platform Platform;\r
157                 \r
158                 /// <summary>\r
159                 /// ダウンロードリソースURLの配列\r
160                 /// </summary>\r
161                 public LocationEntry Url;\r
162                 \r
163                 /// <summary>\r
164                 /// ファイル検証用ハッシュ\r
165                 /// </summary>\r
166                 [XmlElement]\r
167                 public HashValue[] Hash;\r
168         }\r
169         \r
170         /// <summary>\r
171         /// リソースの位置を示すクラス\r
172         /// </summary>\r
173         public class LocationEntry\r
174         {\r
175                 // TODO LocationEntryは果たして必要なのかの、考察\r
176                 \r
177                 /// <summary>\r
178                 /// コンストラクタ\r
179                 /// </summary>\r
180                 public LocationEntry()\r
181                 {\r
182                 }\r
183 \r
184                 /// <summary>\r
185                 /// コンストラクタ\r
186                 /// </summary>\r
187                 /// <param name="sHref">リソースのURL</param>\r
188                 public LocationEntry(string sHref)\r
189                 {\r
190                         Href = sHref;\r
191                 }\r
192 \r
193                 /// <summary>\r
194                 /// リソースのURL\r
195                 /// </summary>\r
196                 [XmlAttribute]\r
197                 public string Href;\r
198         }\r
199 }\r