Exemple #1
0
        static void WriteTargetTags(GraphBuilder gb, WrenchTarget wt, XmlTextWriter tw)
        {
            foreach (KeyValuePair <string, SingleValue <int> > kvp in wt.IdTags)
            {
                int tagid = gb.GetTagId(kvp.Key);

                if (tagid < 0)
                {
                    throw ExHelp.Argument("tag", "Invalid tag name {0}", kvp.Key);
                }

                if (kvp.Value.IsResult)
                {
                    tw.WriteStartElement("rt");
                    tw.WriteAttributeString("id", tagid.ToString());
                    ((Result)kvp.Value).ExportXml(tw, "r");
                }
                else
                {
                    tw.WriteStartElement("tt");
                    tw.WriteAttributeString("id", tagid.ToString());
                    tw.WriteAttributeString("target", ((int)kvp.Value).ToString());
                }

                tw.WriteEndElement();
            }
        }
        void WriteTags()
        {
            bw.Write(gb.NumTags);

            int nwritten = 0;

            foreach (string name in gb.GetTags())
            {
                int id = gb.GetTagId(name);

                bw.Write(name);
                bw.Write(id);
                nwritten++;
            }

            if (nwritten != gb.NumTags)
            {
                throw ExHelp.App("Report NumTags ({0}) is not actual ({1})?",
                                 gb.NumTags, nwritten);
            }
        }
Exemple #3
0
        // Tags

        static void WriteTags(GraphBuilder gb, XmlTextWriter tw)
        {
            tw.WriteStartElement("tags");

            foreach (string tag in gb.GetTags())
            {
                tw.WriteStartElement("tag");
                tw.WriteAttributeString("name", tag);
                tw.WriteAttributeString("id", gb.GetTagId(tag).ToString());
                tw.WriteEndElement();
            }

            tw.WriteEndElement();
        }
Exemple #4
0
        internal bool DoFixup(NameLookupContext nlc, IWarningLogger log)
        {
            log.PushLocation(FullName);

            try {
                if (ResolveTemplate(nlc, log))
                {
                    return(true);
                }

                ApplyWaitTags();

                // Now register our tags with the GraphBuilder

                GraphBuilder gb = (GraphBuilder)Owner.Owner;

                foreach (string tag in TagsWithValues)
                {
                    if (gb.GetTagId(tag) < 0)
                    {
                        return(true);
                    }
                }

                // Now make sure that all of our argument names are valid.

                Rule rinst = (Rule)Activator.CreateInstance(Rule);
                Dictionary <string, int> argmap = rinst.MakeArgNameMap();

                foreach (string arg in ArgsWithDeps)
                {
                    if (argmap.ContainsKey(arg))
                    {
                        continue;
                    }

                    string s = String.Format("Argument `{0}' does not exist in rule " +
                                             "`{1}'", arg, Rule);
                    log.Error(2024, s, null);
                    return(true);
                }
            } finally {
                log.PopLocation();
            }

            return(false);
        }
	// Tags

	static void WriteTags (GraphBuilder gb, XmlTextWriter tw)
	{
	    tw.WriteStartElement ("tags");

	    foreach (string tag in gb.GetTags ()) {
		tw.WriteStartElement ("tag");
		tw.WriteAttributeString ("name", tag);
		tw.WriteAttributeString ("id", gb.GetTagId (tag).ToString ());
		tw.WriteEndElement ();
	    }

	    tw.WriteEndElement ();
	}
	static void WriteTargetTags (GraphBuilder gb, WrenchTarget wt, XmlTextWriter tw)
	{
	    foreach (KeyValuePair<string,SingleValue<int>> kvp in wt.IdTags) {
		int tagid = gb.GetTagId (kvp.Key);
		
		if (tagid < 0)
		    throw ExHelp.Argument ("tag", "Invalid tag name {0}", kvp.Key);
		
		if (kvp.Value.IsResult) {
		    tw.WriteStartElement ("rt");
		    tw.WriteAttributeString ("id", tagid.ToString ());
		    ((Result) kvp.Value).ExportXml (tw, "r");
		} else {
		    tw.WriteStartElement ("tt");
		    tw.WriteAttributeString ("id", tagid.ToString ());
		    tw.WriteAttributeString ("target", ((int) kvp.Value).ToString ());
		}
		
		tw.WriteEndElement ();
	    }
	}