Пример #1
0
        public IEntity ResolveQualifiedName(INamespace namespaceToResolveAgainst, string name)
        {
            Set <IEntity> resultingSet = Namespaces.AcquireSet();

            try {
                ResolveQualifiedNameAgainst(namespaceToResolveAgainst, name, EntityType.Any, resultingSet);
                return(Entities.EntityFromList(resultingSet));
            }
            finally {
                Namespaces.ReleaseSet(resultingSet);
            }
        }
Пример #2
0
        private IEntity ResolveImpl(string name, EntityType flags)
        {
            var resultingSet = Namespaces.AcquireSet();

            try {
                Resolve(resultingSet, name, flags);
                return(Entities.EntityFromList(resultingSet));
            }
            finally {
                Namespaces.ReleaseSet(resultingSet);
            }
        }
Пример #3
0
        public IEntity Resolve(INamespace @namespace, string name, EntityType elementType)
        {
            if (@namespace == null)
            {
                throw new ArgumentNullException("namespace");
            }
            Set <IEntity> resultingSet = Namespaces.AcquireSet();

            try {
                ResolveCoalescingNamespaces(@namespace, name, elementType, resultingSet);
                return(Entities.EntityFromList(resultingSet));
            }
            finally {
                Namespaces.ReleaseSet(resultingSet);
            }
        }
Пример #4
0
        private IEntity ResolveQualifiedName(string name, EntityType flags)
        {
            if (!IsQualifiedName(name))
            {
                return(Resolve(name, flags));
            }

            var resultingSet = Namespaces.AcquireSet();

            try {
                ResolveQualifiedName(resultingSet, name, flags);
                return(Entities.EntityFromList(resultingSet));
            }
            finally {
                Namespaces.ReleaseSet(resultingSet);
            }
        }
Пример #5
0
        private IEntity ResolveExtensionForType(INamespace ns, IType type, string name)
        {
            var extensions = Namespaces.AcquireSet();

            try {
                if (!ns.Resolve(extensions, name, EntityType.Method | EntityType.Property))
                {
                    return(null);
                }

                Predicate <IEntity> notExtensionPredicate = item => !IsExtensionOf(type, item as IExtensionEnabled);
                extensions.RemoveAll(notExtensionPredicate);
                return(Entities.EntityFromList(extensions));
            }
            finally {
                Namespaces.ReleaseSet(extensions);
            }
        }