Ejemplo n.º 1
0
        protected MemberNodeBase(NestedTypeNode parent, IOldToNewTupleMap <MemberDefinitionMetadataBase> map)
            : base(parent, parent.GetNamespaceIncludingName(), map.GetFirstNotNullItem().GetName())
        {
            Map = map;

            if (parent != null)
            {
                OldDecompileResult = parent.OldDecompileResult;
                NewDecompileResult = parent.NewDecompileResult;
            }
        }
Ejemplo n.º 2
0
        public static TypeNode Create(NamespaceNode parent, IOldToNewTupleMap <TypeMetadata> map)
        {
            var oldTypeMetadata = map.OldType;
            var newTypeMetadata = map.NewType;

            IDecompilationResults oldResult = null;
            IDecompilationResults newResult = null;

            IDecompilationResults result;

            if (oldTypeMetadata != null &&
                GlobalDecompilationResultsRepository.Instance.TryGetDecompilationResult(
                    oldTypeMetadata.AssemblyPath,
                    oldTypeMetadata.Module.TokenId,
                    oldTypeMetadata.TokenId,
                    out result))
            {
                oldResult = result;
            }

            if (newTypeMetadata != null &&
                GlobalDecompilationResultsRepository.Instance.TryGetDecompilationResult(
                    newTypeMetadata.AssemblyPath,
                    newTypeMetadata.Module.TokenId,
                    newTypeMetadata.TokenId,
                    out result))
            {
                newResult = result;
            }

            var typeNode = new TypeNode(parent, map, new MemberNodeBase[0], oldResult, newResult);

            var memberManager = new MemberMergeManager(map);
            var members       = memberManager.GetMergedCollection().Select <IOldToNewTupleMap <MemberDefinitionMetadataBase>, MemberNodeBase> (
                e =>
            {
                if (e.GetFirstNotNullItem().MemberType == MemberType.Type)
                {
                    return(NestedTypeNode.Create(
                               typeNode,
                               new OldToNewTupleMap <TypeMetadata> ((TypeMetadata)e.OldType, (TypeMetadata)e.NewType)));
                }
                return(new MemberNode(
                           typeNode,
                           new OldToNewTupleMap <MemberMetadata> ((MemberMetadata)e.OldType, (MemberMetadata)e.NewType)));
            }).ToArray();

            typeNode.Members = members;


            return(typeNode);
        }
        public static NestedTypeNode Create(TypeNode parent, IOldToNewTupleMap <TypeMetadata> map)
        {
            var nestedTypeNode = new NestedTypeNode(parent, map, new MemberNodeBase[0]);

            var memberManager = new MemberMergeManager(map);
            var members       = memberManager.GetMergedCollection().Select <IOldToNewTupleMap <MemberDefinitionMetadataBase>, MemberNodeBase> (
                e =>
            {
                if (e.GetFirstNotNullItem().MemberType == MemberType.Type)
                {
                    return(Create(
                               parent,
                               new OldToNewTupleMap <TypeMetadata> ((TypeMetadata)e.OldType, (TypeMetadata)e.NewType)));
                }
                return(new MemberNode(
                           nestedTypeNode,
                           new OldToNewTupleMap <MemberMetadata> ((MemberMetadata)e.OldType, (MemberMetadata)e.NewType)));
            }).ToArray();

            nestedTypeNode.Members = members;

            return(nestedTypeNode);
        }
Ejemplo n.º 4
0
 public MemberNode(NestedTypeNode parent, IOldToNewTupleMap <MemberMetadata> map)
     : base(parent, map)
 {
 }