private PropertyAccessor(PropertyAccessor propToCopyFrom) : base(null) { propToCopyFrom.CloneInto(this); AccessorType = propToCopyFrom.AccessorType; Language = propToCopyFrom.Language; Modifier = propToCopyFrom.Modifier; }
protected Property(Controller controller, BaseConstruct parentObject, string name, DotNet.DataType dataType, List<string> modifiers, PropertyAccessor getAccessor, PropertyAccessor setAccessor, CodeLanguage language, int nodeIndex) : base(controller) { ParentObject = parentObject; Name = name; DataType = dataType; Modifiers = modifiers; GetAccessor = getAccessor; SetAccessor = setAccessor; Language = language; Index = nodeIndex; }
private static void FixAccessor(PropertyAccessor accessor, string textToInsert, int insertionIndex) { if (accessor != null) { // Need to set the text range of the get {} var accessorText = accessor.ToString().Trim(); int startIndex = textToInsert.IndexOf(accessorText) + insertionIndex; int endIndex = startIndex + accessorText.Length; accessor.TextRange.StartOffset = startIndex; accessor.TextRange.EndOffset = endIndex; } }
public Indexer(Controller controller, BaseConstruct parentObject, DataType dataType, IEnumerable<Parameter> parameters, PropertyAccessor getAccessor, PropertyAccessor setAccessor, CodeLanguage language, int nodeIndex) : base(controller) { ParentObject = parentObject; DataType = dataType; Parameters.Clear(); if (parameters != null) Parameters.AddRange(parameters); GetAccessor = getAccessor; SetAccessor = setAccessor; Language = language; Index = nodeIndex; Name = "this"; }
public Indexer(Controller controller, BaseConstruct parentObject, DataType dataType, IEnumerable <Parameter> parameters, PropertyAccessor getAccessor, PropertyAccessor setAccessor, CodeLanguage language, int nodeIndex) : base(controller) { ParentObject = parentObject; DataType = dataType; Parameters.Clear(); if (parameters != null) { Parameters.AddRange(parameters); } GetAccessor = getAccessor; SetAccessor = setAccessor; Language = language; Index = nodeIndex; Name = "this"; }
private bool IsTheSame(PropertyAccessor comparisonInterfaceAccessor, ComparisonDepth depth) { if (comparisonInterfaceAccessor == null) { return(false); } if (AccessorType == comparisonInterfaceAccessor.AccessorType) { // Function names are the same, so now compare the class names // TODO: Parent comparison //if (ParentObject.IsTheSame(comparisonInterfaceAccessor.ParentObject)) { if (depth == ComparisonDepth.Signature) { return(true); } if (!base.IsTheSame(comparisonInterfaceAccessor, depth)) { return(false); } if (depth == ComparisonDepth.Outer) { return(true); } if (Text != comparisonInterfaceAccessor.Text) { ComparisonDifference += GetType().Name + ".Text"; return(false); } return(true); } } return(false); }
/// <summary> /// Adds a new child to this IBaseConstruct. /// </summary> /// <param name="childBC"></param> protected override void AddChildInternal(BaseConstruct childBC) { if (childBC == null) { throw new InvalidOperationException("Cannot add null child"); } if (childBC is PropertyAccessor) { PropertyAccessor newAccessor = (PropertyAccessor)childBC; if (newAccessor.AccessorType == PropertyAccessor.AccessorTypes.Get) { GetAccessor = newAccessor; } else { SetAccessor = newAccessor; } } else { throw new InvalidOperationException("Cannot add child of type " + childBC.GetType()); } }
public void Property() { Property inter = new Property(controller); inter.Name = "File"; inter.Modifiers.Add("public"); inter.DataType = new DataType(controller, "string"); PropertyAccessor acc = new PropertyAccessor(controller); acc.Modifier = "public"; acc.BodyText = "{ return file; }"; acc.AccessorType = PropertyAccessor.AccessorTypes.Get; inter.AddChild(acc); acc = new PropertyAccessor(controller); acc.Modifier = "protected"; acc.BodyText = "{ file = value; }"; acc.AccessorType = PropertyAccessor.AccessorTypes.Set; inter.AddChild(acc); CodeRoot root = CreateClassAndNamespace(inter); CodeRootMap map = new CodeRootMap(); map.AddCodeRoot(root, Version.User); map.AddCodeRoot(root, Version.NewGen); map.AddCodeRoot(root, Version.PrevGen); string result = map.GetMergedCodeRoot().ToString(); Assert.That(result, Is.EqualTo(root.ToString())); Assertions.StringContains(result, "class Class1"); Assertions.StringContains(result, "[Serializable(true)]"); Assertions.StringContains(result, "namespace ArchAngel.Tests"); Assertions.StringContains(result, "public string File"); Assertions.StringContains(result, "get{ return file; }"); Assertions.StringContains(result, "set{ file = value; }"); }
/// <summary> /// Adds a new child to this IBaseConstruct. /// </summary> /// <param name="childBC"></param> protected override void AddChildInternal(BaseConstruct childBC) { if (childBC == null) throw new InvalidOperationException("Cannot add null child"); if (childBC is PropertyAccessor) { PropertyAccessor newAccessor = (PropertyAccessor)childBC; if (newAccessor.AccessorType == PropertyAccessor.AccessorTypes.Get) GetAccessor = newAccessor; else SetAccessor = newAccessor; } else throw new InvalidOperationException("Cannot add child of type " + childBC.GetType()); }
public VBIndexer(VBController controller, VBBaseConstruct parentObject, VBDataType dataType, IEnumerable<BaseParameter> parameters, PropertyAccessor getAccessor, PropertyAccessor setAccessor, CodeLanguage language, int nodeIndex) : base(controller, parentObject, dataType, parameters, getAccessor, setAccessor, language, nodeIndex) { }
public void PropertyAccessor_Change_Modifier() { PropertyAccessor merged1 = new PropertyAccessor(controller); PropertyAccessor merged2 = new PropertyAccessor(controller); PropertyAccessor merged3 = new PropertyAccessor(controller); const string AccessorName = "MyAccessor"; const string expectedResult = Modifier1 + " get"; PropertyAccessor changing = new PropertyAccessor(controller, PropertyAccessor.AccessorTypes.Get, AccessorName); PropertyAccessor unchanging = new PropertyAccessor(controller, PropertyAccessor.AccessorTypes.Get, AccessorName); changing.Modifier = Modifier1; Merge_And_Assert(merged1, merged2, merged3, changing, unchanging, expectedResult); }
private bool IsTheSame(PropertyAccessor comparisonInterfaceAccessor, ComparisonDepth depth) { if (comparisonInterfaceAccessor == null) return false; if (AccessorType == comparisonInterfaceAccessor.AccessorType) { // Function names are the same, so now compare the class names // TODO: Parent comparison //if (ParentObject.IsTheSame(comparisonInterfaceAccessor.ParentObject)) { if (depth == ComparisonDepth.Signature) { return true; } if (!base.IsTheSame(comparisonInterfaceAccessor, depth)) { return false; } if (depth == ComparisonDepth.Outer) { return true; } if (Text != comparisonInterfaceAccessor.Text) { ComparisonDifference += GetType().Name + ".Text"; return false; } return true; } } return false; }
protected CodeRoot CreateIndexer(string parameterName) { Indexer inter = new Indexer(controller); inter.Name = "File"; inter.DataType = new DataType(controller, "int"); Parameter param = new Parameter(controller); param.Name = parameterName; param.DataType = "int"; inter.Parameters.Add(param); PropertyAccessor acc = new PropertyAccessor(controller); acc.Modifier = "public"; acc.BodyText = "{ return file[i]; }"; acc.AccessorType = PropertyAccessor.AccessorTypes.Get; inter.AddChild(acc); acc = new PropertyAccessor(controller); acc.Modifier = "protected"; acc.BodyText = "{ file[i] = value; }"; acc.AccessorType = PropertyAccessor.AccessorTypes.Set; inter.AddChild(acc); return CreateClassAndNamespace(inter); }
public void PropertyAccessor() { Property itp = new Property(controller, "Property1", new DataType(controller, "int"), "public"); PropertyAccessor item1 = new PropertyAccessor(controller, ArchAngel.Providers.CodeProvider.DotNet.PropertyAccessor.AccessorTypes.Get); PropertyAccessor item2 = new PropertyAccessor(controller, ArchAngel.Providers.CodeProvider.DotNet.PropertyAccessor.AccessorTypes.Set); itp.AddChild(item1); itp.AddChild(item2); Assert.That(item1.FullyQualifiedDisplayName, Is.EqualTo("Property1.Get Accessor")); Assert.That(item2.FullyQualifiedDisplayName, Is.EqualTo("Property1.Set Accessor")); Class it = new Class(controller, "Class1"); it.AddChild(itp); Assert.That(item1.FullyQualifiedDisplayName, Is.EqualTo("Class1.Property1.Get Accessor")); Assert.That(item2.FullyQualifiedDisplayName, Is.EqualTo("Class1.Property1.Set Accessor")); }
public VBPropertyAccessorPrinter(PropertyAccessor obj) { this.obj = obj; }
public AddAccessorToPropertyAction(Property propertyToChange, PropertyAccessor newAccessor) { PropertyToChange = propertyToChange; NewAccessor = newAccessor; }
protected Property(Controller controller, BaseConstruct parentObject, string name, DotNet.DataType dataType, List <string> modifiers, PropertyAccessor getAccessor, PropertyAccessor setAccessor, CodeLanguage language, int nodeIndex) : base(controller) { ParentObject = parentObject; Name = name; DataType = dataType; Modifiers = modifiers; GetAccessor = getAccessor; SetAccessor = setAccessor; Language = language; Index = nodeIndex; }
public RemoveAccessorFromPropertyAction(Property propertyToChange, PropertyAccessor accessorToRemove) { PropertyToChange = propertyToChange; AccessorToRemove = accessorToRemove; }
public void PropertyAccessor_() { PropertyAccessor inter = new PropertyAccessor(controller); inter.Name = "File"; inter.Modifier = "protected"; inter.BodyText = "lkajsdflkjasdlkfjasldfj"; inter.AccessorType = PropertyAccessor.AccessorTypes.Set; Assert.That(inter.IsTheSame(inter.Clone(), ComparisonDepth.Outer), Is.True); Assert.That(string.IsNullOrEmpty(((PropertyAccessor)inter.Clone()).BodyText), Is.True); }
private void Process_Property_Accessor(PropertyDeclaration node, PropertyAccessor.AccessorTypes accessorType) { PropertyAccessor accessor = new PropertyAccessor(controller); accessor.AccessorType = accessorType; AccessorDeclaration accessorDec = accessorType == PropertyAccessor.AccessorTypes.Get ? node.GetAccessor : node.SetAccessor; if ((node.Modifiers & Modifiers.Abstract) != 0 || accessorDec.BlockStatement == null) { // BlockStatement will be null in abstract classes. accessor.BodyText = ";"; } else ProcessBodyText(node, accessor, accessorDec.BlockStatement.Statements, node.Comments); SetupBaseConstruct(accessorDec.StartOffset, accessorDec.EndOffset, "", accessor, accessorDec.AttributeSections); objectStack.Pop(); // This is here on purpose. This method is not handled as part of the giant // switch statement, so we need to clean up after ourselves. }
protected override void RemoveChildObjectInternal(BaseConstruct childBC) { if (childBC == null) throw new InvalidOperationException("Cannot remove null child"); if (childBC is PropertyAccessor) { PropertyAccessor accessor = (PropertyAccessor)childBC; if (accessor == GetAccessor) GetAccessor = null; else if (accessor == SetAccessor) SetAccessor = null; else throw new InvalidOperationException("The accessor does not belong to this Property"); } else throw new InvalidOperationException("Cannot remove child of type " + childBC.GetType()); }
private bool IsTheSame(PropertyAccessor comparisonFunction) { return IsTheSame(comparisonFunction, ComparisonDepth.Signature); }
public ChangePropertyAccessorModifierAction(PropertyAccessor propertyToChange, string newModifier) { AccessorToChange = propertyToChange; NewModifier = newModifier; }
private bool IsTheSame(PropertyAccessor comparisonFunction) { return(IsTheSame(comparisonFunction, ComparisonDepth.Signature)); }