コード例 #1
0
ファイル: OpaqueBehavior.cs プロジェクト: mbbarange/Mascaret
        public override BehaviorExecution createBehaviorExecution(InstanceSpecification host, Dictionary <string, ValueSpecification> p, bool sync)
        {
            MascaretApplication.Instance.VRComponentFactory.Log("OPAQUEBEHAVIOR::CREATEBEHAVIOREXECUTION");

            Class cl = (Class)(host.Classifier);

            MascaretApplication.Instance.VRComponentFactory.Log(cl.getFullName());

            Class ocl = _lookForOperation(cl);

            if (ocl == null)
            {
                return(null);
            }

            string            typeName = ocl.name + "_" + body;
            BehaviorExecution be       = BehaviorScheduler.Instance.InstanciateOpaqueBehavior(this, typeName, host, p);

            return(be);
        }
コード例 #2
0
        public override void manageRequest(HttpRequest req)
        {
            Class classe = null;

            string id = "";

            if (req.parameters.ContainsKey("agent"))
            {
                id = req.parameters["agent"];
            }


            Environment           env    = MascaretApplication.Instance.getEnvironment();
            InstanceSpecification entity = null;

            if (env.InstanceSpecifications.ContainsKey(id))
            {
                entity = env.InstanceSpecifications[id];
            }

            VirtualHuman human = null;

            if (entity != null)
            {
                human = (VirtualHuman)(entity);
            }


            if (human != null)
            {
                env = human.KnowledgeBase.Environment;
                if (env != null)
                {
                    classe = _findClasse(env.Model.Package, req.parameters["alias"]);
                }
            }
            else
            {
                classe = _findClasse(MascaretApplication.Instance.Model.Package, req.parameters["alias"]);
            }

            req.response.write("<html>");
            req.response.write("<META HTTP-EQUIV=\"Content-Type\" content=\"text/html; charset=UTF-8\">");
            req.response.write("<body>");
            req.response.write("<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\">");
            req.response.write("<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\">");

            req.response.write("<H2>Description</H2>");
            req.response.write("<ul>");
            req.response.write("<li>");
            req.response.write(classe.name);
            req.response.write("</li>");
            req.response.write("<li>");
            req.response.write(classe.getFullName());
            req.response.write("</li>");
            req.response.write("<li>");
            req.response.write(classe.Summary);
            req.response.write("</li>");
            req.response.write("<li>");
            req.response.write(classe.Description);
            req.response.write("</li>");
            req.response.write("</ul>");

            req.response.write("<HR>");
            req.response.write("<H2>Hierarchie</H2>");

            req.response.write("<H3>Parent</H3>");
            req.response.write("<ul>");
            List <Classifier> parents = classe.Parents;

            for (int iC = 0; iC < parents.Count; iC++)
            {
                Classifier parent = classe.Parents[iC];
                req.response.write("<li><a href=\"Class?alias=");
                req.response.write(parent.name);
                req.response.write("\" target = \"Body\">");
                req.response.write(parent.name);
                req.response.write("</a></li>");
            }
            req.response.write("</ul>");
            //req.response.write("</ul>");


            req.response.write("<HR>");
            req.response.write("<H2>Attributs</H2>");
            req.response.write("<ul>");
            Dictionary <string, Property> attributes = classe.Attributes;

            foreach (KeyValuePair <string, Property> attr in attributes)
            {
                req.response.write("<li>");
                req.response.write(attr.Key);
                req.response.write(" : ");
                req.response.write(attr.Value.Type.name);
                req.response.write("</li>");
            }
            req.response.write("</ul>");

            req.response.write("<HR>");
            req.response.write("<H2>Operations</H2>");
            Dictionary <string, Operation> operations = classe.Operations;

            foreach (KeyValuePair <string, Operation> oper in operations)
            {
                req.response.write("<li>");
                req.response.write(oper.Key);
                req.response.write("( ");
                List <Parameter> parameters = oper.Value.Parameters;
                for (int iP = 0; iP < parameters.Count; iP++)
                {
                    Parameter attr = parameters[iP];
                    req.response.write(attr.name);
                    req.response.write(" : <a href=\"Class?alias=");
                    req.response.write(attr.Type.name);
                    req.response.write("\" target = \"Body\">");
                    req.response.write(attr.Type.name);
                    req.response.write("</a>");
                    if (iP != parameters.Count - 1)
                    {
                        req.response.write(", ");
                    }
                }
                req.response.write(" )");
                req.response.write(" : ");
                if (oper.Value.Type != null)
                {
                    req.response.write(oper.Value.Type.name);
                }
                else
                {
                    req.response.write("undefined");
                }
                req.response.write("</li>");
            }

            req.response.write("<HR>");
            req.response.write("<H2>Instances</H2>");
            Dictionary <string, InstanceSpecification> instances = classe.Instances;

            foreach (KeyValuePair <string, InstanceSpecification> instance in instances)
            {
                req.response.write("<li>");
                req.response.write("<a href=\"Entity?alias=");
                req.response.write(instance.Key);
                req.response.write("\" target = \"Body\">");
                req.response.write(instance.Key);
                req.response.write("</a>");
            }

            req.response.write("</body>");
            req.response.write("</html>");
        }
コード例 #3
0
 public override string getFullName()
 {
     return(classifier.getFullName() + "::" + name);
 }