4
// Lluis Sanchez Gual <lluis@novell.com>
6
// Copyright (c) 2006 Novell, Inc (http://www.novell.com)
8
// Permission is hereby granted, free of charge, to any person obtaining a copy
9
// of this software and associated documentation files (the "Software"), to deal
10
// in the Software without restriction, including without limitation the rights
11
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12
// copies of the Software, and to permit persons to whom the Software is
13
// furnished to do so, subject to the following conditions:
15
// The above copyright notice and this permission notice shall be included in
16
// all copies or substantial portions of the Software.
18
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
29
using System.Collections;
30
using MonoDevelop.Core;
31
using MonoDevelop.Projects.Parser;
33
namespace MonoDevelop.Projects.Ambience
35
public abstract class Ambience
37
public static bool ShowAccessibility(ConversionFlags conversionFlags)
39
return (conversionFlags & ConversionFlags.ShowAccessibility) == ConversionFlags.ShowAccessibility;
42
public static bool ShowReturnType (ConversionFlags conversionFlags)
44
return (conversionFlags & ConversionFlags.ShowReturnType) == ConversionFlags.ShowReturnType;
46
public static bool ShowParameters (ConversionFlags conversionFlags)
48
return (conversionFlags & ConversionFlags.ShowParameters) == ConversionFlags.ShowParameters;
52
public static bool ShowParameterNames(ConversionFlags conversionFlags)
54
return (conversionFlags & ConversionFlags.ShowParameterNames) == ConversionFlags.ShowParameterNames;
57
public static bool UseFullyQualifiedNames(ConversionFlags conversionFlags)
59
return (conversionFlags & ConversionFlags.UseFullyQualifiedNames) == ConversionFlags.UseFullyQualifiedNames;
62
public static bool UseIntrinsicTypeNames(ConversionFlags conversionFlags)
64
return (conversionFlags & ConversionFlags.UseIntrinsicTypeNames) == ConversionFlags.UseIntrinsicTypeNames;
67
public static bool ShowMemberModifiers(ConversionFlags conversionFlags)
69
return (conversionFlags & ConversionFlags.ShowMemberModifiers) == ConversionFlags.ShowMemberModifiers;
72
public static bool ShowInheritanceList(ConversionFlags conversionFlags)
74
return (conversionFlags & ConversionFlags.ShowInheritanceList) == ConversionFlags.ShowInheritanceList;
77
public static bool IncludeHTMLMarkup(ConversionFlags conversionFlags)
79
return (conversionFlags & ConversionFlags.IncludeHTMLMarkup) == ConversionFlags.IncludeHTMLMarkup;
82
public static bool IncludePangoMarkup(ConversionFlags conversionFlags)
84
return (conversionFlags & ConversionFlags.IncludePangoMarkup) == ConversionFlags.IncludePangoMarkup;
87
// public static bool UseLinkArrayList(ConversionFlags conversionFlags)
89
// return (conversionFlags & ConversionFlags.UseLinkArrayList) == ConversionFlags.UseLinkArrayList;
92
public static bool UseFullyQualifiedMemberNames(ConversionFlags conversionFlags)
94
return UseFullyQualifiedNames(conversionFlags) && !((conversionFlags & ConversionFlags.QualifiedNamesOnlyForReturnTypes) == ConversionFlags.QualifiedNamesOnlyForReturnTypes);
97
public static bool IncludeBodies(ConversionFlags conversionFlags)
99
return (conversionFlags & ConversionFlags.IncludeBodies) == ConversionFlags.IncludeBodies;
102
public static bool ShowClassModifiers(ConversionFlags conversionFlags)
104
return (conversionFlags & ConversionFlags.ShowClassModifiers) == ConversionFlags.ShowClassModifiers;
107
public static bool ShowGenericParameters(ConversionFlags conversionFlags)
109
return (conversionFlags & ConversionFlags.ShowGenericParameters) == ConversionFlags.ShowGenericParameters;
112
public string Convert(ILanguageItem item)
114
return Convert (item, ConversionFlags.StandardConversionFlags);
117
public string Convert(ILanguageItem item, ConversionFlags conversionFlags)
120
return Convert (item as IClass, conversionFlags);
121
else if (item is IEvent)
122
return Convert (item as IEvent, conversionFlags);
123
else if (item is IField)
124
return Convert (item as IField, conversionFlags);
125
else if (item is IIndexer)
126
return Convert (item as IIndexer, conversionFlags);
127
else if (item is IMethod)
128
return Convert (item as IMethod, conversionFlags);
129
else if (item is IProperty)
130
return Convert (item as IProperty, conversionFlags);
131
else if (item is LocalVariable)
132
return Convert (item as LocalVariable, conversionFlags);
137
public string Convert (IClass c)
139
return Convert(c, ConversionFlags.StandardConversionFlags, null);
142
public string Convert (IClass c, ConversionFlags flags)
144
return Convert(c, flags, null);
147
public string ConvertEnd (IClass c)
149
return ConvertEnd (c, ConversionFlags.StandardConversionFlags);
152
public string Convert (IEvent e)
154
return Convert(e, ConversionFlags.StandardConversionFlags, null);
157
public string Convert (IEvent e, ConversionFlags flags)
159
return Convert(e, flags, null);
162
public string Convert (IField c)
164
return Convert(c, ConversionFlags.StandardConversionFlags, null);
167
public string Convert (IField c, ConversionFlags flags)
169
return Convert(c, flags, null);
172
public string Convert (IIndexer indexer)
174
return Convert(indexer, ConversionFlags.StandardConversionFlags, null);
177
public string Convert (IIndexer indexer, ConversionFlags flags)
179
return Convert(indexer, flags, null);
182
public string Convert (IMethod m)
184
return Convert (m, ConversionFlags.StandardConversionFlags, null);
187
public string Convert (IMethod m, ConversionFlags flags)
189
return Convert (m, flags, null);
192
public string ConvertEnd (IMethod m)
194
return ConvertEnd(m, ConversionFlags.StandardConversionFlags);
197
public string Convert (IProperty property)
199
return Convert (property, ConversionFlags.StandardConversionFlags, null);
202
public string Convert (IProperty property, ConversionFlags flags)
204
return Convert (property, flags, null);
207
public string Convert (IParameter param)
209
return Convert (param, ConversionFlags.StandardConversionFlags, null);
212
public string Convert (IParameter param, ConversionFlags flags)
214
return Convert (param, flags, null);
217
public string Convert (IReturnType returnType)
219
return Convert (returnType, ConversionFlags.StandardConversionFlags, null);
222
public string Convert (IReturnType returnType, ConversionFlags flags)
224
return Convert (returnType, flags, null);
227
public string Convert (ModifierEnum modifier)
229
return Convert(modifier, ConversionFlags.StandardConversionFlags);
232
public string Convert(LocalVariable localVariable)
234
return Convert (localVariable, ConversionFlags.StandardConversionFlags, null);
237
public string Convert(LocalVariable localVariable, ConversionFlags flags)
239
return Convert (localVariable, flags, null);
242
protected string GetResolvedTypeName (string dotNetTypeName, ConversionFlags flags, ITypeNameResolver resolver)
244
if (UseIntrinsicTypeNames (flags)) {
245
string tn = GetIntrinsicTypeName (dotNetTypeName);
246
if (tn != null && tn != dotNetTypeName)
249
if (resolver != null) {
250
string tn = resolver.ResolveName (dotNetTypeName);
254
return dotNetTypeName;
257
public abstract string Convert (IClass c, ConversionFlags flags, ITypeNameResolver resolver);
258
public abstract string ConvertEnd (IClass c, ConversionFlags flags);
259
public abstract string Convert (IEvent e, ConversionFlags flags, ITypeNameResolver resolver);
260
public abstract string Convert (IField c, ConversionFlags flags, ITypeNameResolver resolver);
261
public abstract string Convert (IIndexer indexer, ConversionFlags flags, ITypeNameResolver resolver);
262
public abstract string Convert (IMethod m, ConversionFlags flags, ITypeNameResolver resolver);
263
public abstract string Convert (IProperty property, ConversionFlags flags, ITypeNameResolver resolver);
264
public abstract string ConvertEnd (IMethod m, ConversionFlags flags);
265
public abstract string Convert (IParameter param, ConversionFlags flags, ITypeNameResolver resolver);
266
public abstract string Convert (IReturnType returnType, ConversionFlags flags, ITypeNameResolver resolver);
267
public abstract string Convert (ModifierEnum modifier, ConversionFlags flags);
268
public abstract string Convert (LocalVariable localVariable, ConversionFlags flags, ITypeNameResolver resolver);
270
public abstract string WrapAttribute (string attribute);
271
public abstract string WrapComment (string comment);
272
public abstract string GetIntrinsicTypeName (string dotNetTypeName);