{"id":24525,"date":"2024-02-15T14:53:34","date_gmt":"2024-02-15T22:53:34","guid":{"rendered":"https:\/\/docs.extraview.com\/v25\/book\/ucadjustworkdays-1\/"},"modified":"2024-02-15T14:53:34","modified_gmt":"2024-02-15T22:53:34","slug":"ucadjustworkdays-1","status":"publish","type":"page","link":"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/user-custom-methods-1\/ucadjustworkdays-1\/","title":{"rendered":"ucAdjustWorkdays"},"content":{"rendered":"<h3>\n\tPurpose<\/h3>\n<p>This is used to allow special date arithmetic. A true value is returned if a change has been made.<\/p>\n<h3>\n\tApplies To<\/h3>\n<p><em>Add Issue<\/em> screen<\/p>\n<h3>\n\tSignature<\/h3>\n<pre class=\"code\">\r\n<code> public boolean ucAdjustWorkdays (int action, DateCalculator dc)<\/code>\r\n<\/pre>\n<h3>\n\tNotes<\/h3>\n<h3>\n\tExample<\/h3>\n<pre class=\"code\">\r\n<code>\/\/ Setup global vars used by ucAdjustWorkdays\r\n\r\nCalendar [] holidays = null;\r\nstatic final long MILLIS_PER_DAY = 24 * 60 * 60 * 1000;\r\n\r\n\/\/ Setup methods used by ucAdjustWorkdays\r\n\r\nint myCompare (Calendar c1, Calendar c2) {\r\n    \/\/ Note: This looks like it's trying to get the same day\r\n    \/\/ by dividing by MILLIS_PER_DAY,\r\n    \/\/ but that can cross date boundaries;\r\n    \/\/ probably due to the TZ offset, don't want to change this \r\n    \/\/ at the moment as it seeems to wrork for what is needed.\r\n    long t1 = c1.getTimeInMillis() \/ MILLIS_PER_DAY;\r\n    long t2 = c2.getTimeInMillis() \/ MILLIS_PER_DAY;\r\n    if (t1 &gt; t2)      { return 1;  }\r\n    else if (t1 &lt; t2) { return -1; }\r\n    \r\n    return 0;\r\n}\r\n\r\n\r\nvoid backupOneBusinessDay (Calendar st, Calendar start)\r\n{\r\n    st.add(Calendar.DATE, -1);\r\n    start.add(Calendar.DATE, -1);\r\n\r\n    if (st.get(Calendar.DAY_OF_WEEK) &gt; 6) {    \/\/ saturday\r\n      st.add(Calendar.DATE, -1);\r\n      start.add(Calendar.DATE, -1);\r\n    }\r\n    if (st.get(Calendar.DAY_OF_WEEK) == 1) {    \/\/ sunday\r\n      st.add(Calendar.DATE, -2);\r\n      start.add(Calendar.DATE, -2);\r\n    }\r\n}\r\n\r\n\r\nvoid advanceOneBusinessDay (Calendar st, Calendar start)\r\n{\r\n    st.add(Calendar.DATE, 1);\r\n    start.add(Calendar.DATE, 1);\r\n\r\n    if (st.get(Calendar.DAY_OF_WEEK) == 7) {    \/\/ saturday\r\n      st.add(Calendar.DATE, 2);\r\n      start.add(Calendar.DATE, 2);\r\n    }\r\n    if (st.get(Calendar.DAY_OF_WEEK) == 1) {    \/\/ sunday\r\n      st.add(Calendar.DATE, 1);\r\n      start.add(Calendar.DATE, 1);\r\n    }\r\n}\r\n\r\n\r\npublic void setHolidays (Connection con, SesameSession session)\r\nthrows Exception\r\n{\r\n    holidays = new Calendar[9];\r\n    \r\n    DbTime t =  new DbTime(session, con);\r\n    Calendar c = t.getUserNow() ;\r\n    int i = 0;\r\n    \r\n    c.set(Calendar.AM_PM, Calendar.PM);\r\n    \/\/ New Year\u2019s Day  Friday, January 1, 2010\r\n    c.set(2010, 0, 1, 0, 0,  0);\r\n    c.set(Calendar.MILLISECOND, 0);\r\n    c.add(Calendar.DATE, 1);\r\n    c.add(Calendar.DATE, -1);\r\n    holidays[i++] = (Calendar) c.clone();\r\n    \r\n    \/\/ President\u2019s Day  Monday, February 15, 2010\r\n    c.set(2010, 1, 15);\r\n    c.add(Calendar.DATE, 1);\r\n    c.add(Calendar.DATE, -1);\r\n    holidays[i++] = (Calendar) c.clone();\r\n    \r\n    \/\/ Memorial Day  Monday, May 31, 2010\r\n    c.set(2010, 4, 31);\r\n    c.add(Calendar.DATE, 1);\r\n    c.add(Calendar.DATE, -1);\r\n    holidays[i++] = (Calendar) c.clone();\r\n    \r\n    \/\/ Independence Day  Monday, July 5, 2010\r\n    c.set(2010, 6,  5);\r\n    c.add(Calendar.DATE, 1);\r\n    c.add(Calendar.DATE, -1);\r\n    holidays[i++] = (Calendar) c.clone();\r\n    \r\n    \/\/ Labor Day  Monday, September 6, 2010\r\n    c.set(2008, 8,  6);\r\n    c.add(Calendar.DATE, 1);\r\n    c.add(Calendar.DATE, -1);\r\n    holidays[i++] = (Calendar) c.clone();\r\n    \r\n    \/\/ Thanksgiving Day  Thursday, November 25, 2010\r\n    c.set(2010,10, 25);\r\n    c.add(Calendar.DATE, 1);\r\n    c.add(Calendar.DATE, -1);\r\n    holidays[i++] = (Calendar) c.clone();\r\n    \r\n    \/\/ Day after Thanksgiving  Friday, November 26, 2010\r\n    c.set(2010,10, 26);\r\n    c.add(Calendar.DATE, 1);\r\n    c.add(Calendar.DATE, -1);\r\n    holidays[i++] = (Calendar) c.clone();\r\n    \r\n    \/\/ Christmas Eve  Friday, December 24, 2010\r\n    c.set(2010,11, 24);\r\n    c.add(Calendar.DATE, 1);\r\n    c.add(Calendar.DATE, -1);\r\n    holidays[i++] = (Calendar) c.clone();\r\n    \r\n    \/\/ Christmas Day Monday, December 27, 2010\r\n    c.set(2010,11, 27);\r\n    c.add(Calendar.DATE, 1);\r\n    c.add(Calendar.DATE, -1);\r\n    holidays[i++] = (Calendar) c.clone();\r\n    \r\n    \/\/ for (i=0; i &lt; holidays.length; i++) w(\"holiday[\" + i + \"]: \" + dmpD(holidays[i]));\r\n}\r\n\r\n\r\npublic boolean ucAdjustWorkdays (int action, DateCalculator dc)\r\nthrows Exception\r\n{\r\n    boolean changed = false;\r\n    \r\n    if (holidays == null)\r\n    {\r\n        SesameSession session = SesameSession.getSession();\r\n        Connection con = null;\r\n        \r\n        try {\r\n            con = Z.pool.getConnection(\"ucAdjustWorkdays\");\r\n            setHolidays (con, session);\r\n            \r\n        } catch (Exception e) {\r\n            holidays = null;\r\n            Z.log.writeToLog(Z.log.ERROR, \"UC: ucAdjustWorkdays Exception: \" + e);\r\n            ErrorWriter.write(e, ErrorWriter.LOGERR);\r\n            \r\n        } finally {\r\n            if (con != null) { Z.pool.close(con); }\r\n        }\r\n    }\r\n    \r\n    Calendar start = dc.getStartDate();\r\n    Calendar end = dc.getEndDate();\r\n    double interval = dc.getInterval();\r\n    boolean isReversed = false;\r\n    \/\/ w(\"action ==? : \" + (action == DateCalculator.SET_INTERVAL));\r\n    \/\/ if we're setting the interval, check for holidays inside...\r\n    if (action == DateCalculator.SET_INTERVAL)\r\n    {\r\n        if (start.before(end)) {\r\n            Calendar t = start;\r\n            start = end;\r\n            end = t;\r\n            interval = - interval;\r\n            isReversed = true;\r\n        }\r\n        \r\n        for (int i=0; i &lt; holidays.length; i++)\r\n        {\r\n            \/\/ w(\"holiday: \" + dmpD(holidays[i]) + \"; start: \" + dmpD(start) +\r\n            \/\/ \"; end: \" + dmpD(end) + \"; mycomp: \" + myCompare(start, holidays[i]) +\r\n            \/\/ \"; comp2: \" + myCompare(end, holidays[i]));\r\n            if (!start.before(holidays[i]) &amp;&amp; !end.after(holidays[i])) {\r\n                interval -= 1.d;\r\n            }\r\n        }\r\n        \r\n        if (isReversed) { interval = - interval; }\r\n        \r\n        if (dc.getInterval() != interval) {\r\n            dc.setInterval(interval);\r\n            return true;\r\n        }\r\n        \r\n        return false;\r\n    }\r\n        \r\n    \/\/ \r\n    if (dc.getInterval() == 0.d) { return false; }\r\n    \r\n    \/\/ w(\"start: \" + dmpD(start) +\"; end: \" + dmpD(end) + \"; interval: \" + interval);\r\n    \/\/ workaound for rules bug passing in interval with wrong sign in 6.0.1 code.\r\n    \/\/ this can be removed in 6.1.\r\n    if (start.after(end) &amp;&amp; interval &gt; 0.d || start.before(end) &amp;&amp; interval &lt; 0.d ) {\r\n        interval = -interval;\r\n    }\r\n    \r\n    Calendar st = (Calendar) start.clone();\r\n    st.set(Calendar.AM_PM, Calendar.PM);\r\n    st.set(Calendar.HOUR, 0);\r\n    st.set(Calendar.MINUTE, 0);\r\n    st.set(Calendar.SECOND, 0);\r\n    st.set(Calendar.MILLISECOND, 0);\r\n    st.add(Calendar.DATE, 1);\r\n    st.add(Calendar.DATE, -1);\r\n    \r\n    Calendar en = (Calendar) end.clone();\r\n    en.set(Calendar.AM_PM, Calendar.PM);\r\n    en.set(Calendar.HOUR, 0);\r\n    en.set(Calendar.MINUTE, 0);\r\n    en.set(Calendar.SECOND, 0);\r\n    en.set(Calendar.MILLISECOND, 0);\r\n    en.add(Calendar.DATE, 1);\r\n    en.add(Calendar.DATE, -1);\r\n    \r\n    \/\/ if these are reversed, then swap the dates\r\n    \/\/ for comparison, so the first date is always\r\n    \/\/ before the second.  when we adjust below,\r\n    \/\/ we take this into account.\r\n    boolean reversed = en.before(st);\r\n    \r\n    if (reversed) {\r\n        Calendar h = st;\r\n        st = en;\r\n        en = h;\r\n    }\r\n\r\n    int s = -1;\r\n    int e = -1;\r\n\r\n    for (int i=0; i<\/code><holidays.length; if=\"\" mycompare=\"\"><code>= 0 ) {\r\n            s = i;\r\n            break;\r\n        }\r\n    }\r\n\r\n    \/\/ if all holidays are before start date, nothing to do.    \r\n    if (s == -1) { return false; }\r\n\r\n    for (int i= holidays.length; i-- &gt; 0;) {\r\n        if (myCompare (holidays[i], en) &lt;= 0) {\r\n            e = i;\r\n            break;\r\n        }\r\n    }\r\n    \r\n    if (e &lt; s) { return false; }    \/\/ no holidays in between\r\n    \r\n    \/\/ number of holidays is the number in between\r\n    int num = e - s + 1;\r\n    \r\n    \/\/ step through adding the days one at a time so we\r\n    \/\/ can skip over additional holidays or weekends\r\n    \/\/ as we go.  note that we are adjusting the date in the date calculator\r\n    \/\/ which is actually a reference (pointer) to the original\r\n    \/\/ object, so we are always adjusting the end date\r\n    for (int i=0; i<\/code><num; a=\"\" back=\"\" day=\"\" go=\"\" if=\"\" is=\"\" more=\"\" one=\"\" previous=\"\" s=\"\"><code> 0 &amp;&amp; myCompare (st, holidays[s-1]) == 0  ) {\r\n                s--;\r\n                num++;\r\n            }\r\n        }\r\n        else\r\n        {\r\n            advanceOneBusinessDay(en, end);\r\n            \/\/ if new day is a holiday, skip another one.\r\n            if (e &lt; holidays.length &amp;&amp; myCompare(en, holidays[e+1]) == 0 ) {\r\n                num++;\r\n                e++;\r\n            }\r\n        }\r\n    }\r\n    \r\n    return changed;\r\n}\r\n<\/code><\/num;><\/holidays.length;><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Purpose This is used to allow special date arithmetic. A true value is returned if a change has been made. Applies To Add Issue screen Signature public boolean ucAdjustWorkdays (int action, DateCalculator dc) Notes Example \/\/ Setup global vars used by ucAdjustWorkdays Calendar [] holidays = null; static final long MILLIS_PER_DAY = 24 * 60&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":24510,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_lmt_disableupdate":"","_lmt_disable":"","_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"footnotes":""},"class_list":["post-24525","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>ucAdjustWorkdays - Product Documentation<\/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:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/user-custom-methods-1\/ucadjustworkdays-1\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ucAdjustWorkdays - Product Documentation\" \/>\n<meta property=\"og:description\" content=\"Purpose This is used to allow special date arithmetic. A true value is returned if a change has been made. Applies To Add Issue screen Signature public boolean ucAdjustWorkdays (int action, DateCalculator dc) Notes Example \/\/ Setup global vars used by ucAdjustWorkdays Calendar [] holidays = null; static final long MILLIS_PER_DAY = 24 * 60...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/user-custom-methods-1\/ucadjustworkdays-1\/\" \/>\n<meta property=\"og:site_name\" content=\"Product Documentation\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/user-custom-methods-1\/ucadjustworkdays-1\/\",\"url\":\"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/user-custom-methods-1\/ucadjustworkdays-1\/\",\"name\":\"ucAdjustWorkdays - Product Documentation\",\"isPartOf\":{\"@id\":\"https:\/\/docs.extraview.com\/v25\/#website\"},\"datePublished\":\"2024-02-15T22:53:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/user-custom-methods-1\/ucadjustworkdays-1\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/user-custom-methods-1\/ucadjustworkdays-1\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/user-custom-methods-1\/ucadjustworkdays-1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/docs.extraview.com\/v25\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ExtraView 25\",\"item\":\"https:\/\/docs.extraview.com\/v25\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"User Custom Guide\",\"item\":\"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Java Interface\",\"item\":\"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"User Custom Methods\",\"item\":\"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/user-custom-methods-1\/\"},{\"@type\":\"ListItem\",\"position\":6,\"name\":\"ucAdjustWorkdays\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/docs.extraview.com\/v25\/#website\",\"url\":\"https:\/\/docs.extraview.com\/v25\/\",\"name\":\"ExtraView Product Documentation\",\"description\":\"ExtraView Documentation\",\"publisher\":{\"@id\":\"https:\/\/docs.extraview.com\/v25\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/docs.extraview.com\/v25\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/docs.extraview.com\/v25\/#organization\",\"name\":\"ExtraView Corporation\",\"url\":\"https:\/\/docs.extraview.com\/v25\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/docs.extraview.com\/v25\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/docs-stg.extraview.com\/wp-content\/uploads\/2024\/03\/favicon.png\",\"contentUrl\":\"https:\/\/docs-stg.extraview.com\/wp-content\/uploads\/2024\/03\/favicon.png\",\"width\":512,\"height\":512,\"caption\":\"ExtraView Corporation\"},\"image\":{\"@id\":\"https:\/\/docs.extraview.com\/v25\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"ucAdjustWorkdays - Product Documentation","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:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/user-custom-methods-1\/ucadjustworkdays-1\/","og_locale":"en_US","og_type":"article","og_title":"ucAdjustWorkdays - Product Documentation","og_description":"Purpose This is used to allow special date arithmetic. A true value is returned if a change has been made. Applies To Add Issue screen Signature public boolean ucAdjustWorkdays (int action, DateCalculator dc) Notes Example \/\/ Setup global vars used by ucAdjustWorkdays Calendar [] holidays = null; static final long MILLIS_PER_DAY = 24 * 60...","og_url":"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/user-custom-methods-1\/ucadjustworkdays-1\/","og_site_name":"Product Documentation","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/user-custom-methods-1\/ucadjustworkdays-1\/","url":"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/user-custom-methods-1\/ucadjustworkdays-1\/","name":"ucAdjustWorkdays - Product Documentation","isPartOf":{"@id":"https:\/\/docs.extraview.com\/v25\/#website"},"datePublished":"2024-02-15T22:53:34+00:00","breadcrumb":{"@id":"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/user-custom-methods-1\/ucadjustworkdays-1\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/user-custom-methods-1\/ucadjustworkdays-1\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/user-custom-methods-1\/ucadjustworkdays-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/docs.extraview.com\/v25\/"},{"@type":"ListItem","position":2,"name":"ExtraView 25","item":"https:\/\/docs.extraview.com\/v25\/"},{"@type":"ListItem","position":3,"name":"User Custom Guide","item":"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/"},{"@type":"ListItem","position":4,"name":"Java Interface","item":"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/"},{"@type":"ListItem","position":5,"name":"User Custom Methods","item":"https:\/\/docs.extraview.com\/v25\/extraview-25\/user-custom-guide-1\/java-interface-1\/user-custom-methods-1\/"},{"@type":"ListItem","position":6,"name":"ucAdjustWorkdays"}]},{"@type":"WebSite","@id":"https:\/\/docs.extraview.com\/v25\/#website","url":"https:\/\/docs.extraview.com\/v25\/","name":"ExtraView Product Documentation","description":"ExtraView Documentation","publisher":{"@id":"https:\/\/docs.extraview.com\/v25\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/docs.extraview.com\/v25\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/docs.extraview.com\/v25\/#organization","name":"ExtraView Corporation","url":"https:\/\/docs.extraview.com\/v25\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/docs.extraview.com\/v25\/#\/schema\/logo\/image\/","url":"https:\/\/docs-stg.extraview.com\/wp-content\/uploads\/2024\/03\/favicon.png","contentUrl":"https:\/\/docs-stg.extraview.com\/wp-content\/uploads\/2024\/03\/favicon.png","width":512,"height":512,"caption":"ExtraView Corporation"},"image":{"@id":"https:\/\/docs.extraview.com\/v25\/#\/schema\/logo\/image\/"}}]}},"taxonomy_info":[],"featured_image_src_large":false,"author_info":{"display_name":"carl.koppel","author_link":"https:\/\/docs.extraview.com\/v25\/author\/carl-koppel\/"},"comment_info":0,"_links":{"self":[{"href":"https:\/\/docs.extraview.com\/v25\/wp-json\/wp\/v2\/pages\/24525","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/docs.extraview.com\/v25\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/docs.extraview.com\/v25\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/docs.extraview.com\/v25\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/docs.extraview.com\/v25\/wp-json\/wp\/v2\/comments?post=24525"}],"version-history":[{"count":0,"href":"https:\/\/docs.extraview.com\/v25\/wp-json\/wp\/v2\/pages\/24525\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/docs.extraview.com\/v25\/wp-json\/wp\/v2\/pages\/24510"}],"wp:attachment":[{"href":"https:\/\/docs.extraview.com\/v25\/wp-json\/wp\/v2\/media?parent=24525"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}