public GeneralizationRelationship Clone(CompositeType derivedType, CompositeType baseType)
		{
			GeneralizationRelationship generalization = 
				new GeneralizationRelationship(derivedType, baseType);
			generalization.CopyFrom(this);
			return generalization;
		}
Esempio n. 2
0
		public void ShowDialog(CompositeType parent)
		{
			if (parent == null)
				return;

			this.parent = parent;
			this.Text = string.Format(Strings.MembersOfType, parent.Name);

			LanguageSpecificInitialization(parent.Language);
			FillMembersList();
			if (lstMembers.Items.Count > 0) {
				lstMembers.Items[0].Focused = true;
				lstMembers.Items[0].Selected = true;
			}

			toolNewField.Visible = parent.SupportsFields;
			toolNewConstructor.Visible = parent.SupportsConstuctors;
			toolNewDestructor.Visible = parent.SupportsDestructors;
			toolNewProperty.Visible = parent.SupportsProperties;
			toolNewEvent.Visible = parent.SupportsEvents;
			toolOverrideList.Visible = parent is SingleInharitanceType;
			toolImplementList.Visible = parent is IInterfaceImplementer;
			toolImplementList.Enabled = (parent is IInterfaceImplementer) &&
				((IInterfaceImplementer) parent).ImplementsInterface;
			toolSepAddNew.Visible = parent is SingleInharitanceType ||
				parent is IInterfaceImplementer;

			errorProvider.SetError(txtSyntax, null);
			errorProvider.SetError(txtName, null);
			errorProvider.SetError(cboType, null);
			error = false;

			base.ShowDialog();
		}
Esempio n. 3
0
		/// <exception cref="BadSyntaxException">
		/// The <paramref name="name"/> does not fit to the syntax.
		/// </exception>
		/// <exception cref="ArgumentException">
		/// The language of <paramref name="parent"/> does not equal.
		/// </exception>
		/// <exception cref="ArgumentNullException">
		/// <paramref name="parent"/> is null.
		/// </exception>
		protected Member(string name, CompositeType parent)
		{
			if (parent == null)
				throw new ArgumentNullException("parent");
			if (parent.Language != this.Language)
				throw new ArgumentException(Strings.ErrorLanguagesDoNotEqual);

			Initializing = true;
			Parent = parent;
			Name = name;
			ValidType = DefaultType;
			Initializing = false;
		}
		private void WriteCompositeType(CompositeType type)
		{
			// Writing type declaration
			WriteLine(type.GetDeclaration());
			WriteLine("{");
			IndentLevel++;

			if (type is ClassType)
			{
				foreach (TypeBase nestedType in ((ClassType) type).NestedChilds)
				{
					WriteType(nestedType);
					AddBlankLine();
				}
			}

			if (type.SupportsFields)
			{
				foreach (Field field in type.Fields)
					WriteField(field);
			}

			bool needBlankLine = (type.FieldCount > 0 && type.OperationCount > 0);

			foreach (Operation operation in type.Operations)
			{
				if (needBlankLine)
					AddBlankLine();
				needBlankLine = true;

				WriteOperation(operation);
			}

			// Writing closing bracket of the type block
			IndentLevel--;
			WriteLine("}");
		}
Esempio n. 5
0
		private void WriteCompositeType(CompositeType type)
		{
			// Writing type declaration
			WriteLine(type.GetDeclaration() + " {");
			AddBlankLine();
			IndentLevel++;

			if (type is ClassType)
			{
				foreach (TypeBase nestedType in ((ClassType) type).NestedChilds)
				{
					WriteType(nestedType);
					AddBlankLine();
				}
			}

			if (type.FieldCount > 0)
			{
				foreach (Field field in type.Fields)
					WriteField(field);
				AddBlankLine();
			}

			if (type.OperationCount > 0)
			{
				foreach (Method method in type.Operations)
				{
					WriteMethod(method);
					AddBlankLine();
				}
			}

			// Writing closing bracket of the type block
			IndentLevel--;
			WriteLine("}");
		}
Esempio n. 6
0
		/// <exception cref="ArgumentNullException">
		/// <paramref name="parent"/> is null.
		/// </exception>
		internal CSharpProperty(CompositeType parent) : this("NewProperty", parent)
		{
		}
Esempio n. 7
0
		/// <exception cref="ArgumentException">
		/// The language of <paramref name="parent"/> does not equal.
		/// </exception>
		/// <exception cref="ArgumentNullException">
		/// <paramref name="parent"/> is null.
		/// </exception>
		protected Destructor(CompositeType parent) : base(null, parent)
		{
		}
Esempio n. 8
0
		/// <exception cref="BadSyntaxException">
		/// The <paramref name="name"/> does not fit to the syntax.
		/// </exception>
		/// <exception cref="ArgumentException">
		/// The language of <paramref name="parent"/> does not equal.
		/// </exception>
		/// <exception cref="ArgumentNullException">
		/// <paramref name="parent"/> is null.
		/// </exception>
		protected Field(string name, CompositeType parent) : base(name, parent)
		{
		}
Esempio n. 9
0
		/// <exception cref="ArgumentException">
		/// The language of <paramref name="parent"/> does not equal.
		/// </exception>
		/// <exception cref="ArgumentNullException">
		/// <paramref name="parent"/> is null.
		/// </exception>
		internal CSharpConstructor(CompositeType parent) : base(parent)
		{
		}
Esempio n. 10
0
 /// <exception cref="BadSyntaxException">
 /// The <paramref name="name"/> does not fit to the syntax.
 /// </exception>
 /// <exception cref="ArgumentException">
 /// The language of <paramref name="parent"/> does not equal.
 /// </exception>
 /// <exception cref="ArgumentNullException">
 /// <paramref name="parent"/> is null.
 /// </exception>
 protected Event(string name, CompositeType parent) : base(name, parent)
 {
 }
Esempio n. 11
0
		/// <exception cref="BadSyntaxException">
		/// The <paramref name="name"/> does not fit to the syntax.
		/// </exception>
		/// <exception cref="ArgumentException">
		/// The language of <paramref name="parent"/> does not equal.
		/// </exception>
		/// <exception cref="ArgumentNullException">
		/// <paramref name="parent"/> is null.
		/// </exception>
		internal CSharpMethod(string name, CompositeType parent) : base(name, parent)
		{
		}
Esempio n. 12
0
 /// <exception cref="BadSyntaxException">
 /// The <paramref name="name"/> does not fit to the syntax.
 /// </exception>
 /// <exception cref="ArgumentException">
 /// The language of <paramref name="parent"/> does not equal.
 /// </exception>
 /// <exception cref="ArgumentNullException">
 /// <paramref name="parent"/> is null.
 /// </exception>
 protected Field(string name, CompositeType parent) : base(name, parent)
 {
 }
Esempio n. 13
0
		/// <exception cref="BadSyntaxException">
		/// The <paramref name="name"/> does not fit to the syntax.
		/// </exception>
		/// <exception cref="ArgumentException">
		/// The language of <paramref name="parent"/> does not equal.
		/// </exception>
		/// <exception cref="ArgumentNullException">
		/// <paramref name="parent"/> is null.
		/// </exception>
		internal CSharpField(string name, CompositeType parent) : base(name, parent)
		{
			IsConstant = false;
		}
Esempio n. 14
0
 public abstract Operation Clone(CompositeType newParent);
Esempio n. 15
0
 /// <exception cref="BadSyntaxException">
 /// The <paramref name="name"/> does not fit to the syntax.
 /// </exception>
 /// <exception cref="ArgumentException">
 /// The language of <paramref name="parent"/> does not equal.
 /// </exception>
 protected Property(string name, CompositeType parent) :
     base(name, parent)
 {
 }
Esempio n. 16
0
 /// <exception cref="BadSyntaxException">
 /// The <paramref name="name"/> does not fit to the syntax.
 /// </exception>
 /// <exception cref="ArgumentException">
 /// The language of <paramref name="parent"/> does not equal.
 /// </exception>
 /// <exception cref="ArgumentNullException">
 /// <paramref name="parent"/> is null.
 /// </exception>
 protected Operation(string name, CompositeType parent) : base(name, parent)
 {
     argumentList = Language.CreateParameterCollection();
 }
Esempio n. 17
0
 /// <exception cref="ArgumentException">
 /// <paramref name="operation"/> cannot be overridden.
 /// </exception>
 /// <exception cref="ArgumentNullException">
 /// <paramref name="operation"/> is null.
 /// </exception>
 protected internal abstract Operation Override(Operation operation, CompositeType newParent);
Esempio n. 18
0
 /// <exception cref="ArgumentException">
 /// The language does not support explicit interface implementation.
 /// </exception>
 /// <exception cref="ArgumentNullException">
 /// <paramref name="operation"/> is null.-or-
 /// <paramref name="newParent"/> is null.
 /// </exception>
 protected internal abstract Operation Implement(Operation operation,
                                                 CompositeType newParent, bool explicitly);
Esempio n. 19
0
		/// <exception cref="ArgumentNullException">
		/// <paramref name="parent"/> is null.
		/// </exception>
		internal CSharpEvent(CompositeType parent) : this("NewEvent", parent)
		{
		}
Esempio n. 20
0
 protected internal abstract Field Clone(CompositeType newParent);
Esempio n. 21
0
		protected override Field Clone(CompositeType newParent)
		{
			CSharpField field = new CSharpField(newParent);
			field.CopyFrom(this);
			return field;
		}
Esempio n. 22
0
 /// <exception cref="ArgumentException">
 /// The language of <paramref name="parent"/> does not equal.
 /// </exception>
 protected Destructor(CompositeType parent) :
     base(null, parent)
 {
 }
Esempio n. 23
0
		public NestingRelationship Clone(CompositeType parentType, TypeBase innerType)
		{
			NestingRelationship nesting = new NestingRelationship(parentType, innerType);
			nesting.CopyFrom(this);
			return nesting;
		}
Esempio n. 24
0
 /// <exception cref="ArgumentException">
 /// The language does not support explicit interface implementation.
 /// </exception>
 /// <exception cref="ArgumentNullException">
 /// <paramref name="parent"/> is null.-or-
 /// <paramref name="operation"/> is null.
 /// </exception>
 protected internal abstract Operation Implement(CompositeType parent,
                                                 Operation operation, bool explicitly);
Esempio n. 25
0
		/// <exception cref="ArgumentNullException">
		/// <paramref name="parent"/> is null.
		/// </exception>
		internal CSharpMethod(CompositeType parent) : this("NewMethod", parent)
		{
		}
Esempio n. 26
0
 /// <exception cref="BadSyntaxException">
 /// The <paramref name="name"/> does not fit to the syntax.
 /// </exception>
 /// <exception cref="ArgumentException">
 /// The language of <paramref name="parent"/> does not equal.
 /// </exception>
 /// <exception cref="ArgumentNullException">
 /// <paramref name="parent"/> is null.
 /// </exception>
 protected Method(string name, CompositeType parent) : base(name, parent)
 {
 }
Esempio n. 27
0
		protected internal abstract Field Clone(CompositeType newParent);
Esempio n. 28
0
 /// <exception cref="RelationshipException">
 /// Cannot create nesting relationship.
 /// </exception>
 internal NestingRelationship(CompositeType parentType, TypeBase innerType) :
     base(parentType, innerType)
 {
     RelationshipType = RelationshipType.Nesting;
     Attach();
 }
Esempio n. 29
0
		public override Operation Clone(CompositeType newParent)
		{
			CSharpConstructor constructor = new CSharpConstructor(newParent);
			constructor.CopyFrom(this);
			return constructor;
		}
Esempio n. 30
0
		/// <exception cref="ArgumentException">
		/// The language does not support explicit interface implementation.
		/// </exception>
		/// <exception cref="ArgumentNullException">
		/// <paramref name="operation"/> is null.-or-
		/// <paramref name="newParent"/> is null.
		/// </exception>
		protected override Operation Implement(Operation operation,
			CompositeType newParent, bool explicitly)
		{
			if (newParent == null)
				throw new ArgumentNullException("newParent");
			if (operation == null)
				throw new ArgumentNullException("operation");

			Operation newOperation = operation.Clone(newParent);

			newOperation.AccessModifier = AccessModifier.Public;
			newOperation.ClearModifiers();
			newOperation.IsStatic = false;

			if (explicitly) {
				newOperation.Name = string.Format("{0}.{1}",
					((InterfaceType) operation.Parent).Name, newOperation.Name);
			}

			return newOperation;
		}
Esempio n. 31
0
		public override Operation Clone(CompositeType newParent)
		{
			CSharpProperty property = new CSharpProperty(newParent);
			property.CopyFrom(this);
			return property;
		}
Esempio n. 32
0
		/// <exception cref="ArgumentException">
		/// <paramref name="operation"/> cannot be overridden.
		/// </exception>
		/// <exception cref="ArgumentNullException">
		/// <paramref name="operation"/> is null.
		/// </exception>
		protected override Operation Override(Operation operation, CompositeType newParent)
		{
			if (operation == null)
				throw new ArgumentNullException("operation");

			if (!operation.IsVirtual && !operation.IsAbstract && !operation.IsOverride ||
				operation.IsSealed)
			{
				throw new ArgumentException(
					Strings.ErrorCannotOverride, "operation");
			}

			Operation newOperation = operation.Clone(newParent);
			newOperation.IsVirtual = false;
			newOperation.IsAbstract = false;
			newOperation.IsOverride = true;

			return newOperation;
		}
Esempio n. 33
0
		/// <exception cref="BadSyntaxException">
		/// The <paramref name="name"/> does not fit to the syntax.
		/// </exception>
		/// <exception cref="ArgumentException">
		/// The language of <paramref name="parent"/> does not equal.
		/// </exception>
		/// <exception cref="ArgumentNullException">
		/// <paramref name="parent"/> is null.
		/// </exception>
		internal CSharpProperty(string name, CompositeType parent) : base(name, parent)
		{
		}
Esempio n. 34
0
		public abstract Operation Clone(CompositeType newParent);
Esempio n. 35
0
		public override Operation Clone(CompositeType newParent)
		{
			CSharpEvent newEvent = new CSharpEvent(newParent);
			newEvent.CopyFrom(this);
			return newEvent;
		}
Esempio n. 36
0
		/// <exception cref="BadSyntaxException">
		/// The <paramref name="name"/> does not fit to the syntax.
		/// </exception>
		/// <exception cref="ArgumentException">
		/// The language of <paramref name="parent"/> does not equal.
		/// </exception>
		/// <exception cref="ArgumentNullException">
		/// <paramref name="parent"/> is null.
		/// </exception>
		protected Operation(string name, CompositeType parent) : base(name, parent)
		{
			argumentList = Language.CreateParameterCollection();
		}
Esempio n. 37
0
		/// <exception cref="BadSyntaxException">
		/// The <paramref name="name"/> does not fit to the syntax.
		/// </exception>
		/// <exception cref="ArgumentException">
		/// The language of <paramref name="parent"/> does not equal.
		/// </exception>
		/// <exception cref="ArgumentNullException">
		/// <paramref name="parent"/> is null.
		/// </exception>
		internal CSharpEvent(string name, CompositeType parent) : base(name, parent)
		{
		}
Esempio n. 38
0
 /// <exception cref="RelationException">
 /// Cannot create nesting relationship.
 /// </exception>
 /// <exception cref="ArgumentNullException">
 /// <paramref name="parentClass"/> is null.-or-
 /// <paramref name="innerClass"/> is null.
 /// </exception>
 internal NestingRelation(CompositeType parentType, TypeBase innerType)
     : base(parentType, innerType)
 {
     Attach();
 }
Esempio n. 39
0
		/// <exception cref="ArgumentNullException">
		/// <paramref name="parent"/> is null.
		/// </exception>
		internal CSharpField(CompositeType parent) : this("newField", parent)
		{
		}
Esempio n. 40
0
		/// <exception cref="ArgumentException">
		/// The language of <paramref name="parent"/> does not equal.
		/// </exception>
		/// <exception cref="ArgumentNullException">
		/// <paramref name="parent"/> is null.
		/// </exception>
		internal CSharpDestructor(CompositeType parent) : base(parent)
		{
			AccessModifier = AccessModifier.Default;
		}
Esempio n. 41
0
		/// <exception cref="RelationshipException">
		/// Cannot create nesting relationship.
		/// </exception>
		/// <exception cref="ArgumentNullException">
		/// <paramref name="parentClass"/> is null.-or-
		/// <paramref name="innerClass"/> is null.
		/// </exception>
		internal NestingRelationship(CompositeType parentType, TypeBase innerType)
			: base(parentType, innerType)
		{
			Attach();
		}
Esempio n. 42
0
		public override Operation Clone(CompositeType newParent)
		{
			CSharpMethod method = new CSharpMethod(newParent);
			method.CopyFrom(this);
			return method;
		}
Esempio n. 43
0
		public override Operation Clone(CompositeType newParent)
		{
			return new CSharpDestructor(newParent);
		}
 /// <exception cref="RelationshipException">
 /// Cannot create generalization.
 /// </exception>
 /// <exception cref="ArgumentNullException">
 /// <paramref name="derivedType"/> is null.-or-
 /// <paramref name="baseType"/> is null.
 /// </exception>
 internal GeneralizationRelationship(CompositeType derivedType, CompositeType baseType)
     : base(derivedType, baseType)
 {
     Attach();
 }