예제 #1
0
 internal virtual void AddClassStats(ClassUsageStats classStats
     )
 {
     _classUsageStats = ((TreeStringObject) Tree.Add(_classUsageStats, new TreeStringObject
         (classStats.ClassName(), classStats)));
 }
예제 #2
0
		public override object ShallowClone()
		{
			Db4objects.Db4o.Foundation.TreeStringObject tso = new Db4objects.Db4o.Foundation.TreeStringObject
				(_key, _value);
			return ShallowCloneInternal(tso);
		}
예제 #3
0
		private void PrintStats(IObjectContainer con, string filename)
		{
			Tree unavailable = new TreeString(Remove);
			Tree noConstructor = new TreeString(Remove);
			// one element too many, substract one in the end
			IStoredClass[] internalClasses = con.Ext().StoredClasses();
			for (int i = 0; i < internalClasses.Length; i++)
			{
				string internalClassName = internalClasses[i].GetName();
				Type clazz = ReflectPlatform.ForName(internalClassName);
				if (clazz == null)
				{
					unavailable = unavailable.Add(new TreeString(internalClassName));
				}
				else
				{
					if (!CanCallConstructor(internalClassName))
					{
						noConstructor = noConstructor.Add(new TreeString(internalClassName));
					}
				}
			}
			unavailable = unavailable.RemoveLike(new TreeString(Remove));
			noConstructor = noConstructor.RemoveLike(new TreeString(Remove));
			if (unavailable != null)
			{
				PrintHeader("UNAVAILABLE");
				unavailable.Traverse(new _IVisitor4_80());
			}
			if (noConstructor != null)
			{
				PrintHeader("NO PUBLIC CONSTRUCTOR");
				noConstructor.Traverse(new _IVisitor4_88());
			}
			PrintHeader("CLASSES");
			Sharpen.Runtime.Out.WriteLine("Number of objects per class:");
			ByRef ids = ByRef.NewInstance(new TreeInt(0));
			if (internalClasses.Length > 0)
			{
				Tree all = new TreeStringObject(internalClasses[0].GetName(), internalClasses[0]);
				for (int i = 1; i < internalClasses.Length; i++)
				{
					all = all.Add(new TreeStringObject(internalClasses[i].GetName(), internalClasses[
						i]));
				}
				all.Traverse(new _IVisitor4_107(ids));
			}
			PrintHeader("SUMMARY");
			Sharpen.Runtime.Out.WriteLine("File: " + filename);
			Sharpen.Runtime.Out.WriteLine("Stored classes: " + internalClasses.Length);
			if (unavailable != null)
			{
				Sharpen.Runtime.Out.WriteLine("Unavailable classes: " + unavailable.Size());
			}
			if (noConstructor != null)
			{
				Sharpen.Runtime.Out.WriteLine("Classes without public constructors: " + noConstructor
					.Size());
			}
			Sharpen.Runtime.Out.WriteLine("Total number of objects: " + (((Tree)ids.value).Size
				() - 1));
		}
예제 #4
0
 public override object ShallowClone()
 {
     Db4objects.Db4o.Foundation.TreeStringObject tso = new Db4objects.Db4o.Foundation.TreeStringObject
                                                           (_key, _value);
     return(ShallowCloneInternal(tso));
 }