Ejemplo n.º 1
0
        public bool TryGetTupleDefinitionByName(string name, out IntermediateTupleDefinition tupleDefinition)
        {
            // First, look in the built-ins.
            tupleDefinition = TupleDefinitions.ByName(name);

            if (tupleDefinition == null)
            {
                if (this.ExtensionData == null)
                {
                    this.LoadExtensionData();
                }

                // Second, look in the extensions.
                foreach (var data in this.ExtensionData)
                {
                    if (data.TryGetTupleDefinitionByName(name, out tupleDefinition))
                    {
                        break;
                    }
                }

                // Finally, look in the custom tuple definitions provided during an intermediate load.
                if (tupleDefinition == null)
                {
                    this.CustomDefinitionByName.TryGetValue(name, out tupleDefinition);
                }
            }

            return(tupleDefinition != null);
        }
Ejemplo n.º 2
0
        public void CanCreateFileTupleByName()
        {
            var tuple = TupleDefinitions.ByName("File").CreateTuple();

            Assert.IsType <FileTuple>(tuple);
            Assert.Same(TupleDefinitions.File, tuple.Definition);
        }
Ejemplo n.º 3
0
        public static Boolean IsTupleType(Type type)
        {
            if (type == null)
            {
                throw Logger.Fatal.ArgumentNull(nameof(type));
            }

            if (type.IsConstructedGenericType)
            {
                type = type.GetGenericTypeDefinition();
            }

            return(TupleDefinitions.Contains(type));
        }
Ejemplo n.º 4
0
        public IntermediateTuple CreateRow(IntermediateSection section, SourceLineNumber sourceLineNumbers, TupleDefinitionType tupleType, Identifier identifier = null)
        {
            var tupleDefinition = TupleDefinitions.ByType(tupleType);

            return(CreateRow(section, sourceLineNumbers, tupleDefinition, identifier));
        }