Author: mkrueger
Date: 2008-02-06 22:06:21 -0500 (Wed, 06 Feb 2008)
New Revision: 95108

Added:
   
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/AmbienceService.cs
   
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/OutputFlags.cs
Modified:
   trunk/monodevelop/main/src/core/MonoDevelop.Ide/ChangeLog
   trunk/monodevelop/main/src/core/MonoDevelop.Ide/Makefile.am
   
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/Ambience.cs
   
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/NetAmbience.cs
   
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/ClassType.cs
   
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/DomType.cs
   trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/IType.cs
   
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/Modifiers.cs
   trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.mdp
Log:
* MonoDevelop.Ide.Dom.Output/OutputFlags.cs,
  MonoDevelop.Ide.Dom.Output/Ambience.cs,
  MonoDevelop.Ide.Dom.Output/AmbienceService.cs,
  MonoDevelop.Ide.Dom.Output/NetAmbience.cs,
  MonoDevelop.Ide.Dom/DomType.cs, MonoDevelop.Ide.Dom/ClassType.cs,
  MonoDevelop.Ide.Dom/Modifiers.cs, MonoDevelop.Ide.Dom/IType.cs:
  Worked on Dom output.

Modified: trunk/monodevelop/main/src/core/MonoDevelop.Ide/ChangeLog
===================================================================
--- trunk/monodevelop/main/src/core/MonoDevelop.Ide/ChangeLog   2008-02-07 
03:05:50 UTC (rev 95107)
+++ trunk/monodevelop/main/src/core/MonoDevelop.Ide/ChangeLog   2008-02-07 
03:06:21 UTC (rev 95108)
@@ -1,3 +1,13 @@
+2008-02-07  Mike Krüger <[EMAIL PROTECTED]> 
+
+       * MonoDevelop.Ide.Dom.Output/OutputFlags.cs,
+         MonoDevelop.Ide.Dom.Output/Ambience.cs,
+         MonoDevelop.Ide.Dom.Output/AmbienceService.cs,
+         MonoDevelop.Ide.Dom.Output/NetAmbience.cs,
+         MonoDevelop.Ide.Dom/DomType.cs, MonoDevelop.Ide.Dom/ClassType.cs,
+         MonoDevelop.Ide.Dom/Modifiers.cs, MonoDevelop.Ide.Dom/IType.cs: Worked
+         on Dom output.
+
 2008-02-06  Mike Krüger <[EMAIL PROTECTED]> 
 
        * MonoDevelop.Ide.Gui.Pads/NodeState.cs,

Modified: trunk/monodevelop/main/src/core/MonoDevelop.Ide/Makefile.am
===================================================================
--- trunk/monodevelop/main/src/core/MonoDevelop.Ide/Makefile.am 2008-02-07 
03:05:50 UTC (rev 95107)
+++ trunk/monodevelop/main/src/core/MonoDevelop.Ide/Makefile.am 2008-02-07 
03:06:21 UTC (rev 95108)
@@ -97,7 +97,9 @@
        MonoDevelop.Ide.Commands/ViewCommands.cs \
        MonoDevelop.Ide.Commands/WindowCommands.cs \
        MonoDevelop.Ide.Dom.Output/Ambience.cs \
+       MonoDevelop.Ide.Dom.Output/AmbienceService.cs \
        MonoDevelop.Ide.Dom.Output/NetAmbience.cs \
+       MonoDevelop.Ide.Dom.Output/OutputFlags.cs \
        MonoDevelop.Ide.Dom.Parser/AbstractParser.cs \
        MonoDevelop.Ide.Dom.Parser/IParser.cs \
        MonoDevelop.Ide.Dom.Parser/ProjectDom.cs \

Modified: 
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/ClassType.cs
===================================================================
--- 
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/ClassType.cs
    2008-02-07 03:05:50 UTC (rev 95107)
+++ 
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/ClassType.cs
    2008-02-07 03:06:21 UTC (rev 95108)
@@ -31,11 +31,11 @@
 namespace MonoDevelop.Ide.Dom
 {
        public enum ClassType {
-               Unknown,
-               Class,
-               Enum,
-               Interface,
-               Struct,
-               Delegate
+               Unknown   = 0,
+               Class     = 1,
+               Enum      = 2,
+               Interface = 3,
+               Struct    = 4,
+               Delegate  = 5
        }
 }

Modified: 
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/DomType.cs
===================================================================
--- 
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/DomType.cs  
    2008-02-07 03:05:50 UTC (rev 95107)
+++ 
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/DomType.cs  
    2008-02-07 03:06:21 UTC (rev 95108)
@@ -35,17 +35,19 @@
        {
                protected object sourceProject;
                protected List<ICompilationUnit> compilationUnits = new 
List<ICompilationUnit> ();
-               protected IType baseType;
+               protected IReturnType baseType;
                protected List<TypeParameter> typeParameters = new 
List<TypeParameter> ();
                protected List<IDomItem> members = new List<IDomItem> ();
+               protected List<IReturnType> implementedInterfaces = new 
List<IReturnType> ();
                protected ClassType classType = ClassType.Unknown;
                
+               
                public object SourceProject {
                        get {
                                return sourceProject;
                        }
                }
-               
+
                public IEnumerable<ICompilationUnit> CompilationUnits {
                        get {
                                return compilationUnits;
@@ -58,19 +60,25 @@
                        }
                }
                
-               public IType BaseType {
+               public IReturnType BaseType {
                        get {
                                return baseType;
                        }
                }
                
+               public IEnumerable<IReturnType> ImplementedInterfaces {
+                       get {
+                               return implementedInterfaces;
+                       }
+               }
+               
                public IEnumerable<TypeParameter> TypeParameters {
                        get {
                                return typeParameters;
                        }
                }
                
-               public IEnumerable<IDomItem> Members {
+               public virtual IEnumerable<IDomItem> Members {
                        get {
                                return members;
                        }

Modified: 
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/IType.cs
===================================================================
--- 
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/IType.cs    
    2008-02-07 03:05:50 UTC (rev 95107)
+++ 
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/IType.cs    
    2008-02-07 03:06:21 UTC (rev 95108)
@@ -45,10 +45,14 @@
                        get;
                }
                
-               IType BaseType {
+               IReturnType BaseType {
                        get;
                }
                
+               IEnumerable<IReturnType> ImplementedInterfaces {
+                       get;
+               }
+               
                IEnumerable<TypeParameter> TypeParameters {
                        get;
                }

Modified: 
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/Modifiers.cs
===================================================================
--- 
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/Modifiers.cs
    2008-02-07 03:05:50 UTC (rev 95107)
+++ 
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/Modifiers.cs
    2008-02-07 03:06:21 UTC (rev 95108)
@@ -61,7 +61,7 @@
                ProtectedAndInternal = Internal | Protected,
                ProtectedOrInternal = 0x8000,
                SpecialName         = 0x20000,
-               
                Final               = 0x40000,
+               Literal             = 0x80000,
                VisibilityMask = Private | Internal | Protected | Public,
        }}

Modified: 
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/Ambience.cs
===================================================================
--- 
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/Ambience.cs
      2008-02-07 03:05:50 UTC (rev 95107)
+++ 
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/Ambience.cs
      2008-02-07 03:06:21 UTC (rev 95108)
@@ -33,7 +33,7 @@
 
 namespace MonoDevelop.Ide.Dom.Output
 {
-       public class Ambience : IDomVisitor
+       public abstract class Ambience
        {
                string name;
                protected Dictionary<Modifiers, string> modifiers = new 
Dictionary<Modifiers, string> ();
@@ -81,76 +81,30 @@
                        }
                        return result.ToString ();
                }
-               
-               
-               public virtual object Visit 
(MonoDevelop.Ide.Dom.ICompilationUnit unit, object data)
+               #region FlagShortcuts
+               protected static bool UseFullName (OutputFlags outputFlags)
                {
-                       return "";
+                       return (outputFlags & OutputFlags.UseFullName) == 
OutputFlags.UseFullName;
                }
-
-               public virtual object Visit (MonoDevelop.Ide.Dom.IAttribute 
attr, object data)
+               protected static bool IncludeParameters (OutputFlags 
outputFlags)
                {
-                       return "";
-//                     StringBuilder arguments = new StringBuilder ();
-//                     arguments.Append ('(');
-//                     foreach (object o in attr.PositionalArguments) {
-//                             if (arguments.Length > 1)
-//                                     arguments.Append (',');
-//                             arguments.Append (o.ToString ());
-//                     }
-//                     foreach (KeyValuePair<string, object> pair in 
attr.PositionalArguments) {
-//                             if (arguments.Length > 1)
-//                                     arguments.Append (',');
-//                             arguments.Append (pair.Key.ToString ());
-//                             arguments.Append ('=');
-//                             arguments.Append (pair.Value.ToString ());
-//                     }
-//                             
-//                     arguments.Append (')');
-//                     return StringParserService.Parse 
(constructs[Attribute], new string[,] {
-//                             {"Type", Visit (attr.AttributeType, 
data).ToString ()},
-//                             {"ArgumentList", arguments.ToString}
-//                     });
+                       return (outputFlags & OutputFlags.IncludeParameters) == 
OutputFlags.IncludeParameters;
                }
-
-               public virtual object Visit (MonoDevelop.Ide.Dom.IType type, 
object data)
+               protected static bool IncludeReturnType (OutputFlags 
outputFlags)
                {
-                       return "";
+                       return (outputFlags & OutputFlags.IncludeReturnType) == 
OutputFlags.IncludeReturnType;
                }
-
-               public virtual object Visit (MonoDevelop.Ide.Dom.IField field, 
object data)
+               protected static bool IncludeParameterName (OutputFlags 
outputFlags)
                {
-                       return "";
+                       return (outputFlags & OutputFlags.IncludeParameterName) 
== OutputFlags.IncludeParameterName;
                }
-
-               public virtual object Visit (MonoDevelop.Ide.Dom.IMethod 
method, object data)
-               {
-                       return "";
-               }
-
-               public virtual object Visit (MonoDevelop.Ide.Dom.IProperty 
property, object data)
-               {
-                       return "";
-               }
-
-               public virtual object Visit (MonoDevelop.Ide.Dom.IEvent e, 
object data)
-               {
-                       return "";
-               }
-
-               public virtual object Visit (MonoDevelop.Ide.Dom.IReturnType 
type, object data)
-               {
-                       return "";
-               }
-
-               public virtual object Visit (MonoDevelop.Ide.Dom.IParameter 
parameter, object data)
-               {
-                       return "";
-               }
-
-               public virtual object Visit (MonoDevelop.Ide.Dom.IUsing u, 
object data)
-               {
-                       return "";
-               }
+               #endregion                      
+               
+               public abstract string GetString (IField field, OutputFlags 
flags);
+               public abstract string GetString (IProperty property, 
OutputFlags flags);
+               public abstract string GetString (IReturnType returnType, 
OutputFlags flags);
+               public abstract string GetString (IMethod method, OutputFlags 
flags);
+               public abstract string GetString (IParameter parameter, 
OutputFlags flags);
+               
        }
 }

Added: 
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/AmbienceService.cs
===================================================================
--- 
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/AmbienceService.cs
       2008-02-07 03:05:50 UTC (rev 95107)
+++ 
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/AmbienceService.cs
       2008-02-07 03:06:21 UTC (rev 95108)
@@ -0,0 +1,41 @@
+//
+// AmbienceService.cs
+//
+// Author:
+//   Mike Krüger <[EMAIL PROTECTED]>
+//
+// Copyright (C) 2008 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+
+namespace MonoDevelop.Ide.Dom.Output
+{
+       public static class AmbienceService
+       {
+               public static Ambience Default {
+                       get {
+                               return new NetAmbience ();
+                       }
+               }
+       }
+}

Modified: 
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/NetAmbience.cs
===================================================================
--- 
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/NetAmbience.cs
   2008-02-07 03:05:50 UTC (rev 95107)
+++ 
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/NetAmbience.cs
   2008-02-07 03:06:21 UTC (rev 95108)
@@ -27,11 +27,13 @@
 //
 
 using System;
+using System.Text;
 
 namespace MonoDevelop.Ide.Dom.Output
 {
        public class NetAmbience : Ambience
        {
+               const string nullString = "Null";
                public NetAmbience () : base ("NET")
                {
                        classTypes[ClassType.Class]     = "Class";
@@ -68,5 +70,100 @@
                        modifiers[Modifiers.ProtectedAndInternal] = "Protected 
Internal";
                        modifiers[Modifiers.ProtectedOrInternal]  = "Internal 
Protected";
                }
+               
+               public override string GetString (IProperty property, 
OutputFlags flags)
+               {
+                       if (property == null)
+                               return nullString;
+                       StringBuilder result = new StringBuilder ();
+                       if (UseFullName (flags)) {
+                               result.Append (property.FullName);
+                       } else {
+                               result.Append (property.Name);
+                       }
+                       if (IncludeReturnType (flags)) {
+                               result.Append (" : ");
+                               result.Append (GetString (property.ReturnType, 
flags));
+                       }
+                       return result.ToString ();
+               }
+               
+               public override string GetString (IField field, OutputFlags 
flags)
+               {
+                       if (field == null)
+                               return nullString;
+                       StringBuilder result = new StringBuilder ();
+                       if (UseFullName (flags)) {
+                               result.Append (field.FullName);
+                       } else {
+                               result.Append (field.Name);
+                       }
+                       if (IncludeReturnType (flags)) {
+                               result.Append (" : ");
+                               result.Append (GetString (field.ReturnType, 
flags));
+                       }
+                       return result.ToString ();
+               }
+               
+               public override string GetString (IReturnType returnType, 
OutputFlags flags)
+               {
+                       if (returnType == null)
+                               return nullString;
+                       StringBuilder result = new StringBuilder ();
+                       if (UseFullName (flags)) {
+                               result.Append (returnType.FullName);
+                       } else {
+                               result.Append (returnType.Name);
+                       }
+                       return result.ToString ();
+               }
+               
+               public override string GetString (IMethod method, OutputFlags 
flags)
+               {
+                       if (method == null)
+                               return nullString;
+                       StringBuilder result = new StringBuilder ();
+                       if (UseFullName (flags)) {
+                               result.Append (method.FullName);
+                       } else {
+                               result.Append (method.Name);
+                       }
+                       
+                       if (IncludeParameters (flags)) {
+                               result.Append ("(");
+                               bool first = true;
+                               foreach (IParameter parameter in 
method.Parameters) {
+                                       if (!first)
+                                               result.Append (", ");
+                                       result.Append (GetString (parameter, 
flags));
+                                       first = false;
+                               }
+                               result.Append (")");
+                       }
+                               
+                       if (IncludeReturnType (flags)) {
+                               result.Append (" : ");
+                               result.Append (GetString (method.ReturnType, 
flags));
+                       }
+                       
+                       return result.ToString ();
+               }
+               
+               public override string GetString (IParameter parameter, 
OutputFlags flags)
+               {
+                       if (parameter == null)
+                               return nullString;
+                       StringBuilder result = new StringBuilder ();
+                       if (IncludeParameterName (flags)) {
+                               result.Append (parameter.Name);
+                               if (IncludeReturnType (flags)) {
+                                       result.Append (" : ");
+                                       result.Append (GetString 
(parameter.ReturnType, flags));
+                               }                               
+                       } else {
+                               result.Append (GetString (parameter.ReturnType, 
flags));
+                       }
+                       return result.ToString ();
+               }
        }
 }

Added: 
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/OutputFlags.cs
===================================================================
--- 
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/OutputFlags.cs
   2008-02-07 03:05:50 UTC (rev 95107)
+++ 
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/OutputFlags.cs
   2008-02-07 03:06:21 UTC (rev 95108)
@@ -0,0 +1,45 @@
+//
+// OutputFlags.cs
+//
+// Author:
+//   Mike Krüger <[EMAIL PROTECTED]>
+//
+// Copyright (C) 2008 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+
+namespace MonoDevelop.Ide.Dom.Output
+{
+       [Flags]
+       public enum OutputFlags {
+               None = 0,
+               
+               // Flags
+               UseFullName              = 0x1,
+               IncludeReturnType        = 0x2,
+               IncludeParameters        = 0x4,
+               IncludeParameterName     = 0x8,
+               
+               ClassBrowserEntries = IncludeReturnType | IncludeParameters
+       }
+}

Modified: trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.mdp
===================================================================
--- trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.mdp 
2008-02-07 03:05:50 UTC (rev 95107)
+++ trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.mdp 
2008-02-07 03:06:21 UTC (rev 95108)
@@ -377,6 +377,8 @@
     <File name="MonoDevelop.Ide.Dom/TypeParameter.cs" subtype="Code" 
buildaction="Compile" />
     <File name="MonoDevelop.Ide.Gui.Content/IFoldable.cs" subtype="Code" 
buildaction="Compile" />
     <File name="MonoDevelop.Ide.Gui/MonoDevelopTreeView.cs" subtype="Code" 
buildaction="Compile" />
+    <File name="MonoDevelop.Ide.Dom.Output/OutputFlags.cs" subtype="Code" 
buildaction="Compile" />
+    <File name="MonoDevelop.Ide.Dom.Output/AmbienceService.cs" subtype="Code" 
buildaction="Compile" />
   </Contents>
   <References>
     <ProjectReference type="Gac" localcopy="False" refto="System, 
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to