コード例 #1
0
        public void TestApplyStatement()
        {
            Dictionary       test     = CreateDictionary("Test");
            NameSpace        n1       = CreateNameSpace(test, "N1");
            Structure        s1       = CreateStructure(n1, "S1");
            StructureElement el1      = CreateStructureElement(s1, "E1", "Boolean");
            Structure        s2       = CreateStructure(n1, "S2");
            StructureElement el2      = CreateStructureElement(s2, "E2", "S1");
            Function         function = CreateFunction(n1, "f", "S1");

            Collection collection = CreateCollection(n1, "Col", "S1", 10);
            Variable   v          = CreateVariable(n1, "V", "Col");

            Compiler.Compile_Synchronous(true, true);

            RuleCondition rc     = CreateRuleAndCondition(n1, "Rule1");
            Parser        parser = new Parser();

            {
                ApplyStatement statement = parser.Statement(rc, "APPLY X <- X", true, true) as ApplyStatement;
                Assert.IsNotNull(statement);
            }

            {
                ApplyStatement statement = parser.Statement(rc, "APPLY X <- X ON V | X.", true, true) as ApplyStatement;
                Assert.IsNotNull(statement);

                DerefExpression deref = statement.ConditionExpression as DerefExpression;
                Assert.IsNotNull(deref);

                ITypedElement element = deref.Arguments[0].Ref as ITypedElement;
                Assert.IsNotNull(element);
                Assert.AreEqual(element.Type, s1);
            }
        }
コード例 #2
0
        public void TestRefactorNameSpaceName3()
        {
            Dictionary       test = CreateDictionary("Test");
            NameSpace        n0   = CreateNameSpace(test, "N0");
            NameSpace        n1   = CreateNameSpace(n0, "N1");
            Structure        s1   = CreateStructure(n1, "S1");
            StructureElement el1  = CreateStructureElement(s1, "E1", "Boolean");
            Structure        s2   = CreateStructure(n1, "S2");
            StructureElement el2  = CreateStructureElement(s2, "E2", "S1");
            Variable         v    = CreateVariable(n1, "V", "S1");

            v.setDefaultValue("S1 { E1 => True }");
            Function f = CreateFunction(n1, "f", "S2");

            NameSpace     n2 = CreateNameSpace(n0, "N2");
            RuleCondition rc = CreateRuleAndCondition(n2, "Rule1");
            PreCondition  p  = CreatePreCondition(rc, "N1.f().E2.E1");
            Action        a  = CreateAction(rc, "N1.V <- N1.S1 { E1 => False }");

            Refactor(n1, "NewN1");
            Assert.AreEqual("S1 { E1 => True }", v.getDefaultValue());
            Assert.AreEqual("NewN1.V <- NewN1.S1 { E1 => False }", a.ExpressionText);
            Assert.AreEqual("NewN1.f().E2.E1", p.ExpressionText);

            RefactorAndRelocate(p);
            Assert.AreEqual("NewN1.f().E2.E1", p.ExpressionText);
        }
コード例 #3
0
        public void NoProposalWhenInstanceIsNull()
        {
            Dictionary       test = CreateDictionary("Test");
            NameSpace        n1   = CreateNameSpace(test, "N1");
            Structure        s1   = CreateStructure(n1, "S1");
            StructureElement el1  = CreateStructureElement(s1, "E1", "Boolean");
            Structure        s2   = CreateStructure(n1, "S2");
            StructureElement el2  = CreateStructureElement(s2, "E2", "S1");
            Variable         v    = CreateVariable(n1, "V", "S1");

            v.setDefaultValue("N1.S1 { E1 => True }");

            Compiler.Compile_Synchronous(true, true);
            RuleCondition     rc      = CreateRuleAndCondition(n1, "Rule1");
            BaseEditorTextBox textBox = new BaseEditorTextBox();

            {
                //              0123456789
                textBox.Text     = "V <- N2.";
                textBox.Instance = rc;
                SortedSet <ObjectReference> choices = textBox.AllChoices(7, "");
                Assert.IsNotNull(choices);
                Assert.AreEqual(0, choices.Count);
            }
        }
コード例 #4
0
        public override void visit(StructureElement obj, bool visitSubNodes)
        {
            obj.setDefault("");
            obj.setMode(acceptor.VariableModeEnumType.aInternal);

            base.visit(obj, visitSubNodes);
        }
コード例 #5
0
        public void TestFormalParameters()
        {
            Dictionary       test     = CreateDictionary("Test");
            NameSpace        n1       = CreateNameSpace(test, "N1");
            Structure        s1       = CreateStructure(n1, "S1");
            StructureElement el1      = CreateStructureElement(s1, "E1", "Boolean");
            Structure        s2       = CreateStructure(n1, "S2");
            StructureElement el2      = CreateStructureElement(s2, "E2", "S1");
            Function         function = CreateFunction(n1, "f", "S2");

            CreateParameter(function, "p1", "S1");


            Compiler.Compile_Synchronous(true, true);
            Case cas = CreateCase(function, "case", "");

            BaseEditorTextBox textBox = new BaseEditorTextBox();
            {
                //              0         1         2
                //              012345678901234567890123456789
                textBox.Text     = "p1.";
                textBox.Instance = cas;
                SortedSet <ObjectReference> choices = textBox.AllChoices(2, "");
                Assert.IsNotNull(choices);
                Assert.AreEqual(1, choices.Count);
                Assert.IsTrue(Contains(choices, el1));
            }
        }
コード例 #6
0
        public void TestUpdateFunction()
        {
            Dictionary       dictionary = CreateDictionary("Test");
            NameSpace        nameSpace  = CreateNameSpace(dictionary, "N1");
            Structure        structure  = CreateStructure(nameSpace, "S");
            StructureElement el1        = CreateStructureElement(structure, "A", "Boolean");
            RuleCondition    condition  = CreateRuleAndCondition(structure, "Cond");
            Action           action     = CreateAction(condition, "A <- True");
            Procedure        procedure  = CreateProcedure(structure, "P");
            Parameter        parameter  = CreateParameter(procedure, "V", "Boolean");
            RuleCondition    condition2 = CreateRuleAndCondition(procedure, "Cond");
            Action           action2    = CreateAction(condition2, "A <- V");

            Dictionary dictionary2 = CreateDictionary("TestUpdate");

            dictionary2.setUpdates(dictionary.Guid);

            Structure updatedStructure = structure.CreateStructureUpdate(dictionary2);

            Compiler.Compile_Synchronous(true);
            RuleCheckerVisitor visitor = new RuleCheckerVisitor(dictionary);

            visitor.visit(updatedStructure);

            Assert.IsNull(ErrorMessage(updatedStructure));
        }
コード例 #7
0
        public void TestMapExpression()
        {
            Dictionary       test     = CreateDictionary("Test");
            NameSpace        n1       = CreateNameSpace(test, "N1");
            Structure        s1       = CreateStructure(n1, "S1");
            StructureElement el1      = CreateStructureElement(s1, "E1", "Boolean");
            Structure        s2       = CreateStructure(n1, "S2");
            StructureElement el2      = CreateStructureElement(s2, "E2", "S1");
            Function         function = CreateFunction(n1, "f", "S1");

            Collection collection = CreateCollection(n1, "Col", "S1", 10);
            Variable   v          = CreateVariable(n1, "V", "Col");

            Compiler.Compile_Synchronous(true, true);

            RuleCondition rc     = CreateRuleAndCondition(n1, "Rule1");
            Parser        parser = new Parser();

            {
                MapExpression expression = parser.Expression(rc, "MAP V | X. USING X IN X.E2", null, true, null, true, true) as MapExpression;
                Assert.IsNotNull(expression);

                DerefExpression deref = expression.Condition as DerefExpression;
                Assert.IsNotNull(deref);

                ITypedElement element = deref.Arguments[0].Ref as ITypedElement;
                Assert.IsNotNull(element);
                Assert.AreEqual(element.Type, s1);
            }
        }
コード例 #8
0
        public void TestListExpression()
        {
            Dictionary       test     = CreateDictionary("Test");
            NameSpace        n1       = CreateNameSpace(test, "N1");
            Structure        s1       = CreateStructure(n1, "S1");
            StructureElement el1      = CreateStructureElement(s1, "E1", "Boolean");
            Structure        s2       = CreateStructure(n1, "S2");
            StructureElement el2      = CreateStructureElement(s2, "E2", "S1");
            Function         function = CreateFunction(n1, "f", "S1");

            Collection collection = CreateCollection(n1, "Col", "S1", 10);
            Variable   v          = CreateVariable(n1, "V", "Col");

            Compiler.Compile_Synchronous(true, true);

            RuleCondition rc     = CreateRuleAndCondition(n1, "Rule1");
            Parser        parser = new Parser();

            {
                VariableUpdateStatement statement = parser.Statement(rc, "V <- [S1 { E1 => Tr", true, true) as VariableUpdateStatement;
                Assert.IsNotNull(statement);

                UnaryExpression unaryExpression = statement.Expression as UnaryExpression;
                Assert.IsNotNull(unaryExpression);
                ListExpression listExpression = unaryExpression.Term.LiteralValue as ListExpression;
                Assert.IsNotNull(listExpression);
                Assert.AreEqual(listExpression.ListElements.Count, 1);

                StructExpression structExpression = listExpression.ListElements[0] as StructExpression;
                Assert.IsNotNull(structExpression);
            }
        }
コード例 #9
0
        public void TestTemplates()
        {
            Dictionary       test = CreateDictionary("Test");
            NameSpace        n1   = CreateNameSpace(test, "N1");
            Structure        s1   = CreateStructure(n1, "S1");
            StructureElement el1  = CreateStructureElement(s1, "E1", "Boolean");
            Structure        s2   = CreateStructure(n1, "S2");
            StructureElement el2  = CreateStructureElement(s2, "E2", "S1");
            Variable         v    = CreateVariable(n1, "V", "S2");

            v.setDefaultValue("N1.S1 { E1 => True }");

            Compiler.Compile_Synchronous(true, true);
            RuleCondition     rc      = CreateRuleAndCondition(n1, "Rule1");
            BaseEditorTextBox textBox = new BaseEditorTextBox();
            {
                //              0         1         2
                //              012345678901234567890123456789
                textBox.Text     = "T";
                textBox.Instance = rc;
                SortedSet <ObjectReference> choices = textBox.AllChoices(0, "T");
                Assert.IsNotNull(choices);
                Assert.AreEqual(2, choices.Count);
                Assert.IsTrue(Contains(choices, "THERE_IS X IN <collection> | <condition>"));
                Assert.IsTrue(Contains(choices, "TARGETS"));
            }
        }
コード例 #10
0
        public static void Run()
        {
            // ExStart:TextStructureElements
            // The path to the documents directory.
            string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();

            // Create Pdf Document
            Document document = new Document();

            // Get Content for work with TaggedPdf
            ITaggedContent taggedContent = document.TaggedContent;

            // Set Title and Language for Documnet
            taggedContent.SetTitle("Tagged Pdf Document");
            taggedContent.SetLanguage("en-US");

            // Get Root Structure Elements
            StructureElement rootElement = taggedContent.RootElement;

            ParagraphElement p = taggedContent.CreateParagraphElement();

            // Set Text to Text Structure Element
            p.SetText("Paragraph.");
            rootElement.AppendChild(p);


            // Save Tagged Pdf Document
            document.Save(dataDir + "TextStructureElement.pdf");
            // ExEnd:TextStructureElements
        }
コード例 #11
0
        public void TestStructureDereference()
        {
            Dictionary       dictionary = CreateDictionary("Test");
            NameSpace        nameSpace  = CreateNameSpace(dictionary, "N1");
            Structure        structure  = CreateStructure(nameSpace, "Struct");
            StructureElement el1        = CreateStructureElement(structure, "e1", "Boolean");
            Function         f          = CreateFunction(nameSpace, "f", "Struct");
            Variable         v          = CreateVariable(nameSpace, "v", "Struct");
            Variable         v2         = CreateVariable(nameSpace, "v2", "Boolean");

            Parser parser = new Parser();
            {
                DerefExpression expression = parser.Expression(nameSpace, "N1.v.e1") as DerefExpression;
                Assert.IsNotNull(expression);
                Assert.AreEqual(3, expression.Arguments.Count);
                Assert.AreEqual(v, expression.Arguments[1].Ref);
                Assert.AreEqual(el1, expression.Arguments [2].Ref);
            }
            {
                DerefExpression expression = parser.Expression(nameSpace, "N1.f().e1") as DerefExpression;
                Assert.IsNotNull(expression);
                Assert.AreEqual(2, expression.Arguments.Count);
                Assert.AreEqual(structure, expression.Arguments [0].Ref);
                Assert.AreEqual(el1, expression.Arguments [1].Ref);
            }
            {
                DerefExpression expression = parser.Expression(nameSpace, "N1.Struct.e1") as DerefExpression;
                Assert.IsNotNull(expression);
                Assert.AreEqual(3, expression.Arguments.Count);
                Assert.AreEqual(structure, expression.Arguments[1].Ref);
                Assert.AreEqual(el1, expression.Arguments[2].Ref);
            }

            RuleCondition condition = CreateRuleAndCondition(nameSpace, "Test");
            Action        action1   = CreateAction(condition, "Struct.e1 <- True");
            Action        action2   = CreateAction(condition, "v2 <- Struct.e1");
            Action        action3   = CreateAction(condition, "f().e1 <- True");
            Action        action4   = CreateAction(condition, "v2 <- f().e1");

            Collection collection = CreateCollection(nameSpace, "Col", "Struct", 10);
            Variable   v3         = CreateVariable(nameSpace, "v3", "Col");
            Action     action5    = CreateAction(condition, "(FIRST X IN v3).e1 <- True");

            RuleCondition ruleCondition2 = CreateRuleAndCondition(structure, "Rule");
            Action        action6        = CreateAction(ruleCondition2, "THIS.e1 <- True");
            Action        action7        = CreateAction(ruleCondition2, "v2 <- THIS.e1");

            RuleCheckerVisitor visitor = new RuleCheckerVisitor(dictionary);

            visitor.visit(nameSpace);

            Assert.True(HasMessagePart(action1, "structure should not be used to reference an instance"));
            Assert.True(HasMessagePart(action2, "structure should not be used to reference an instance"));
            Assert.False(HasMessagePart(action3, "structure should not be used to reference an instance"));
            Assert.False(HasMessagePart(action4, "structure should not be used to reference an instance"));
            Assert.False(HasMessagePart(action5, "structure should not be used to reference an instance"));
            Assert.False(HasMessagePart(action6, "structure should not be used to reference an instance"));
            Assert.False(HasMessagePart(action7, "structure should not be used to reference an instance"));
        }
コード例 #12
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="enclosing"></param>
        /// <param name="structureElement"></param>
        public Field(object enclosing, StructureElement structureElement)
        {
            Enclosing        = enclosing;
            StructureElement = structureElement;
            Value            = new DefaultValue(this);

            DeclaredElements = null;
        }
コード例 #13
0
        public void TestMapExpression()
        {
            Dictionary       test     = CreateDictionary("Test");
            NameSpace        n1       = CreateNameSpace(test, "N1");
            Structure        s1       = CreateStructure(n1, "S1");
            StructureElement el1      = CreateStructureElement(s1, "E1", "Boolean");
            Structure        s2       = CreateStructure(n1, "S2");
            StructureElement el2      = CreateStructureElement(s2, "E2", "S1");
            Function         function = CreateFunction(n1, "f", "S1");

            Collection collection = CreateCollection(n1, "Col", "S1", 10);
            Variable   v          = CreateVariable(n1, "V", "Col");

            Compiler.Compile_Synchronous(true, true);

            RuleCondition rc     = CreateRuleAndCondition(n1, "Rule1");
            Parser        parser = new Parser();

            {
                //                   0         1         2
                //                   012345678901234567890123456
                const string  text       = "MAP V | X. USING X IN X.E1";
                MapExpression expression = parser.Expression(rc, text, null, true, null, true, true) as MapExpression;
                Assert.IsNotNull(expression);
                ContextGrabber grabber = new ContextGrabber();
                Assert.IsNull(grabber.GetContext(0, expression));
                Assert.IsNull(grabber.GetContext(1, expression));
                Assert.IsNull(grabber.GetContext(2, expression));
                Assert.IsNull(grabber.GetContext(3, expression));
                Assert.AreEqual(v, grabber.GetContext(4, expression));
                Assert.AreEqual(v, grabber.GetContext(5, expression));
                Assert.IsNull(grabber.GetContext(6, expression));
                Assert.IsNull(grabber.GetContext(7, expression));
                Assert.AreEqual(expression.IteratorVariable, grabber.GetContext(8, expression));
                Assert.AreEqual(expression.IteratorVariable, grabber.GetContext(9, expression));
                Assert.IsNull(grabber.GetContext(10, expression));
                Assert.IsNull(grabber.GetContext(11, expression));
                Assert.IsNull(grabber.GetContext(12, expression));
                Assert.IsNull(grabber.GetContext(13, expression));
                Assert.IsNull(grabber.GetContext(14, expression));
                Assert.IsNull(grabber.GetContext(15, expression));
                Assert.IsNull(grabber.GetContext(16, expression));
                Assert.IsNull(grabber.GetContext(17, expression));
                Assert.IsNull(grabber.GetContext(18, expression));
                Assert.IsNull(grabber.GetContext(19, expression));
                Assert.IsNull(grabber.GetContext(20, expression));
                Assert.IsNull(grabber.GetContext(21, expression));
                Assert.AreEqual(expression.IteratorVariable, grabber.GetContext(22, expression));
                Assert.AreEqual(expression.IteratorVariable, grabber.GetContext(23, expression));
                Assert.AreEqual(el1, grabber.GetContext(24, expression));
                Assert.AreEqual(el1, grabber.GetContext(25, expression));
                Assert.AreEqual(el1, grabber.GetContext(26, expression));
                Assert.IsNull(grabber.GetContext(27, expression));
            }
        }
コード例 #14
0
        public void TestFunctionCall()
        {
            Dictionary       test = CreateDictionary("Test");
            NameSpace        n1   = CreateNameSpace(test, "N1");
            Structure        s1   = CreateStructure(n1, "S1");
            StructureElement el1  = CreateStructureElement(s1, "E1", "Boolean");
            Structure        s2   = CreateStructure(n1, "S2");
            StructureElement el2  = CreateStructureElement(s2, "E2", "S1");
            Variable         v    = CreateVariable(n1, "V", "S1");

            v.setDefaultValue("N1.S1 { E1 => True }");
            Function function = CreateFunction(n1, "f", "S1");

            Compiler.Compile_Synchronous(true, true);

            RuleCondition rc     = CreateRuleAndCondition(n1, "Rule1");
            Parser        parser = new Parser();

            {
                //                   0         1
                //                   012345678901
                const string            text      = "V <- f().S";
                VariableUpdateStatement statement = parser.Statement(rc, text, true, true) as VariableUpdateStatement;
                ContextGrabber          grabber   = new ContextGrabber();
                Assert.AreEqual(v, grabber.GetContext(0, statement));
                Assert.AreEqual(v, grabber.GetContext(1, statement));
                Assert.IsNull(grabber.GetContext(2, statement));
                Assert.IsNull(grabber.GetContext(3, statement));
                Assert.IsNull(grabber.GetContext(4, statement));
                Assert.AreEqual(function, grabber.GetContext(5, statement));
                Assert.AreEqual(function, grabber.GetContext(6, statement));
                Assert.AreEqual(function, grabber.GetContext(7, statement));
                Assert.AreEqual(s1, grabber.GetContext(8, statement));
                Assert.IsNull(grabber.GetContext(9, statement));
                Assert.IsNull(grabber.GetContext(10, statement));
            }

            {
                //                   0
                //                   0123456789
                const string            text      = "V <- f().";
                VariableUpdateStatement statement = parser.Statement(rc, text, true, true) as VariableUpdateStatement;
                ContextGrabber          grabber   = new ContextGrabber();
                Assert.AreEqual(v, grabber.GetContext(0, statement));
                Assert.AreEqual(v, grabber.GetContext(1, statement));
                Assert.IsNull(grabber.GetContext(2, statement));
                Assert.IsNull(grabber.GetContext(3, statement));
                Assert.IsNull(grabber.GetContext(4, statement));
                Assert.AreEqual(function, grabber.GetContext(5, statement));
                Assert.AreEqual(function, grabber.GetContext(6, statement));
                Assert.AreEqual(function, grabber.GetContext(7, statement));
                Assert.AreEqual(s1, grabber.GetContext(8, statement));
                Assert.IsNull(grabber.GetContext(9, statement));
            }
        }
コード例 #15
0
        /// <summary>
        ///     Sets the target box for this arrow
        /// </summary>
        /// <param name="targetBox"></param>
        public override void SetTargetBox(IGraphicalDisplay targetBox)
        {
            StructureElement structureElement = ReferencedModel as StructureElement;
            Type             type             = targetBox as Type;

            if (structureElement != null && type != null)
            {
                structureElement.Type = type;
                Target = targetBox;
            }
        }
コード例 #16
0
        public static void Run()
        {
            // The path to the documents directory.
            string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();
            string inFile  = dataDir + "TH.pdf";
            string outFile = dataDir + "TH_out.pdf";
            string logFile = dataDir + "TH_out.xml";

            // Open document
            Document document = new Document(inFile);

            // Gets tagged content and root structure element
            ITaggedContent   taggedContent = document.TaggedContent;
            StructureElement rootElement   = taggedContent.RootElement;

            // Set title for tagged pdf document
            taggedContent.SetTitle("Document with images");

            foreach (FigureElement figureElement in rootElement.FindElements <FigureElement>(true))
            {
                // Set Alternative Text  for Figure
                figureElement.AlternativeText = "Figure alternative text (technique 2)";


                // Create and Set BBox Attribute
                StructureAttribute bboxAttribute = new StructureAttribute(AttributeKey.BBox);
                bboxAttribute.SetRectangleValue(new Rectangle(0.0, 0.0, 100.0, 100.0));

                StructureAttributes figureLayoutAttributes = figureElement.Attributes.GetAttributes(AttributeOwnerStandard.Layout);
                figureLayoutAttributes.SetAttribute(bboxAttribute);
            }

            // Move Span Element into Paragraph (find wrong span and paragraph in first TD)
            TableElement     tableElement   = rootElement.FindElements <TableElement>(true)[0];
            SpanElement      spanElement    = tableElement.FindElements <SpanElement>(true)[0];
            TableTDElement   firstTdElement = tableElement.FindElements <TableTDElement>(true)[0];
            ParagraphElement paragraph      = firstTdElement.FindElements <ParagraphElement>(true)[0];

            // Move Span Element into Paragraph
            spanElement.ChangeParentElement(paragraph);


            // Save document
            document.Save(outFile);



            // Checking PDF/UA Compliance for out document
            document = new Document(outFile);

            bool isPdfUaCompliance = document.Validate(logFile, PdfFormat.PDF_UA_1);

            Console.WriteLine(String.Format("PDF/UA compliance: {0}", isPdfUaCompliance));
        }
コード例 #17
0
        public void TestSimpleExpression()
        {
            Dictionary       test = CreateDictionary("Test");
            NameSpace        n1   = CreateNameSpace(test, "N1");
            Structure        s1   = CreateStructure(n1, "S1");
            StructureElement el1  = CreateStructureElement(s1, "E1", "Boolean");
            Structure        s2   = CreateStructure(n1, "S2");
            StructureElement el2  = CreateStructureElement(s2, "E2", "S1");
            Variable         v    = CreateVariable(n1, "V", "S1");

            v.setDefaultValue("N1.S1 { E1 => True }");

            Compiler.Compile_Synchronous(true, true);
            RuleCondition     rc      = CreateRuleAndCondition(n1, "Rule1");
            BaseEditorTextBox textBox = new BaseEditorTextBox();
            {
                //              0123456789
                textBox.Text     = "V <- N1.S";
                textBox.Instance = rc;
                SortedSet <ObjectReference> choices = textBox.AllChoices(7, "S");
                Assert.IsNotNull(choices);
                Assert.AreEqual(2, choices.Count);
                Assert.IsTrue(Contains(choices, s1));
                Assert.IsTrue(Contains(choices, s2));
            }

            {
                //              0123456789
                textBox.Text     = "V <- N1.";
                textBox.Instance = rc;
                SortedSet <ObjectReference> choices = textBox.AllChoices(7, "");
                Assert.IsNotNull(choices);
                Assert.AreEqual(3, choices.Count);
                Assert.IsTrue(Contains(choices, s1));
                Assert.IsTrue(Contains(choices, s2));
                Assert.IsTrue(Contains(choices, v));
            }


            {
                //              0123456789
                textBox.Text     = "(F";
                textBox.Instance = rc;
                SortedSet <ObjectReference> choices = textBox.AllChoices(1, "F");
                Assert.IsNotNull(choices);
                Assert.AreEqual(4, choices.Count);
                Assert.IsTrue(Contains(choices, "FILTER <collection> | <condition> USING X"));
                Assert.IsTrue(Contains(choices, "FIRST X IN <collection> | <condition>"));
                Assert.IsTrue(Contains(choices, "FORALL X IN <collection> | <condition>"));
                Assert.IsTrue(Contains(choices, EfsSystem.Instance.FullDecelerationForTargetPredefinedFunction));
            }
        }
コード例 #18
0
        public static void Run()
        {
            // ExStart:AccessChildrenElements
            // The path to the documents directory.
            string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();

            // Open Pdf Document
            Document document = new Document(dataDir + "StructureElementsTree.pdf");

            // Get Content for work with TaggedPdf
            ITaggedContent taggedContent = document.TaggedContent;

            // Access to root element(s)
            ElementList elementList = taggedContent.StructTreeRootElement.ChildElements;

            foreach (Element element in elementList)
            {
                if (element is StructureElement)
                {
                    StructureElement structureElement = element as StructureElement;

                    // Get properties
                    string title           = structureElement.Title;
                    string language        = structureElement.Language;
                    string actualText      = structureElement.ActualText;
                    string expansionText   = structureElement.ExpansionText;
                    string alternativeText = structureElement.AlternativeText;
                }
            }

            // Access to children elements of first element in root element
            elementList = taggedContent.RootElement.ChildElements[1].ChildElements;
            foreach (Element element in elementList)
            {
                if (element is StructureElement)
                {
                    StructureElement structureElement = element as StructureElement;

                    // Set properties
                    structureElement.Title           = "title";
                    structureElement.Language        = "fr-FR";
                    structureElement.ActualText      = "actual text";
                    structureElement.ExpansionText   = "exp";
                    structureElement.AlternativeText = "alt";
                }
            }

            // Save Tagged Pdf Document
            document.Save(dataDir + "AccessChildrenElements.pdf");

            // ExEnd:AccessChildrenElements
        }
コード例 #19
0
 private StructureElement GetElement(string name, string num)
 {
     if (name.HasValue())
     {
         var elem = new StructureElement
         {
             Sign  = name,
             Count = num.HasValue() ? num.ToNaturalOrZero() : 1
         };
         return(elem);
     }
     return(null);
 }
コード例 #20
0
        public void TestRefactorElementStructureName2()
        {
            Dictionary       test     = CreateDictionary("Test");
            NameSpace        n1       = CreateNameSpace(test, "N1");
            Structure        s1       = CreateStructure(n1, "S1");
            StructureElement el1      = CreateStructureElement(s1, "E1", "Boolean");
            Variable         variable = CreateVariable(n1, "A", "S1");
            RuleCondition    rc1      = CreateRuleAndCondition(n1, "Rule1");
            Action           action   = CreateAction(rc1, "A <- S1 { E1 => False }");

            Refactor(el1, "NewE1");
            Assert.AreEqual("A <- S1 { NewE1 => False }", action.ExpressionText);
        }
コード例 #21
0
            public override void visit(Generated.Procedure obj, bool visitSubNodes)
            {
                Procedure    procedure    = (Procedure)obj;
                StateMachine stateMachine = procedure.StateMachine;

                if (stateMachine.States.Count > 0)
                {
                    stateMachine.Name = procedure.Name + "SM";

                    // Duplicate the process information
                    stateMachine.setImplemented(procedure.getImplemented());
                    stateMachine.setVerified(procedure.getVerified());
                    stateMachine.setNeedsRequirement(procedure.getNeedsRequirement());
                    foreach (ReqRef reqRef in procedure.Requirements)
                    {
                        stateMachine.appendRequirements(reqRef);
                    }
                    stateMachine.setComment(procedure.getComment());

                    NameSpace nameSpace = procedure.Enclosing as NameSpace;
                    if (nameSpace != null)
                    {
                        nameSpace.appendStateMachines(stateMachine);

                        Variable variable = (Variable)Generated.acceptor.getFactory().createVariable();
                        variable.Type = stateMachine;
                        variable.Name = procedure.Name;
                        variable.Mode = Generated.acceptor.VariableModeEnumType.aInternal;
                        nameSpace.appendVariables(variable);

                        nameSpace.removeProcedures(procedure);
                    }

                    Structure structure = procedure.Enclosing as Structure;
                    if (structure != null)
                    {
                        structure.appendStateMachines(stateMachine);

                        StructureElement element = (StructureElement)Generated.acceptor.getFactory().createStructureElement();
                        element.Type = stateMachine;
                        element.Name = procedure.Name;
                        element.Mode = Generated.acceptor.VariableModeEnumType.aInternal;
                        structure.appendElements(element);

                        structure.removeProcedures(procedure);
                    }
                }

                base.visit(obj, visitSubNodes);
            }
コード例 #22
0
        public void TestApplyStatement()
        {
            Dictionary       test     = CreateDictionary("Test");
            NameSpace        n1       = CreateNameSpace(test, "N1");
            Structure        s1       = CreateStructure(n1, "S1");
            StructureElement el1      = CreateStructureElement(s1, "E1", "Boolean");
            Structure        s2       = CreateStructure(n1, "S2");
            StructureElement el2      = CreateStructureElement(s2, "E2", "S1");
            Function         function = CreateFunction(n1, "f", "S1");

            Collection collection = CreateCollection(n1, "Col", "S1", 10);
            Variable   v          = CreateVariable(n1, "V", "Col");

            Compiler.Compile_Synchronous(true, true);

            RuleCondition rc     = CreateRuleAndCondition(n1, "Rule1");
            Parser        parser = new Parser();

            {
                //                   0         1         2
                //                   012345678901234567890123
                const string   text      = "APPLY X <- X ON V | X.";
                ApplyStatement statement = parser.Statement(rc, text, true, true) as ApplyStatement;
                Assert.IsNotNull(statement);
                ContextGrabber grabber = new ContextGrabber();
                Assert.IsNull(grabber.GetContext(0, statement));
                Assert.IsNull(grabber.GetContext(1, statement));
                Assert.IsNull(grabber.GetContext(2, statement));
                Assert.IsNull(grabber.GetContext(3, statement));
                Assert.IsNull(grabber.GetContext(4, statement));
                Assert.IsNull(grabber.GetContext(5, statement));
                Assert.AreEqual(statement.IteratorVariable, grabber.GetContext(6, statement));
                Assert.AreEqual(statement.IteratorVariable, grabber.GetContext(7, statement));
                Assert.IsNull(grabber.GetContext(8, statement));
                Assert.IsNull(grabber.GetContext(9, statement));
                Assert.IsNull(grabber.GetContext(10, statement));
                Assert.AreEqual(statement.IteratorVariable, grabber.GetContext(11, statement));
                Assert.AreEqual(statement.IteratorVariable, grabber.GetContext(12, statement));
                Assert.IsNull(grabber.GetContext(13, statement));
                Assert.IsNull(grabber.GetContext(14, statement));
                Assert.IsNull(grabber.GetContext(15, statement));
                Assert.AreEqual(v, grabber.GetContext(16, statement));
                Assert.AreEqual(v, grabber.GetContext(17, statement));
                Assert.IsNull(grabber.GetContext(18, statement));
                Assert.IsNull(grabber.GetContext(19, statement));
                Assert.AreEqual(statement.IteratorVariable, grabber.GetContext(20, statement));
                Assert.AreEqual(statement.IteratorVariable, grabber.GetContext(21, statement));
                Assert.IsNull(grabber.GetContext(22, statement));
            }
        }
コード例 #23
0
        public static void Run()
        {
            // ExStart:TextBlockStructureElements
            // The path to the documents directory.
            string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();

            // Create Pdf Document
            Document document = new Document();

            // Get Content for work with TaggedPdf
            ITaggedContent taggedContent = document.TaggedContent;

            // Set Title and Language for Documnet
            taggedContent.SetTitle("Tagged Pdf Document");
            taggedContent.SetLanguage("en-US");

            // Get Root Structure Element
            StructureElement rootElement = taggedContent.RootElement;

            HeaderElement h1 = taggedContent.CreateHeaderElement(1);
            HeaderElement h2 = taggedContent.CreateHeaderElement(2);
            HeaderElement h3 = taggedContent.CreateHeaderElement(3);
            HeaderElement h4 = taggedContent.CreateHeaderElement(4);
            HeaderElement h5 = taggedContent.CreateHeaderElement(5);
            HeaderElement h6 = taggedContent.CreateHeaderElement(6);

            h1.SetText("H1. Header of Level 1");
            h2.SetText("H2. Header of Level 2");
            h3.SetText("H3. Header of Level 3");
            h4.SetText("H4. Header of Level 4");
            h5.SetText("H5. Header of Level 5");
            h6.SetText("H6. Header of Level 6");
            rootElement.AppendChild(h1);
            rootElement.AppendChild(h2);
            rootElement.AppendChild(h3);
            rootElement.AppendChild(h4);
            rootElement.AppendChild(h5);
            rootElement.AppendChild(h6);

            ParagraphElement p = taggedContent.CreateParagraphElement();

            p.SetText("P. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean nec lectus ac sem faucibus imperdiet. Sed ut erat ac magna ullamcorper hendrerit. Cras pellentesque libero semper, gravida magna sed, luctus leo. Fusce lectus odio, laoreet nec ullamcorper ut, molestie eu elit. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aliquam lacinia sit amet elit ac consectetur. Donec cursus condimentum ligula, vitae volutpat sem tristique eget. Nulla in consectetur massa. Vestibulum vitae lobortis ante. Nulla ullamcorper pellentesque justo rhoncus accumsan. Mauris ornare eu odio non lacinia. Aliquam massa leo, rhoncus ac iaculis eget, tempus et magna. Sed non consectetur elit. Sed vulputate, quam sed lacinia luctus, ipsum nibh fringilla purus, vitae posuere risus odio id massa. Cras sed venenatis lacus.");
            rootElement.AppendChild(p);

            // Save Tagged Pdf Document
            document.Save(dataDir + "TextBlockStructureElements.pdf");

            // ExEnd:TextBlockStructureElements
        }
コード例 #24
0
        public void TestRefactorInterfaceField()
        {
            Dictionary test = CreateDictionary("Test");
            NameSpace  n0   = CreateNameSpace(test, "N0");
            Structure  i1   = CreateStructure(n0, "I1");

            i1.setIsAbstract(true);
            StructureElement el1 = CreateStructureElement(i1, "E1", "Boolean");
            Structure        s1  = CreateStructure(n0, "S1");
            StructureRef     sr  = CreateStructureRef(s1, "I1");
            StructureElement el2 = CreateStructureElement(s1, "E1", "Boolean");

            Refactor(el1, "NewE1");
            Assert.AreEqual("NewE1", el2.Name);
        }
コード例 #25
0
        /// <summary>
        /// Actions to be taken when the variable's value changes
        /// </summary>
        /// <param name="cacheImpact"></param>
        public void HandleChange(CacheImpact cacheImpact)
        {
            StructureValue value = Enclosing as StructureValue;

            if (value != null)
            {
                IVariable variable = value.Enclosing as IVariable;
                if (variable != null)
                {
                    variable.HandleChange(cacheImpact);
                }
            }

            StructureElement.HandleChange(cacheImpact);
        }
コード例 #26
0
        public void TestRefactorNameSpaceName4()
        {
            Dictionary       test         = CreateDictionary("Test");
            NameSpace        n0           = CreateNameSpace(test, "N0");
            NameSpace        n1           = CreateNameSpace(n0, "N1");
            Structure        s1           = CreateStructure(n1, "S1");
            StateMachine     stataMachine = CreateStateMachine(s1, "StateMachine");
            StructureElement el1          = CreateStructureElement(s1, "E1", "StateMachine");

            NameSpace n2 = CreateNameSpace(n0, "N2");

            Refactor(n2, "NewN2");
            Assert.AreEqual(stataMachine, el1.Type);
            Assert.AreEqual("StateMachine", el1.TypeName);
        }
コード例 #27
0
        public void TestEnclosing()
        {
            Dictionary       dictionary   = CreateDictionary("Test");
            NameSpace        nameSpace    = CreateNameSpace(dictionary, "N1");
            Structure        structure    = CreateStructure(nameSpace, "S");
            StructureElement element      = CreateStructureElement(structure, "E", "Integer");
            StateMachine     stateMachine = CreateStateMachine(structure, "SM");
            RuleCondition    condition    = CreateRuleAndCondition(stateMachine, "Cond");
            PreCondition     preCondition = CreatePreCondition(condition, "ENCLOSING.E == 0");

            RuleCheckerVisitor visitor = new RuleCheckerVisitor(dictionary);

            visitor.visit(nameSpace);

            Assert.Null(ErrorMessage(preCondition));
        }
コード例 #28
0
        public void TestRefactorNameSpaceWithStructure()
        {
            Dictionary dictionary = CreateDictionary("Test");
            NameSpace  nameSpace1 = CreateNameSpace(dictionary, "N1");

            Structure        structure        = CreateStructure(nameSpace1, "Test");
            StructureElement structureElement = CreateStructureElement(structure, "El1", "Boolean");
            Procedure        procedure        = CreateProcedure(structure, "ValidateEl1");
            RuleCondition    condition1       = CreateRuleAndCondition(procedure, "Set to True");
            Action           setTrue          = CreateAction(condition1, "THIS.El1 <- True");

            Variable variable = CreateVariable(nameSpace1, "V", "N1.Test");

            Refactor(nameSpace1, "NameSpace");

            Assert.AreEqual(((Action)condition1.Actions[0]).ExpressionText, "THIS.El1 <- True");
        }
コード例 #29
0
        public void TestRefactorStructureAccessedwithFIRST_IN()
        {
            Dictionary dictionary = CreateDictionary("Test");
            NameSpace  nameSpace1 = CreateNameSpace(dictionary, "N1");

            Structure        structure  = CreateStructure(nameSpace1, "Test");
            StructureElement element    = CreateStructureElement(structure, "El", "Boolean");
            Collection       collection = CreateCollection(nameSpace1, "TestCol", "Test", 10);

            Variable varCol = CreateVariable(nameSpace1, "var", "TestCol");

            Function function = CreateFunction(nameSpace1, "TestFun", "Boolean");
            Case     case1    = CreateCase(function, "Value", "(FIRST X IN var).El");

            Refactor(structure, "TestStructure");

            Assert.AreEqual(((Case)function.Cases[0]).ExpressionText, "(FIRST X IN var).El");
        }
コード例 #30
0
        public void TestBugReport669()
        {
            Dictionary dictionary = CreateDictionary("Test");
            NameSpace  nameSpace1 = CreateNameSpace(dictionary, "N1");

            Enum enumeration = CreateEnum(nameSpace1, "Mode");
            Enum enum2       = CreateEnum(enumeration, "M");

            Structure        structure = CreateStructure(nameSpace1, "Struct");
            StructureElement element   = CreateStructureElement(structure, "E", "Mode.M");

            Function function = CreateFunction(nameSpace1, "F", "Mode.M");

            Refactor(enumeration, "ModeEnum");

            Assert.AreEqual(element.Type, enum2);
            Assert.AreEqual(element.TypeName, "ModeEnum.M");
            Assert.AreEqual(function.TypeName, "ModeEnum.M");
        }
コード例 #31
0
        /// <summary>
        ///     Indicates if the given structure element is inherited from an interface or not
        /// </summary>
        /// <param name="anElement"></param>
        /// <returns></returns>
        public bool StructureElementIsInherited(StructureElement anElement)
        {
            bool retVal = false;

            foreach (Structure inheritedStructure in Interfaces)
            {
                if (inheritedStructure != null)
                {
                    foreach (StructureElement inheritedElement in inheritedStructure.Elements)
                    {
                        if (anElement.Name.Equals(inheritedElement.Name))
                        {
                            retVal = true;
                            break;
                        }
                    }
                }
            }

            return retVal;
        }
コード例 #32
0
        /// <summary>
        ///     Creates a copy of the structure element in the designated dictionary. The namespace structure is copied over.
        ///     The new structure element is set to update this one.
        /// </summary>
        /// <param name="dictionary">The target dictionary of the copy</param>
        /// <returns></returns>
        public StructureElement CreateStructureElementUpdate(Dictionary dictionary)
        {
            StructureElement retVal = new StructureElement();
            retVal.Name = Name;
            retVal.TypeName = TypeName;
            retVal.Comment = Comment;
            retVal.setUpdates(Guid);

            String[] names = FullName.Split('.');
            names = names.Take(names.Count() - 1).ToArray();
            String[] nameSpaceRef = names.Take(names.Count() - 1).ToArray();

            NameSpace nameSpace = dictionary.GetNameSpaceUpdate(nameSpaceRef, Dictionary);
            Structure structure = nameSpace.GetStructureUpdate(names.Last(), (NameSpace)nameSpace.Updates);
            structure.appendElements(retVal);

            return retVal;
        }