1
// PersistentParameter.cs
3
// This file was derived from a file from #Develop.
5
// Copyright (C) 2001-2007 Mike Krüger <mkrueger@novell.com>
7
// This program is free software; you can redistribute it and/or modify
8
// it under the terms of the GNU General Public License as published by
9
// the Free Software Foundation; either version 2 of the License, or
10
// (at your option) any later version.
12
// This program is distributed in the hope that it will be useful,
13
// but WITHOUT ANY WARRANTY; without even the implied warranty of
14
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
// GNU General Public License for more details.
17
// You should have received a copy of the GNU General Public License
18
// along with this program; if not, write to the Free Software
19
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22
using System.Reflection;
23
using MonoDevelop.Core;
25
namespace MonoDevelop.Projects.Parser
28
internal sealed class PersistentParameter
30
public static DefaultParameter Resolve (IParameter source, IMember declaringMember, ITypeResolver typeResolver)
32
IReturnType returnType = PersistentReturnType.Resolve (source.ReturnType, typeResolver);
33
DefaultParameter par = new DefaultParameter (declaringMember, source.Name, returnType);
34
par.Documentation = source.Documentation;
35
par.Modifier = source.Modifier;
40
public static DefaultParameter Read (BinaryReader reader, IMember declaringMember, INameDecoder nameTable)
42
string name = PersistentHelper.ReadString (reader, nameTable);
43
string docs = PersistentHelper.ReadString (reader, nameTable);
44
byte mod = reader.ReadByte ();
45
IReturnType returnType = PersistentReturnType.Read (reader, nameTable);
47
DefaultParameter param = new DefaultParameter (declaringMember, name, returnType);
48
param.Modifier = (ParameterModifier) mod;
49
param.Documentation = docs;
54
public static void WriteTo (IParameter p, BinaryWriter writer, INameEncoder nameTable)
56
PersistentHelper.WriteString (p.Name, writer, nameTable);
57
PersistentHelper.WriteString (p.Documentation, writer, nameTable);
58
writer.Write((byte)p.Modifier);
59
PersistentReturnType.WriteTo (p.ReturnType, writer, nameTable);