{"id":338,"date":"2019-03-25T17:30:22","date_gmt":"2019-03-25T20:30:22","guid":{"rendered":"http:\/\/xexeu.elipse.com.br\/pt\/developing-objectoriented-applications-with-e3-part-ii\/"},"modified":"2019-07-05T16:34:50","modified_gmt":"2019-07-05T19:34:50","slug":"developing-objectoriented-applications-with-e3-part-ii","status":"publish","type":"post","link":"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-with-e3-part-ii\/","title":{"rendered":"Developing object-oriented applications with E3 &#8211; Part II"},"content":{"rendered":"<p align=\"justify\"><span style=\"font-family: Tahoma;\"><strong>1) Introduction<\/strong><\/p>\n<p>In part I of this article we saw the correct way to create links for animation of the screen controls. In part II, we discuss the best strategy for developing an application for an imaginary industrial plant.<\/p>\n<p><strong>2) Description of the plant<\/strong><\/p>\n<p>The plant of this example has two tanks (each with a valve that allows the liquid to enter) and a pump in the exit. By clicking the valve, the tank starts to be filled; by clicking the pump, the tank is emptied.<\/p>\n<p>When opened, each valve becomes green and their legend displays the word \u201cOpened\u201d; when closed, they become red and their legend displays \u201cClosed\u201d. The pump, on its turn, becomes green displays a legend with the word \u201cOn\u201d when it is on, and becomes red and displays \u201cOff\u201d when it is off.<\/p>\n<p>Next, there is a layout of the plant.<\/p>\n<p><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/images\/ID72\/Picture1.PNG\" alt=\"\" width=\"330\" height=\"254\" align=\"baseline\" border=\"0\" \/><br \/>\nPicture 1 \u2013 Industrial plant with two tanks<\/p>\n<p><strong>3) Developing the object library<\/strong><\/p>\n<p>The first step for developing an E3 application is to determine which functionalities of the process will be repeated and can be transformed into E3 objects.<\/p>\n<p>In this application you can easily see which screen objects are repeated: tanks, pumps, valves, and pipes. After the objects have been identified, it is necessary to define each of their functionalities and properties, as well as their design.<\/p>\n<p>It is also necessary to execute tank working logic in the server. This logic is defined in a XObject, called \u201cTankLogic\u201d.<\/p>\n<p>Next, you will see how to create each of these objects.<\/p>\n<p><strong>Creating the TankLogic XObject<\/strong><\/p>\n<p>Initially, you will create a project called <strong>Plant<\/strong>, with a library called <strong>PlantLib<\/strong>. The definitions of the XObjects and XControls will be in <strong>PlantLib<\/strong> library. The objects executed in the server and the Viewer screens will be in <strong>Plant<\/strong> project.<\/p>\n<p>The TankLogic object (Figure 2) will have three properties to control tank process: ValveOpened informs whether the valve in the entrance of the tank is opened; Meter informs tank\u2019s liquid level; and PumpActivated reports whether the pump in the exit of the tank is on.<\/p>\n<p>An important tip for this step of the process is to fill the \u201cHelp text\u201d column of each property added to an ElipseX (Figure 2). Each property\u2019s text will then be shown in the AppBrowser, helping you maintain the application in the future.<\/p>\n<p>For the purposes of this article, we will not go into many details on this object\u2019s implementation; you should only know that when ValveOpened property is True, the tank starts to be filled up until Meter property reaches the limit of 100 units. When the PumpActivated property is on, the pump in the exit is on and the tank is emptied. When the pump is on and the valve is open, Meter property\u2019s value remains the same.<\/p>\n<p><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/images\/ID72\/Picture2.PNG\" alt=\"\" width=\"550\" height=\"156\" align=\"baseline\" border=\"0\" \/><br \/>\nPicture 2 \u2013 TankLogic object\u2019s definition<\/p>\n<p><strong>Creating the XControl Tank<\/strong><\/p>\n<p>The Tank object is made of the drawing of a reservoir and of two counters displaying liquid amount, one with an analog vertical bar and the other with the value in tons in the tank (Figure 3).<\/p>\n<p><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/images\/ID72\/Picture3.PNG\" alt=\"\" width=\"248\" height=\"212\" align=\"baseline\" border=\"0\" \/><br \/>\nPicture 3 \u2013 Tank object<\/p>\n<p>To show you how flexible ElipseX libraries are, the Tank object will be divided in two parts: one with the drawing of the reservoir, and the other with the drawing of the counters. Thus, you will be able to see that an ElipseX object can be made of other pre-existing objects.<\/p>\n<p><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/images\/ID72\/Picture4.PNG\" alt=\"\" width=\"511\" height=\"146\" align=\"baseline\" border=\"0\" \/><br \/>\nPicture 4 \u2013 Definition of the Value property of the Gauge object<\/p>\n<p>The Gauge object contains the counters, and has a property called Value (see Figure 4), that will be used to animate the object\u2019s internal controls. The drawing of Gauge object is in Figure 5.<\/p>\n<p><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/images\/ID72\/Picture5.PNG\" alt=\"\" width=\"550\" height=\"239\" align=\"baseline\" border=\"0\" \/><br \/>\nPicture 5 \u2013Gauge object\u2019s links<\/p>\n<p>Notice that the two objects forming the Gauge are linked to Gauge\u2019s Value property. This means that whenever Gauge\u2019s Value property changes, this value will be sent automatically to the two objects linked to this property.<\/p>\n<p>Now, we will see Tank object itself. The object is made of the drawing of reservoir and Gauge object (Figure 6).<\/p>\n<p><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/images\/ID72\/Picture6.PNG\" alt=\"\" width=\"481\" height=\"223\" align=\"baseline\" border=\"0\" \/><br \/>\nPicture 6 \u2013 XControl Tank\u2019s definitions<\/p>\n<p>Next, we will handle the properties of this object. There are two different approaches for this: you can either add an Integer type property and link it to Gauge1\u2019s Value property, or create a TankLogic type property and link Gauge1\u2019s Value property to TankLogic\u2019s Meter property.<\/p>\n<p>For this example, we will choose the second option (Figure 7).<\/p>\n<p><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/images\/ID72\/Picture7.PNG\" alt=\"\" width=\"550\" height=\"172\" align=\"baseline\" border=\"0\" \/><br \/>\nPicture 7 \u2013 Tank object\u2019s TankLogic property<\/p>\n<p>Now, all you have to do is link Gauge1 object\u2019s Value property to TankLogic\u2019s Meter property (Figure 8). This is how Gauge1 object will access the properties of the external object linked to TankLogic property.<\/p>\n<p><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/images\/ID72\/Picture8.PNG\" alt=\"\" width=\"535\" height=\"236\" align=\"baseline\" border=\"0\" \/><br \/>\nPicture 8 \u2013 Tank object\u2019s link<\/p>\n<p><strong>Creating the XControl Valve<\/strong><\/p>\n<p>The Valve object is made of the drawing of a valve that is red when the valve is closed and green when it is opened. By clicking on the object, it switches the current state of the ValveOpened property linked to the TankLogic object, either opening or closing the valve.<\/p>\n<p>The first step to build this object is to create a TankLogic type property called TankLogic, and then linking this object to a TankLogic object in the server.<\/p>\n<p><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/images\/ID72\/Picture9.PNG\" alt=\"\" width=\"517\" height=\"170\" align=\"baseline\" border=\"0\" \/><br \/>\nPicture 9 \u2013 Valve object\u2019s TankLogic property<\/p>\n<p>Next, there is the drawing of the Valve object and its links (Figure 10). You can observe that both and Figure1 were linked to Valve\u2019s TankLogic ValveOpened property.<\/p>\n<p><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/images\/ID72\/Picture10.PNG\" alt=\"\" width=\"550\" height=\"241\" align=\"baseline\" border=\"0\" \/><br \/>\nPicture 10 \u2013 Valve object links<\/p>\n<p>Now you need a script that switches TankLogic\u2019s ValveOpened property by clicking on the valve. This is done via a Click () script in Figura1 object (Figure 11).<\/p>\n<p><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/images\/ID72\/Picture11.PNG\" alt=\"\" width=\"550\" height=\"262\" align=\"baseline\" border=\"0\" \/><br \/>\nPicture 11 \u2013 Click script<\/p>\n<p><strong>Creating the XControl Pump<\/strong><\/p>\n<p>The Pump object is nearly the same as the Valve object, but two things are different: its drawing is a pump, and it switches TankLogic\u2019s PumpActivated property (Figure 12).<\/p>\n<p><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/images\/ID72\/Picture12.PNG\" alt=\"\" width=\"550\" height=\"217\" align=\"baseline\" border=\"0\" \/><br \/>\nPicture 12 \u2013 Pump object\u2019s links<\/p>\n<p><strong>4) Building the application<\/strong><\/p>\n<p>Once the library is ready, you need to add the objects to a project. To do so, you will have to create them in the Plant project. Since the application has two tanks, you will need two tank process simulators; therefore, it is necessary to create two TankLogic objects in the folder Data Server (Figure 13).<\/p>\n<p><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/images\/ID72\/Picture13.PNG\" alt=\"\" width=\"373\" height=\"210\" align=\"baseline\" border=\"0\" \/><br \/>\nPicture 13 \u2013 TankLogic objects instanced in the server<\/p>\n<p>Both objects, TankLogic1 and TankLogic2, will be later linked to the screen objects working as interface with the user for the opening\/closing of the valve and connection\/disconnection of the pump.<\/p>\n<p>The objects created in the library, such as tanks, pumps, valves, and pipes, will be inserted onto the InitialScreen (see Figure 14). Each object will be linked to its respective TankLogic.<\/p>\n<p><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/images\/ID72\/Picture14.PNG\" alt=\"\" width=\"339\" height=\"256\" align=\"baseline\" border=\"0\" \/><br \/>\nPicture 14 \u2013 Inserting the Tank object onto screen<\/p>\n<p>The last step developing this application is linking the screen objects to their respective TankLogic objects (Figure 15).<\/p>\n<p><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/images\/ID72\/Picture15.PNG\" alt=\"\" width=\"550\" height=\"289\" align=\"baseline\" border=\"0\" \/><br \/>\nPicture 15 \u2013 Linking Tank1 object to Dados.TankLogic1<\/p>\n<p>You can see how easy it is to create and maintain applications using the library resources in E3. After the library has been created, you can just create objects and their links, which facilitates your work enormously.<\/p>\n<p>Notice that the library only keeps objects\u2019 definitions; you should insert them in the project and configure their properties to have them working properly.<\/p>\n<p><strong>5) Conclusion<\/strong><\/p>\n<p>We saw in this application how simple and fast it is to create functional objects with the use of E3 libraries. With them, the paradigm of having to create the whole application from scratch is broken, because you can re-use objects previously used in other applications.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1) Introduction In part I of this article we saw the correct way to create links for animation of the screen controls. In part II, we discuss the best strategy&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0},"categories":[769],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Developing object-oriented applications with E3 - Part II[:] - Elipse Knowledgebase<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-with-e3-part-ii\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Developing object-oriented applications with E3 - Part II\" \/>\n<meta property=\"og:description\" content=\"1) Introduction In part I of this article we saw the correct way to create links for animation of the screen controls. In part II, we discuss the best strategy&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-with-e3-part-ii\/\" \/>\n<meta property=\"og:site_name\" content=\"Elipse Knowledgebase\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/www.facebook.com\/elipsesoftware\" \/>\n<meta property=\"article:published_time\" content=\"2019-03-25T20:30:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-07-05T19:34:50+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/kb.elipse.com.br\/images\/ID72\/Picture1.PNG\" \/>\n<meta name=\"author\" content=\"Elipse Software\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Elipse Software\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-with-e3-part-ii\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-with-e3-part-ii\/\"},\"author\":{\"name\":\"Elipse Software\",\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/person\/def69ea453ea60b250497b89225a9f87\"},\"headline\":\"Developing object-oriented applications with E3 &#8211; Part II\",\"datePublished\":\"2019-03-25T20:30:22+00:00\",\"dateModified\":\"2019-07-05T19:34:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-with-e3-part-ii\/\"},\"wordCount\":1240,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kb.elipse.com.br\/#organization\"},\"articleSection\":[\"XControl \/ XObject \/ Lib\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-with-e3-part-ii\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-with-e3-part-ii\/\",\"url\":\"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-with-e3-part-ii\/\",\"name\":\"[:pt]Developing object-oriented applications with E3 - Part II[:] - Elipse Knowledgebase\",\"isPartOf\":{\"@id\":\"https:\/\/kb.elipse.com.br\/#website\"},\"datePublished\":\"2019-03-25T20:30:22+00:00\",\"dateModified\":\"2019-07-05T19:34:50+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-with-e3-part-ii\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-with-e3-part-ii\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-with-e3-part-ii\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/kb.elipse.com.br\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Developing object-oriented applications with E3 &#8211; Part II\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kb.elipse.com.br\/#website\",\"url\":\"https:\/\/kb.elipse.com.br\/\",\"name\":\"Elipse Knowledgebase\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/kb.elipse.com.br\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kb.elipse.com.br\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kb.elipse.com.br\/#organization\",\"name\":\"Elipse Software\",\"url\":\"https:\/\/kb.elipse.com.br\/\",\"sameAs\":[\"http:\/\/www.facebook.com\/elipsesoftware\"],\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kb.elipse.com.br\/wp-content\/uploads\/2019\/05\/schererelipse-com-br\/logoElipse.png\",\"contentUrl\":\"https:\/\/kb.elipse.com.br\/wp-content\/uploads\/2019\/05\/schererelipse-com-br\/logoElipse.png\",\"width\":161,\"height\":58,\"caption\":\"Elipse Software\"},\"image\":{\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/person\/def69ea453ea60b250497b89225a9f87\",\"name\":\"Elipse Software\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ff1f7ec38f4687b06f6851d97b3cd2d0?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ff1f7ec38f4687b06f6851d97b3cd2d0?s=96&d=mm&r=g\",\"caption\":\"Elipse Software\"},\"url\":\"https:\/\/kb.elipse.com.br\/en\/author\/webmasterelipse-com-br\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Developing object-oriented applications with E3 - Part II[:] - Elipse Knowledgebase","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-with-e3-part-ii\/","og_locale":"en_US","og_type":"article","og_title":"[:pt]Developing object-oriented applications with E3 - Part II[:] - Elipse Knowledgebase","og_description":"1) Introduction In part I of this article we saw the correct way to create links for animation of the screen controls. In part II, we discuss the best strategy&hellip;","og_url":"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-with-e3-part-ii\/","og_site_name":"Elipse Knowledgebase","article_publisher":"http:\/\/www.facebook.com\/elipsesoftware","article_published_time":"2019-03-25T20:30:22+00:00","article_modified_time":"2019-07-05T19:34:50+00:00","og_image":[{"url":"http:\/\/kb.elipse.com.br\/images\/ID72\/Picture1.PNG"}],"author":"Elipse Software","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Elipse Software","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-with-e3-part-ii\/#article","isPartOf":{"@id":"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-with-e3-part-ii\/"},"author":{"name":"Elipse Software","@id":"https:\/\/kb.elipse.com.br\/#\/schema\/person\/def69ea453ea60b250497b89225a9f87"},"headline":"Developing object-oriented applications with E3 &#8211; Part II","datePublished":"2019-03-25T20:30:22+00:00","dateModified":"2019-07-05T19:34:50+00:00","mainEntityOfPage":{"@id":"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-with-e3-part-ii\/"},"wordCount":1240,"commentCount":0,"publisher":{"@id":"https:\/\/kb.elipse.com.br\/#organization"},"articleSection":["XControl \/ XObject \/ Lib"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-with-e3-part-ii\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-with-e3-part-ii\/","url":"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-with-e3-part-ii\/","name":"[:pt]Developing object-oriented applications with E3 - Part II[:] - Elipse Knowledgebase","isPartOf":{"@id":"https:\/\/kb.elipse.com.br\/#website"},"datePublished":"2019-03-25T20:30:22+00:00","dateModified":"2019-07-05T19:34:50+00:00","breadcrumb":{"@id":"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-with-e3-part-ii\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-with-e3-part-ii\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-with-e3-part-ii\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/kb.elipse.com.br\/en\/"},{"@type":"ListItem","position":2,"name":"Developing object-oriented applications with E3 &#8211; Part II"}]},{"@type":"WebSite","@id":"https:\/\/kb.elipse.com.br\/#website","url":"https:\/\/kb.elipse.com.br\/","name":"Elipse Knowledgebase","description":"","publisher":{"@id":"https:\/\/kb.elipse.com.br\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kb.elipse.com.br\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/kb.elipse.com.br\/#organization","name":"Elipse Software","url":"https:\/\/kb.elipse.com.br\/","sameAs":["http:\/\/www.facebook.com\/elipsesoftware"],"logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kb.elipse.com.br\/#\/schema\/logo\/image\/","url":"https:\/\/kb.elipse.com.br\/wp-content\/uploads\/2019\/05\/schererelipse-com-br\/logoElipse.png","contentUrl":"https:\/\/kb.elipse.com.br\/wp-content\/uploads\/2019\/05\/schererelipse-com-br\/logoElipse.png","width":161,"height":58,"caption":"Elipse Software"},"image":{"@id":"https:\/\/kb.elipse.com.br\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/kb.elipse.com.br\/#\/schema\/person\/def69ea453ea60b250497b89225a9f87","name":"Elipse Software","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kb.elipse.com.br\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ff1f7ec38f4687b06f6851d97b3cd2d0?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ff1f7ec38f4687b06f6851d97b3cd2d0?s=96&d=mm&r=g","caption":"Elipse Software"},"url":"https:\/\/kb.elipse.com.br\/en\/author\/webmasterelipse-com-br\/"}]}},"_links":{"self":[{"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/posts\/338"}],"collection":[{"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/comments?post=338"}],"version-history":[{"count":1,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/posts\/338\/revisions"}],"predecessor-version":[{"id":7612,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/posts\/338\/revisions\/7612"}],"wp:attachment":[{"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/media?parent=338"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/categories?post=338"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/tags?post=338"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}