|  |  | 
|  |  | 
|  |  | 
|  | <!doctype html> | 
|  | <html lang="en" class="no-js"> | 
|  | <head> | 
|  |  | 
|  | <meta charset="utf-8"> | 
|  | <meta name="viewport" content="width=device-width,initial-scale=1"> | 
|  |  | 
|  |  | 
|  |  | 
|  | <link rel="shortcut icon" href="../../../assets/images/favicon.png"> | 
|  | <meta name="generator" content="mkdocs-1.1.2, mkdocs-material-5.4.0"> | 
|  |  | 
|  |  | 
|  |  | 
|  | <title>EGL Patch Templates - Epsilon</title> | 
|  |  | 
|  |  | 
|  |  | 
|  | <link rel="stylesheet" href="../../../assets/stylesheets/main.fe0cca5b.min.css"> | 
|  |  | 
|  | <link rel="stylesheet" href="../../../assets/stylesheets/palette.a46bcfb3.min.css"> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <meta name="theme-color" content=""> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <link href="https://fonts.gstatic.com" rel="preconnect" crossorigin> | 
|  | <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700%7CRoboto+Mono&display=fallback"> | 
|  | <style>body,input{font-family:"Roboto",-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono",SFMono-Regular,Consolas,Menlo,monospace}</style> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <link rel="stylesheet" href="../../../assets/stylesheets/mermaid.css"> | 
|  |  | 
|  | <link rel="stylesheet" href="../../../assets/javascript/google-code-prettify/prettify.css"> | 
|  |  | 
|  | <link rel="stylesheet" href="https://unpkg.com/mermaid@8.5.1/dist/mermaid.css"> | 
|  |  | 
|  | <link rel="stylesheet" href="../../../assets/stylesheets/slick.css"> | 
|  |  | 
|  | <link rel="stylesheet" href="../../../assets/stylesheets/slick-theme.css"> | 
|  |  | 
|  | <link rel="stylesheet" href="../../../assets/stylesheets/extra.css"> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <script> | 
|  | window.ga = window.ga || function() { | 
|  | (ga.q = ga.q || []).push(arguments) | 
|  | } | 
|  | ga.l = +new Date | 
|  | /* Setup integration and send page view */ | 
|  | ga("create", "UA-184785655-1", "auto") | 
|  | ga("set", "anonymizeIp", true) | 
|  | ga("send", "pageview") | 
|  | /* Register handler to log search on blur */ | 
|  | document.addEventListener("DOMContentLoaded", () => { | 
|  | if (document.forms.search) { | 
|  | var query = document.forms.search.query | 
|  | query.addEventListener("blur", function() { | 
|  | if (this.value) { | 
|  | var path = document.location.pathname; | 
|  | ga("send", "pageview", path + "?q=" + this.value) | 
|  | } | 
|  | }) | 
|  | } | 
|  | }) | 
|  | </script> | 
|  | <script async src="https://www.google-analytics.com/analytics.js"></script> | 
|  |  | 
|  |  | 
|  |  | 
|  | </head> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <body dir="ltr" data-md-color-scheme="" data-md-color-primary="black" data-md-color-accent="orange"> | 
|  |  | 
|  |  | 
|  | <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off"> | 
|  | <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off"> | 
|  | <label class="md-overlay" for="__drawer"></label> | 
|  | <div data-md-component="skip"> | 
|  |  | 
|  |  | 
|  | <a href="#egl-patch-templates" class="md-skip"> | 
|  | Skip to content | 
|  | </a> | 
|  |  | 
|  | </div> | 
|  | <div data-md-component="announce"> | 
|  |  | 
|  | </div> | 
|  |  | 
|  | <header class="md-header" data-md-component="header"> | 
|  | <nav class="md-header-nav md-grid" aria-label="Header"> | 
|  | <a href="../../.." title="Epsilon" class="md-header-nav__button md-logo" aria-label="Epsilon"> | 
|  |  | 
|  | <img src="../../../assets/images/epsilon-white-background.png" alt="logo"> | 
|  |  | 
|  | </a> | 
|  | <label class="md-header-nav__button md-icon" for="__drawer"> | 
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg> | 
|  | </label> | 
|  | <div class="md-header-nav__title" data-md-component="header-title"> | 
|  |  | 
|  | <div class="md-header-nav__ellipsis"> | 
|  | <span class="md-header-nav__topic md-ellipsis"> | 
|  | Epsilon | 
|  | </span> | 
|  | <span class="md-header-nav__topic md-ellipsis"> | 
|  |  | 
|  | EGL Patch Templates | 
|  |  | 
|  | </span> | 
|  | </div> | 
|  |  | 
|  | </div> | 
|  |  | 
|  | <label class="md-header-nav__button md-icon" for="__search"> | 
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0116 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 019.5 16 6.5 6.5 0 013 9.5 6.5 6.5 0 019.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg> | 
|  | </label> | 
|  |  | 
|  | <div class="md-search" data-md-component="search" role="dialog"> | 
|  | <label class="md-search__overlay" for="__search"></label> | 
|  | <div class="md-search__inner" role="search"> | 
|  | <form class="md-search__form" name="search"> | 
|  | <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" data-md-state="active"> | 
|  | <label class="md-search__icon md-icon" for="__search"> | 
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0116 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 019.5 16 6.5 6.5 0 013 9.5 6.5 6.5 0 019.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg> | 
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg> | 
|  | </label> | 
|  | <button type="reset" class="md-search__icon md-icon" aria-label="Clear" data-md-component="search-reset" tabindex="-1"> | 
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg> | 
|  | </button> | 
|  | </form> | 
|  | <div class="md-search__output"> | 
|  | <div class="md-search__scrollwrap" data-md-scrollfix> | 
|  | <div class="md-search-result" data-md-component="search-result"> | 
|  | <div class="md-search-result__meta"> | 
|  | Initializing search | 
|  | </div> | 
|  | <ol class="md-search-result__list"></ol> | 
|  | </div> | 
|  | </div> | 
|  | </div> | 
|  | </div> | 
|  | </div> | 
|  |  | 
|  |  | 
|  | <div class="md-header-nav__source"> | 
|  |  | 
|  | <a href="https://git.eclipse.org/c/epsilon/org.eclipse.epsilon.git/" title="Go to repository" class="md-source"> | 
|  | <div class="md-source__icon md-icon"> | 
|  |  | 
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.55 236.05L244 40.45a28.87 28.87 0 00-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 01-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 000 40.81l195.61 195.6a28.86 28.86 0 0040.8 0l194.69-194.69a28.86 28.86 0 000-40.81z"/></svg> | 
|  | </div> | 
|  | <div class="md-source__repository"> | 
|  | Git repository @ Eclipse | 
|  | </div> | 
|  | </a> | 
|  | </div> | 
|  |  | 
|  | </nav> | 
|  | </header> | 
|  |  | 
|  | <div class="md-container" data-md-component="container"> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <main class="md-main" data-md-component="main"> | 
|  | <div class="md-main__inner md-grid"> | 
|  |  | 
|  |  | 
|  | <div class="md-sidebar md-sidebar--primary" data-md-component="navigation"> | 
|  | <div class="md-sidebar__scrollwrap"> | 
|  | <div class="md-sidebar__inner"> | 
|  | <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> | 
|  | <label class="md-nav__title" for="__drawer"> | 
|  | <a href="../../.." title="Epsilon" class="md-nav__button md-logo" aria-label="Epsilon"> | 
|  |  | 
|  | <img src="../../../assets/images/epsilon-white-background.png" alt="logo"> | 
|  |  | 
|  | </a> | 
|  | Epsilon | 
|  | </label> | 
|  |  | 
|  | <div class="md-nav__source"> | 
|  |  | 
|  | <a href="https://git.eclipse.org/c/epsilon/org.eclipse.epsilon.git/" title="Go to repository" class="md-source"> | 
|  | <div class="md-source__icon md-icon"> | 
|  |  | 
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.55 236.05L244 40.45a28.87 28.87 0 00-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 01-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 000 40.81l195.61 195.6a28.86 28.86 0 0040.8 0l194.69-194.69a28.86 28.86 0 000-40.81z"/></svg> | 
|  | </div> | 
|  | <div class="md-source__repository"> | 
|  | Git repository @ Eclipse | 
|  | </div> | 
|  | </a> | 
|  | </div> | 
|  |  | 
|  | <ul class="md-nav__list" data-md-scrollfix> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../.." title="Home" class="md-nav__link"> | 
|  | Home | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../../download/" title="Download" class="md-nav__link"> | 
|  | Download | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../../getting-started/" title="Getting Started" class="md-nav__link"> | 
|  | Getting Started | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../../live" title="Playground" class="md-nav__link"> | 
|  | Playground | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item md-nav__item--nested"> | 
|  |  | 
|  | <input class="md-nav__toggle md-toggle" data-md-toggle="nav-5" type="checkbox" id="nav-5"> | 
|  |  | 
|  | <label class="md-nav__link" for="nav-5"> | 
|  | Documentation | 
|  | <span class="md-nav__icon md-icon"> | 
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.59 16.58L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.42z"/></svg> | 
|  | </span> | 
|  | </label> | 
|  | <nav class="md-nav" aria-label="Documentation" data-md-level="1"> | 
|  | <label class="md-nav__title" for="nav-5"> | 
|  | <span class="md-nav__icon md-icon"> | 
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg> | 
|  | </span> | 
|  | Documentation | 
|  | </label> | 
|  | <ul class="md-nav__list" data-md-scrollfix> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../" title="Overview" class="md-nav__link"> | 
|  | Overview | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../emc/" title="Model Connectivity" class="md-nav__link"> | 
|  | Model Connectivity | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item md-nav__item--nested"> | 
|  |  | 
|  | <input class="md-nav__toggle md-toggle" data-md-toggle="nav-5-3" type="checkbox" id="nav-5-3"> | 
|  |  | 
|  | <label class="md-nav__link" for="nav-5-3"> | 
|  | Languages | 
|  | <span class="md-nav__icon md-icon"> | 
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.59 16.58L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.42z"/></svg> | 
|  | </span> | 
|  | </label> | 
|  | <nav class="md-nav" aria-label="Languages" data-md-level="2"> | 
|  | <label class="md-nav__title" for="nav-5-3"> | 
|  | <span class="md-nav__icon md-icon"> | 
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg> | 
|  | </span> | 
|  | Languages | 
|  | </label> | 
|  | <ul class="md-nav__list" data-md-scrollfix> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../eol/" title="Object Language (EOL)" class="md-nav__link"> | 
|  | Object Language (EOL) | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../egl/" title="Code Generation (EGL)" class="md-nav__link"> | 
|  | Code Generation (EGL) | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../evl/" title="Model Validation (EVL)" class="md-nav__link"> | 
|  | Model Validation (EVL) | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../etl/" title="Model Transformation (ETL)" class="md-nav__link"> | 
|  | Model Transformation (ETL) | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../ecl/" title="Model Comparison (ECL)" class="md-nav__link"> | 
|  | Model Comparison (ECL) | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../eml/" title="Model Merging (EML)" class="md-nav__link"> | 
|  | Model Merging (EML) | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../epl/" title="Pattern Matching (EPL)" class="md-nav__link"> | 
|  | Pattern Matching (EPL) | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../flock/" title="Model Migration (Flock)" class="md-nav__link"> | 
|  | Model Migration (Flock) | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../emg/" title="Model Generation (EMG)" class="md-nav__link"> | 
|  | Model Generation (EMG) | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../eunit/" title="Unit Testing (EUnit)" class="md-nav__link"> | 
|  | Unit Testing (EUnit) | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../pinset/" title="Dataset Extraction (Pinset)" class="md-nav__link"> | 
|  | Dataset Extraction (Pinset) | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../ewl/" title="Wizard Language (EWL)" class="md-nav__link"> | 
|  | Wizard Language (EWL) | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  | </ul> | 
|  | </nav> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item md-nav__item--nested"> | 
|  |  | 
|  | <input class="md-nav__toggle md-toggle" data-md-toggle="nav-5-4" type="checkbox" id="nav-5-4"> | 
|  |  | 
|  | <label class="md-nav__link" for="nav-5-4"> | 
|  | Tools | 
|  | <span class="md-nav__icon md-icon"> | 
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.59 16.58L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.42z"/></svg> | 
|  | </span> | 
|  | </label> | 
|  | <nav class="md-nav" aria-label="Tools" data-md-level="2"> | 
|  | <label class="md-nav__title" for="nav-5-4"> | 
|  | <span class="md-nav__icon md-icon"> | 
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg> | 
|  | </span> | 
|  | Tools | 
|  | </label> | 
|  | <ul class="md-nav__list" data-md-scrollfix> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../picto/" title="Picto" class="md-nav__link"> | 
|  | Picto | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../flexmi/" title="Flexmi" class="md-nav__link"> | 
|  | Flexmi | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../eugenia/" title="Eugenia" class="md-nav__link"> | 
|  | Eugenia | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../exeed/" title="Exeed" class="md-nav__link"> | 
|  | Exeed | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../modelink/" title="Modelink" class="md-nav__link"> | 
|  | Modelink | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../hutn/" title="HUTN" class="md-nav__link"> | 
|  | HUTN | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../workflow/" title="Workflow (Ant tasks)" class="md-nav__link"> | 
|  | Workflow (Ant tasks) | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  | </ul> | 
|  | </nav> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../" title="Articles" class="md-nav__link"> | 
|  | Articles | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../../examples/" title="Examples" class="md-nav__link"> | 
|  | Examples | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="https://www.youtube.com/epsilondevs" title="Screencasts" class="md-nav__link"> | 
|  | Screencasts | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="https://www.youtube.com/playlist?list=PLRwHao6Ue0YUecg7vEUQTrtySIWwrd_mI" title="Lectures" class="md-nav__link"> | 
|  | Lectures | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item md-nav__item--nested"> | 
|  |  | 
|  | <input class="md-nav__toggle md-toggle" data-md-toggle="nav-5-9" type="checkbox" id="nav-5-9"> | 
|  |  | 
|  | <label class="md-nav__link" for="nav-5-9"> | 
|  | Javadoc | 
|  | <span class="md-nav__icon md-icon"> | 
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.59 16.58L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.42z"/></svg> | 
|  | </span> | 
|  | </label> | 
|  | <nav class="md-nav" aria-label="Javadoc" data-md-level="2"> | 
|  | <label class="md-nav__title" for="nav-5-9"> | 
|  | <span class="md-nav__icon md-icon"> | 
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg> | 
|  | </span> | 
|  | Javadoc | 
|  | </label> | 
|  | <ul class="md-nav__list" data-md-scrollfix> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="https://download.eclipse.org/epsilon/stable-javadoc/" title="Stable" class="md-nav__link"> | 
|  | Stable | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="https://download.eclipse.org/epsilon/interim-javadoc/" title="Interim" class="md-nav__link"> | 
|  | Interim | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  | </ul> | 
|  | </nav> | 
|  | </li> | 
|  |  | 
|  |  | 
|  | </ul> | 
|  | </nav> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item md-nav__item--nested"> | 
|  |  | 
|  | <input class="md-nav__toggle md-toggle" data-md-toggle="nav-6" type="checkbox" id="nav-6"> | 
|  |  | 
|  | <label class="md-nav__link" for="nav-6"> | 
|  | Issues | 
|  | <span class="md-nav__icon md-icon"> | 
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.59 16.58L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.42z"/></svg> | 
|  | </span> | 
|  | </label> | 
|  | <nav class="md-nav" aria-label="Issues" data-md-level="1"> | 
|  | <label class="md-nav__title" for="nav-6"> | 
|  | <span class="md-nav__icon md-icon"> | 
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg> | 
|  | </span> | 
|  | Issues | 
|  | </label> | 
|  | <ul class="md-nav__list" data-md-scrollfix> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=epsilon" title="Report a new issue" class="md-nav__link"> | 
|  | Report a new issue | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="https://bugs.eclipse.org/bugs/buglist.cgi?product=epsilon&cmdtype=doit&order=Reuse+same+sort+as+last+time&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_severity=blocker&bug_severity=critical&bug_severity=major&bug_severity=normal&bug_severity=minor&bug_severity=trivial" title="View open bugs" class="md-nav__link"> | 
|  | View open bugs | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="https://bugs.eclipse.org/bugs/buglist.cgi?product=epsilon&cmdtype=doit&order=Reuse+same+sort+as+last+time&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_severity=enhancement" title="View enhancement requests" class="md-nav__link"> | 
|  | View enhancement requests | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&list_id=17694438&product=epsilon&query_format=advanced" title="View issues resolved since the last stable release" class="md-nav__link"> | 
|  | View issues resolved since the last stable release | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="https://bugs.eclipse.org/bugs/buglist.cgi?product=epsilon&cmdtype=doit&order=Reuse+same+sort+as+last+time" title="View all issues" class="md-nav__link"> | 
|  | View all issues | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  | </ul> | 
|  | </nav> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item md-nav__item--nested"> | 
|  |  | 
|  | <input class="md-nav__toggle md-toggle" data-md-toggle="nav-7" type="checkbox" id="nav-7"> | 
|  |  | 
|  | <label class="md-nav__link" for="nav-7"> | 
|  | Community | 
|  | <span class="md-nav__icon md-icon"> | 
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.59 16.58L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.42z"/></svg> | 
|  | </span> | 
|  | </label> | 
|  | <nav class="md-nav" aria-label="Community" data-md-level="1"> | 
|  | <label class="md-nav__title" for="nav-7"> | 
|  | <span class="md-nav__icon md-icon"> | 
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg> | 
|  | </span> | 
|  | Community | 
|  | </label> | 
|  | <ul class="md-nav__list" data-md-scrollfix> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item md-nav__item--nested"> | 
|  |  | 
|  | <input class="md-nav__toggle md-toggle" data-md-toggle="nav-7-1" type="checkbox" id="nav-7-1"> | 
|  |  | 
|  | <label class="md-nav__link" for="nav-7-1"> | 
|  | Who is using Epsilon? | 
|  | <span class="md-nav__icon md-icon"> | 
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.59 16.58L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.42z"/></svg> | 
|  | </span> | 
|  | </label> | 
|  | <nav class="md-nav" aria-label="Who is using Epsilon?" data-md-level="2"> | 
|  | <label class="md-nav__title" for="nav-7-1"> | 
|  | <span class="md-nav__icon md-icon"> | 
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg> | 
|  | </span> | 
|  | Who is using Epsilon? | 
|  | </label> | 
|  | <ul class="md-nav__list" data-md-scrollfix> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../../users/" title="Industry" class="md-nav__link"> | 
|  | Industry | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../../users/education/" title="Education" class="md-nav__link"> | 
|  | Education | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../../users/open-source/" title="Open-source Projects" class="md-nav__link"> | 
|  | Open-source Projects | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  | </ul> | 
|  | </nav> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="https://projects.eclipse.org/projects/modeling.epsilon/who" title="Who is developing Epsilon?" class="md-nav__link"> | 
|  | Who is developing Epsilon? | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="https://www.eclipse.org/forums/index.php/f/22/" title="Forum" class="md-nav__link"> | 
|  | Forum | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../../professional-services" title="Professional Services" class="md-nav__link"> | 
|  | Professional Services | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item md-nav__item--nested"> | 
|  |  | 
|  | <input class="md-nav__toggle md-toggle" data-md-toggle="nav-7-5" type="checkbox" id="nav-7-5"> | 
|  |  | 
|  | <label class="md-nav__link" for="nav-7-5"> | 
|  | Social Media | 
|  | <span class="md-nav__icon md-icon"> | 
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.59 16.58L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.42z"/></svg> | 
|  | </span> | 
|  | </label> | 
|  | <nav class="md-nav" aria-label="Social Media" data-md-level="2"> | 
|  | <label class="md-nav__title" for="nav-7-5"> | 
|  | <span class="md-nav__icon md-icon"> | 
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg> | 
|  | </span> | 
|  | Social Media | 
|  | </label> | 
|  | <ul class="md-nav__list" data-md-scrollfix> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="https://twitter.com/eclipseepsilon" title="Twitter" class="md-nav__link"> | 
|  | Twitter | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="https://youtube.com/epsilondevs" title="YouTube" class="md-nav__link"> | 
|  | YouTube | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  | </ul> | 
|  | </nav> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../../labs/" title="Epsilon Labs" class="md-nav__link"> | 
|  | Epsilon Labs | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../../faq/" title="Frequently Asked Questions" class="md-nav__link"> | 
|  | Frequently Asked Questions | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  | </ul> | 
|  | </nav> | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="../../../branding/" title="Branding" class="md-nav__link"> | 
|  | Branding | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  | </ul> | 
|  | </nav> | 
|  | </div> | 
|  | </div> | 
|  | </div> | 
|  |  | 
|  |  | 
|  | <div class="md-sidebar md-sidebar--secondary" data-md-component="toc"> | 
|  | <div class="md-sidebar__scrollwrap"> | 
|  | <div class="md-sidebar__inner"> | 
|  |  | 
|  | <nav class="md-nav md-nav--secondary"> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <label class="md-nav__title" for="__toc">Table of contents</label> | 
|  | <ul class="md-nav__list" data-md-scrollfix> | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="#egl-diff-format" class="md-nav__link"> | 
|  | EGL Diff Format | 
|  | </a> | 
|  |  | 
|  | </li> | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="#egl-diff-processor" class="md-nav__link"> | 
|  | EGL Diff Processor | 
|  | </a> | 
|  |  | 
|  | </li> | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="#example-templates" class="md-nav__link"> | 
|  | Example Templates | 
|  | </a> | 
|  |  | 
|  | </li> | 
|  |  | 
|  | <li class="md-nav__item"> | 
|  | <a href="#using-patch-egl-templates" class="md-nav__link"> | 
|  | Using patch EGL templates | 
|  | </a> | 
|  |  | 
|  | </li> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | </ul> | 
|  |  | 
|  |  | 
|  | </nav> | 
|  | </div> | 
|  | </div> | 
|  | </div> | 
|  |  | 
|  |  | 
|  | <div class="md-content"> | 
|  | <article class="md-content__inner md-typeset"> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <h1 id="egl-patch-templates">EGL Patch Templates<a class="headerlink" href="#egl-patch-templates" title="Permanent link">¶</a></h1> | 
|  | <p>A patch file (also called a patch for short) is a text file that consists of a list of differences and is produced, usually, by running the related the <code>diff</code> program with the original and updated file as arguments. The differences follow the <a href="https://en.wikipedia.org/wiki/Diff">diff format</a>. A patch processor can read a patch file and use the contents as a set of instructions. By following those instructions, a target file can be modified to match the changes in the patch file.</p> | 
|  | <p>Although patches are usually created using a diff tool, it is also possible to write them manually and then use the patch processor to modify a file. This is the approach we provide via EGL <em>patch</em> rules.</p> | 
|  | <h2 id="egl-diff-format">EGL Diff Format<a class="headerlink" href="#egl-diff-format" title="Permanent link">¶</a></h2> | 
|  | <p>In EGL we support a custom diff format. </p> | 
|  | <ul> | 
|  | <li>A line starting with <code>+</code> represents the addition of a line, i.e. this line will be added to the file.</li> | 
|  | <li>A line starting with <code>-</code> represents the deletion of a line, i.e, this line will be removed from the file.</li> | 
|  | <li>A line containing only <code>...</code> indicates a block of lines to keep, i.e. all lines until the next diff/match will be kept.</li> | 
|  | <li>A line containing only <code>---</code> indicates a block of lines to remove, i.e. all lines until the next diff/match will be removed.</li> | 
|  | <li>A line with no diff information is used as a match and will be kept.</li> | 
|  | </ul> | 
|  | <h2 id="egl-diff-processor">EGL Diff Processor<a class="headerlink" href="#egl-diff-processor" title="Permanent link">¶</a></h2> | 
|  | <p>The EGl diff processor uses un-diffed lines to match sections of the file and then uses any diff entries till the next un-diffed lines to modify (add/remove/keep) the file. Deletions will also be used to match locations. All additions before a deletion/un-diff will be inserted before the deleted/un-diffed line. All additions after a deletion/un-diff will be inserted after the deleted/un-diffed line.</p> | 
|  | <h2 id="example-templates">Example Templates<a class="headerlink" href="#example-templates" title="Permanent link">¶</a></h2> | 
|  | <p>In this example we want to insert getters in a Java class file. </p> | 
|  | <div class="tabbed-set" data-tabs="1:1"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><label for="__tabbed_1_1">getters.egl</label><div class="tabbed-content"> | 
|  | <pre class="prettyprint lang-egl"><code>[%for (a in c.eAllAttributes.excludingAll(c.eAttributes)) {%] | 
|  | + | 
|  | +   /** | 
|  | +    * @generated | 
|  | +    */ | 
|  | +   @Override | 
|  | +   public [%=a.eType.instanceTypeName%] get[%=a.name.ftuc()%]() { | 
|  | +       if ([%=a.name%] == null) { | 
|  | +           return prototype.get[%=a.name.ftuc()%](); | 
|  | +       } | 
|  | +       else return [%=a.name%]; | 
|  | +   } | 
|  | [%}%] | 
|  | -} //[%=c.name%]Impl | 
|  | +} //[%=c.name%]Impl (Patched)</code></pre> | 
|  |  | 
|  | </div> | 
|  | </div> | 
|  | <ul> | 
|  | <li>There are no un-diffed lines in the template.</li> | 
|  | <li>There is one deletion: <code>-} //[%=c.name%]Impl</code>, thus the processor would match the closing bracket of the Java class commented with the Java class name.</li> | 
|  | <li>The for loop would generate a getter for each attribute and insert it before the closing bracket location.</li> | 
|  | <li>The closing bracket and comment are removed</li> | 
|  | <li>A new closing bracket with the modified comment is added.</li> | 
|  | </ul> | 
|  | <p>In this other example, we want to modify the toString method of a Java class.</p> | 
|  | <div class="tabbed-set" data-tabs="2:1"><input checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio" /><label for="__tabbed_2_1">toString.egl</label><div class="tabbed-content"> | 
|  | <pre class="prettyprint lang-egl"><code>    public String toString() { | 
|  | --- | 
|  | +       return "[%=c.name%]"; | 
|  | }</code></pre> | 
|  |  | 
|  | </div> | 
|  | </div> | 
|  | <ul> | 
|  | <li>The <code>public String toString() {</code> line would be used to match the toString method.</li> | 
|  | <li>The <code>---</code> indicates that all the lines in the method, until the closing bracket (which is the next matched line) should be removed.</li> | 
|  | <li>The new method implementation is added, which will return the class name.</li> | 
|  | </ul> | 
|  | <h2 id="using-patch-egl-templates">Using patch EGL templates<a class="headerlink" href="#using-patch-egl-templates" title="Permanent link">¶</a></h2> | 
|  | <p>To use EGL templates with diff lines they must be invoked from an EGX rule annotated with <code>@patch</code>. The example EGL templates above would be invoked like this:</p> | 
|  | <pre class="prettyprint lang-egx"><code>@patch | 
|  | rule EClass2Getters | 
|  | transform c : EClass { | 
|  |  | 
|  | guard : c.eAnnotations.exists(a|a.source = "instance") | 
|  |  | 
|  | template : "getters.egl" | 
|  |  | 
|  | target : "src/" + c.eContainer().name + "/impl/" + c.name + "Impl.java" | 
|  | } | 
|  |  | 
|  | @patch | 
|  | rule EClass2ToString | 
|  | transform c : EClass { | 
|  |  | 
|  | template : "toString.egl" | 
|  |  | 
|  | target : "src/" + c.eContainer().name + "/impl/" + c.name + "Impl.java" | 
|  | }</code></pre> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | </article> | 
|  | </div> | 
|  | </div> | 
|  | </main> | 
|  |  | 
|  |  | 
|  | <footer class="md-footer"> | 
|  |  | 
|  | <div class="md-footer-meta md-typeset"> | 
|  | <div class="md-footer-meta__inner md-grid"> | 
|  | <div class="md-footer-copyright"> | 
|  |  | 
|  | <div class="md-footer-copyright__highlight"> | 
|  | Copyright © Eclipse Foundation, Inc. All Rights Reserved. | 
|  | </div> | 
|  |  | 
|  | powered by | 
|  | <a href="https://www.mkdocs.org">MkDocs</a> | 
|  | and | 
|  | <a href="https://squidfunk.github.io/mkdocs-material/">Material for MkDocs</a> | 
|  | </div> | 
|  | <div class="md-footer-copyright epsilon-eclipse-links"> | 
|  | <ul> | 
|  | <li><a href="https://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li> | 
|  | <li><a href="https://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li> | 
|  | <li><a href="https://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li> | 
|  | </ul> | 
|  | </div> | 
|  |  | 
|  | <div class="md-footer-social"> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <a href="https://twitter.com/eclipseepsilon" target="_blank" rel="noopener" title="twitter.com" class="md-footer-social__link"> | 
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg> | 
|  | </a> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <a href="https://youtube.com/epsilondevs" target="_blank" rel="noopener" title="youtube.com" class="md-footer-social__link"> | 
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"/></svg> | 
|  | </a> | 
|  |  | 
|  | </div> | 
|  |  | 
|  | </div> | 
|  | </div> | 
|  | </footer> | 
|  |  | 
|  | </div> | 
|  |  | 
|  | <script src="../../../assets/javascripts/vendor.d710d30a.min.js"></script> | 
|  | <script src="../../../assets/javascripts/bundle.b39636ac.min.js"></script><script id="__lang" type="application/json">{"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents"}</script> | 
|  |  | 
|  | <script> | 
|  | app = initialize({ | 
|  | base: "../../..", | 
|  | features: [], | 
|  | search: Object.assign({ | 
|  | worker: "../../../assets/javascripts/worker/search.a68abb33.min.js" | 
|  | }, typeof search !== "undefined" && search) | 
|  | }) | 
|  | </script> | 
|  |  | 
|  | <script src="https://unpkg.com/mermaid@8.5.1/dist/mermaid.min.js"></script> | 
|  |  | 
|  | <script src="../../../assets/javascript/mermaid.js"></script> | 
|  |  | 
|  | <script src="../../../assets/javascript/jquery.js"></script> | 
|  |  | 
|  | <script src="../../../assets/javascript/slick.min.js"></script> | 
|  |  | 
|  | <script src="../../../assets/javascript/google-code-prettify/prettify.js"></script> | 
|  |  | 
|  | <script src="../../../assets/javascript/google-code-prettify/lang-emfatic.js"></script> | 
|  |  | 
|  | <script src="../../../assets/javascript/google-code-prettify/lang-epsilon.js"></script> | 
|  |  | 
|  | <script src="../../../assets/javascript/google-code-prettify/prettyprint.js"></script> | 
|  |  | 
|  | <script src="../../../assets/javascript/extra.js"></script> | 
|  |  | 
|  | <script src="https://w.appzi.io/w.js?token=jlv6W"></script> | 
|  |  | 
|  |  | 
|  | </body> | 
|  | </html> |