diff --git a/.idea/Php_RSS.iml b/.idea/Php_RSS.iml index 611ec76..606a380 100755 --- a/.idea/Php_RSS.iml +++ b/.idea/Php_RSS.iml @@ -5,6 +5,11 @@ + + + + + diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml new file mode 100644 index 0000000..ff83d34 --- /dev/null +++ b/.idea/sqldialects.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Main.svg b/Main.svg new file mode 100644 index 0000000..00e9d72 --- /dev/null +++ b/Main.svg @@ -0,0 +1 @@ +FluxArticleFluxGatewayArticleGatwayFluxModelArticleModelControleurValidatorConnectionAdminParser \ No newline at end of file diff --git a/fluxRSS/.idea/mvc_PSR4_twig.iml b/fluxRSS/.idea/mvc_PSR4_twig.iml index e520f52..c0f9f5d 100755 --- a/fluxRSS/.idea/mvc_PSR4_twig.iml +++ b/fluxRSS/.idea/mvc_PSR4_twig.iml @@ -2,11 +2,13 @@ - - - + + + + + diff --git a/fluxRSS/DAL/ArticleGateway.php b/fluxRSS/DAL/ArticleGateway.php deleted file mode 100755 index ad5bba5..0000000 --- a/fluxRSS/DAL/ArticleGateway.php +++ /dev/null @@ -1,37 +0,0 @@ -con = $con; - } - - public function getAllArticles():array - { - $query = 'SELECT * FROM Article;'; - $this->con->executeQuery($query, array()); - return $this->con->getResults(); - } - - public function addArticle(Article $article) - { - $query = 'INSERT INTO Article VALUES (:id,:title,to_date(:date,"Dy, DD Mon YYYY"),:description,:guid,:link,:mediaContent,:provenance);'; - $this->con->executeQuery($query, array(':id' => array($article->getId(), PDO::PARAM_STR), - ':title' => array($article->getTitle(), PDO::PARAM_STR), - ':date' => array($article->getDate(), PDO::PARAM_STR), - ':description' => array($article->getDescription(), PDO::PARAM_STR), - ':guid' => array($article->getGuid(), PDO::PARAM_STR), - ':link' => array($article->getLink(), PDO::PARAM_STR), - ':mediaContent' => array($article->getMediaContent(), PDO::PARAM_STR), - ':provenance' => array($article->getProvenance(), PDO::PARAM_INT))); - } -} \ No newline at end of file diff --git a/fluxRSS/DAL/FluxGateway.php b/fluxRSS/DAL/FluxGateway.php deleted file mode 100755 index 57ca526..0000000 --- a/fluxRSS/DAL/FluxGateway.php +++ /dev/null @@ -1,41 +0,0 @@ -con = $con; - } - - public function addFlux($flux){ - $query = 'INSERT INTO Flux VALUES (:flux);'; - $this->con->executeQuery($query, array(':flux' => array($flux->getFlux(), PDO::PARAM_STR))); - } - - public function removeFlux($flux){ - $query = 'DELETE FROM Flux WHERE flux = :flux;'; - $this->con->executeQuery($query, array(':flux' => array($flux->getFlux(), PDO::PARAM_STR))); - } - - public function findAllFlux(){ - $query = 'SELECT * FROM Flux;'; - $this->con->executeQuery($query); - return $this->con->getResults(); - } - - public function findFlux(Flux $flux){ - return $this->findFluxBySrc($flux->getFlux()); - } - - public function findFluxBySrc(string $flux){ - $query = 'SELECT * FROM Flux WHERE flux = :flux;'; - $this->con->executeQuery($query, array(':flux' => array($flux, PDO::PARAM_STR))); - return $this->con->getResults(); - } -} \ No newline at end of file diff --git a/fluxRSS/composer.json b/fluxRSS/composer.json index 21ca7cc..9ee7dc7 100755 --- a/fluxRSS/composer.json +++ b/fluxRSS/composer.json @@ -6,9 +6,11 @@ }, "autoload": { "psr-4": { - "controleur\\": "controleur/", - "config\\": "config/", - "modeles\\": "metier/" + "controleur\\": "src/controleur/", + "config\\": "src/config/", + "model\\": "src/model/", + "DAL\\": "src/DAL/", + "metier\\": "src/metier/" } } } diff --git a/fluxRSS/composer.lock b/fluxRSS/composer.lock new file mode 100755 index 0000000..9d8ce02 --- /dev/null +++ b/fluxRSS/composer.lock @@ -0,0 +1,258 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "03e1f7c6d7574f3683225067dbb2becc", + "packages": [ + { + "name": "symfony/polyfill-ctype", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-01-26T09:26:14+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "42292d99c55abe617799667f454222c54c60e229" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", + "reference": "42292d99c55abe617799667f454222c54c60e229", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-07-28T09:04:16+00:00" + }, + { + "name": "twig/twig", + "version": "v3.7.1", + "source": { + "type": "git", + "url": "https://github.com/twigphp/Twig.git", + "reference": "a0ce373a0ca3bf6c64b9e3e2124aca502ba39554" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/a0ce373a0ca3bf6c64b9e3e2124aca502ba39554", + "reference": "a0ce373a0ca3bf6c64b9e3e2124aca502ba39554", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-mbstring": "^1.3" + }, + "require-dev": { + "psr/container": "^1.0|^2.0", + "symfony/phpunit-bridge": "^5.4.9|^6.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Twig\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + }, + { + "name": "Twig Team", + "role": "Contributors" + }, + { + "name": "Armin Ronacher", + "email": "armin.ronacher@active-4.com", + "role": "Project Founder" + } + ], + "description": "Twig, the flexible, fast, and secure template language for PHP", + "homepage": "https://twig.symfony.com", + "keywords": [ + "templating" + ], + "support": { + "issues": "https://github.com/twigphp/Twig/issues", + "source": "https://github.com/twigphp/Twig/tree/v3.7.1" + }, + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "type": "tidelift" + } + ], + "time": "2023-08-28T11:09:02+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "ext-pdo": "*", + "ext-dom": "*" + }, + "platform-dev": [], + "plugin-api-version": "2.6.0" +} diff --git a/fluxRSS/index.php b/fluxRSS/index.php index 0ceef5c..fd16b5b 100755 --- a/fluxRSS/index.php +++ b/fluxRSS/index.php @@ -14,3 +14,5 @@ $twig = new \Twig\Environment($loader, [ ]); $cont = new Controleur(); + + diff --git a/fluxRSS/model/ArticleModel.php b/fluxRSS/model/ArticleModel.php deleted file mode 100755 index bcb25a1..0000000 --- a/fluxRSS/model/ArticleModel.php +++ /dev/null @@ -1,20 +0,0 @@ -getAllArticles(); - foreach($res as $row){ - $tabArticle[] = new metier\Article($row['id'], $row['title'],$row['datePub'],$row['description'],$row['guid'],$row['link'],$row['mediaContent'],$row['provenance'] ); - } - return $tabArticle; - } - -} \ No newline at end of file diff --git a/fluxRSS/model/FluxModel.php b/fluxRSS/model/FluxModel.php deleted file mode 100755 index 8c0a9e7..0000000 --- a/fluxRSS/model/FluxModel.php +++ /dev/null @@ -1,68 +0,0 @@ -gateway = $fluxGateway; - } - public function FindAllFlux(){ - $data = array(); - $result = $this->gateway->findAllFlux(); - - foreach ($result as $row){ - $data[] = new Flux($row['$flux']); - } - return $data; - } - - public function addFlux(Flux $flux) - { - $data = $this->findFlux($flux); - if ($data == array()) { - $this->gateway->addFlux($flux); - } - } - - public function addFluxBySrc(string $flux): Flux { - $newFlux = new Flux($flux); - $this->gateway->addFlux($newFlux); - return $newFlux; - } - - public function removeFlux(Flux $flux){ - $this->gateway->removeFlux($flux); - } - - public function removeFluxBySrc(string $flux): Flux { - $newFlux = new Flux($flux); - $this->gateway->removeFlux($newFlux); - return $newFlux; - } - - public function findFlux(Flux $flux){ - $data = array(); - $result = $this->gateway->findFlux($flux); - - foreach ($result as $row){ - $data[] = new Flux($row['$flux']); - } - return $data; - } - - public function findFluxBySrc(string $flux){ - $data = array(); - $result = $this->gateway->findFluxBySrc($flux); - - foreach ($result as $row){ - $data[] = new Flux($row['$flux']); - } - return $data; - } -} \ No newline at end of file diff --git a/fluxRSS/src/DAL/AdminGateway.php b/fluxRSS/src/DAL/AdminGateway.php new file mode 100755 index 0000000..f2b06c0 --- /dev/null +++ b/fluxRSS/src/DAL/AdminGateway.php @@ -0,0 +1,27 @@ +con = $con; + } + + public function login(string $login):array + { + try{ + $query = 'SELECT mdp,mail FROM Admin WHERE login = :login;'; + $this->con->executeQuery($query, array(':flux' => array($login, PDO::PARAM_STR))); + return $this->con->getResults(); + }catch (\PDOException $e){ + throw new \Exception("PDO error"); + } + } +} \ No newline at end of file diff --git a/fluxRSS/src/DAL/ArticleGateway.php b/fluxRSS/src/DAL/ArticleGateway.php new file mode 100755 index 0000000..89e43ec --- /dev/null +++ b/fluxRSS/src/DAL/ArticleGateway.php @@ -0,0 +1,60 @@ +con = $con; + } + + /** + * @throws Exception + */ + public function getAllArticles():array + { + try { + $query = 'SELECT * FROM Article;'; + $this->con->executeQuery($query, array()); + return $this->con->getResults(); + }catch (\PDOException $e){ + throw new Exception("PDO error"); + } + } + + /** + * @throws Exception + */ + public function addArticle(Article $article){ + try { + $query = 'INSERT INTO Article VALUES (:id,:title,to_date(:date,"Dy, DD Mon YYYY"),:description,:guid,:link,:mediaContent,:provenance);'; + $this->con->executeQuery($query, array(':id' => array($article->getId(), PDO::PARAM_STR), + ':title' => array($article->getTitle(), PDO::PARAM_STR), + ':date' => array($article->getDate(), PDO::PARAM_STR), + ':description' => array($article->getDescription(), PDO::PARAM_STR), + ':guid' => array($article->getGuid(), PDO::PARAM_STR), + ':link' => array($article->getLink(), PDO::PARAM_STR), + ':mediaContent' => array($article->getMediaContent(), PDO::PARAM_STR), + ':provenance' => array($article->getProvenance(), PDO::PARAM_INT))); + }catch (\PDOException $e){ + throw new Exception("PDO error"); + } + } + + public function removeAllArticleForParser(){ + try{ + $query = 'DELETE FROM Article;'; + $this->con->executeQuery($query); + }catch(\PDOException $p){ + throw new Exception("Data is not delete."); + } + } +} \ No newline at end of file diff --git a/fluxRSS/DAL/Connection.php b/fluxRSS/src/DAL/Connection.php similarity index 63% rename from fluxRSS/DAL/Connection.php rename to fluxRSS/src/DAL/Connection.php index 1ca9c27..dc58de2 100755 --- a/fluxRSS/DAL/Connection.php +++ b/fluxRSS/src/DAL/Connection.php @@ -2,7 +2,9 @@ namespace DAL; +use Exception; use PDO; +use Twig\Error\Error; class Connection extends PDO { @@ -12,31 +14,39 @@ class Connection extends PDO * @param string $dsn * @param string $username * @param string $password + * @throws Exception */ public function __construct(string $dsn, string $username, string $password) { try{ parent::__construct($dsn, $username, $password); $this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); - }catch (Exception $e){ + }catch (\PDOException $e){ throw new Exception("PDO error con"); } - + catch (Error $e){ + throw new Error("Error PDO"); + } } /** * @param string $query to execute * @param array $parameters to bind * @return bool Returns `true` on success, `false` otherwise + * @throws Exception */ public function executeQuery(string $query, array $parameters = []): bool { - $this->stmt = parent::prepare($query); - foreach ($parameters as $name => $value) { - $this->stmt->bindValue($name, $value[0], $value[1]); + try{ + $this->stmt = parent::prepare($query); + foreach ($parameters as $name => $value) { + $this->stmt->bindValue($name, $value[0], $value[1]); + } + + return $this->stmt->execute(); + }catch (\PDOException $e){ + throw new Exception("PDO error"); } - - return $this->stmt->execute(); } /** diff --git a/fluxRSS/src/DAL/FluxGateway.php b/fluxRSS/src/DAL/FluxGateway.php new file mode 100755 index 0000000..43bbe9f --- /dev/null +++ b/fluxRSS/src/DAL/FluxGateway.php @@ -0,0 +1,57 @@ +con = $con; + } + + public function addFlux($flux){ + try{ + $query = 'INSERT INTO Flux VALUES (:flux);'; + $this->con->executeQuery($query, array(':flux' => array($flux->getFlux(), PDO::PARAM_STR))); + }catch (\PDOException $e){ + throw new \Exception("PDO error"); + } + } + + public function removeFlux($flux){ + try{ + $query = 'DELETE FROM Flux WHERE flux = :flux;'; + $this->con->executeQuery($query, array(':flux' => array($flux->getFlux(), PDO::PARAM_STR))); + }catch (\PDOException $e){ + throw new \Exception("PDO error"); + } + } + + public function findAllFlux(){ + try{ + $query = 'SELECT * FROM Flux;'; + $this->con->executeQuery($query); + return $this->con->getResults(); + }catch (\PDOException $e){ + throw new \Exception("PDO error"); + } + } + + public function findFlux(Flux $flux){ + return $this->findFluxBySrc($flux->getFlux()); + } + + public function findFluxBySrc(string $flux){ + try{ + $query = 'SELECT * FROM Flux WHERE flux = :flux;'; + $this->con->executeQuery($query, array(':flux' => array($flux, PDO::PARAM_STR))); + return $this->con->getResults(); + }catch (\PDOException $e){ + throw new \Exception("PDO error"); + } + } +} \ No newline at end of file diff --git a/fluxRSS/config/.DS_Store b/fluxRSS/src/config/.DS_Store similarity index 100% rename from fluxRSS/config/.DS_Store rename to fluxRSS/src/config/.DS_Store diff --git a/fluxRSS/config/Validation.php b/fluxRSS/src/config/Validation.php similarity index 100% rename from fluxRSS/config/Validation.php rename to fluxRSS/src/config/Validation.php diff --git a/fluxRSS/config/config.php b/fluxRSS/src/config/config.php similarity index 85% rename from fluxRSS/config/config.php rename to fluxRSS/src/config/config.php index a187ad0..96fc364 100755 --- a/fluxRSS/config/config.php +++ b/fluxRSS/src/config/config.php @@ -1,7 +1,7 @@ '', 'age' => 0, - 'data' => ArticleModel::getArticles(), + 'data' => ArticleModel::getArticles() ]; echo $twig->render('listArticle.html', [ 'dVue' => $dVue @@ -76,11 +74,11 @@ class Controleur $model = new \metier\Simplemodel(); $data = $model->get_data(); */ - + $dVue = [ 'nom' => $nom, 'age' => $age, - 'data' => $data, + //'data' => $data, ]; echo $twig->render('vuephp1.html', ['dVue' => $dVue, 'dVueEreur' => $dVueEreur]); diff --git a/fluxRSS/metier/Admin.php b/fluxRSS/src/metier/Admin.php similarity index 100% rename from fluxRSS/metier/Admin.php rename to fluxRSS/src/metier/Admin.php diff --git a/fluxRSS/metier/Article.php b/fluxRSS/src/metier/Article.php similarity index 84% rename from fluxRSS/metier/Article.php rename to fluxRSS/src/metier/Article.php index 50a6370..809c3d1 100755 --- a/fluxRSS/metier/Article.php +++ b/fluxRSS/src/metier/Article.php @@ -4,26 +4,26 @@ namespace metier; class Article { - private int $id; + private string $id; private string $title; private string $date; private string $description; private string $guid; private string $link; private string $mediaContent; - private int $provenance; + private string $provenance; /** - * @param int $id + * @param string $id * @param string $title * @param string $date * @param string $description * @param string $guid * @param string $link * @param string $mediaContent - * @param int $provenance + * @param string $provenance */ - public function __construct(int $id, string $title, string $date, string $description, string $guid, string $link, string $mediaContent, int $provenance) + public function __construct(string $id, string $title, string $date, string $description, string $guid, string $link, string $mediaContent, string $provenance) { $this->id = $id; $this->title = $title; @@ -115,4 +115,9 @@ class Article $this->provenance = $provenance; } + public function __toString(): string + { + return $this->title . $this->date . $this->description; + } + } \ No newline at end of file diff --git a/fluxRSS/metier/Flux.php b/fluxRSS/src/metier/Flux.php similarity index 100% rename from fluxRSS/metier/Flux.php rename to fluxRSS/src/metier/Flux.php diff --git a/fluxRSS/src/model/AdminModel.php b/fluxRSS/src/model/AdminModel.php new file mode 100755 index 0000000..df3ece6 --- /dev/null +++ b/fluxRSS/src/model/AdminModel.php @@ -0,0 +1,25 @@ +login($username); + + foreach ($lmdp as $motDePasse){ + if (password_verify($mdp,$motDePasse['mdp'])){ + $_SESSION['role'] = 'admin'; + $_SESSION['pseudo'] = $username; + return new Admin($username,$motDePasse['mail']); + } + } + return null; + } +} \ No newline at end of file diff --git a/fluxRSS/src/model/ArticleModel.php b/fluxRSS/src/model/ArticleModel.php new file mode 100755 index 0000000..d8e24e8 --- /dev/null +++ b/fluxRSS/src/model/ArticleModel.php @@ -0,0 +1,24 @@ +getAllArticles(); + foreach($res as $row){ + $tabArticle[] = new Article($row['id'], $row['title'],$row['datePub'],$row['description'],$row['guid'],$row['link'],$row['mediaContent'],$row['provenance'] ); + } + return $tabArticle; + } +} \ No newline at end of file diff --git a/fluxRSS/src/model/FluxModel.php b/fluxRSS/src/model/FluxModel.php new file mode 100755 index 0000000..5116de9 --- /dev/null +++ b/fluxRSS/src/model/FluxModel.php @@ -0,0 +1,71 @@ +findAllFlux(); + + foreach ($result as $row){ + $data[] = new Flux($row['$flux']); + } + return $data; + } + + public function addFlux(Flux $flux){ + $gateway = new FluxGateway(new Connection('mysql:host= londres.uca.local ; dbname= dbrorossetto', 'rorossetto', 'tpphp')); + $data = $this->findFlux($flux); + if ($data == array()) { + $gateway->addFlux($flux); + } + } + + public function addFluxBySrc(string $flux): Flux { + $gateway = new FluxGateway(new Connection('mysql:host= londres.uca.local ; dbname= dbrorossetto', 'rorossetto', 'tpphp')); + $newFlux = new Flux($flux); + $gateway->addFlux($newFlux); + return $newFlux; + } + + public function removeFlux(Flux $flux){ + $gateway = new FluxGateway(new Connection('mysql:host= londres.uca.local ; dbname= dbrorossetto', 'rorossetto', 'tpphp')); + $gateway->removeFlux($flux); + } + + public function removeFluxBySrc(string $flux): Flux { + $gateway = new FluxGateway(new Connection('mysql:host= londres.uca.local ; dbname= dbrorossetto', 'rorossetto', 'tpphp')); + $newFlux = new Flux($flux); + $gateway->removeFlux($newFlux); + return $newFlux; + } + + public function findFlux(Flux $flux){ + $gateway = new FluxGateway(new Connection('mysql:host= londres.uca.local ; dbname= dbrorossetto', 'rorossetto', 'tpphp')); + $data = array(); + $result = $gateway->findFlux($flux); + + foreach ($result as $row){ + $data[] = new Flux($row['$flux']); + } + return $data; + } + + public function findFluxBySrc(string $flux){ + $gateway = new FluxGateway(new Connection('mysql:host= londres.uca.local ; dbname= dbrorossetto', 'rorossetto', 'tpphp')); + $data = array(); + $result = $gateway->findFluxBySrc($flux); + + foreach ($result as $row){ + $data[] = new Flux($row['$flux']); + } + return $data; + } +} \ No newline at end of file diff --git a/fluxRSS/model/Parser.php b/fluxRSS/src/model/Parser.php similarity index 77% rename from fluxRSS/model/Parser.php rename to fluxRSS/src/model/Parser.php index 6e61732..287e26d 100755 --- a/fluxRSS/model/Parser.php +++ b/fluxRSS/src/model/Parser.php @@ -3,6 +3,7 @@ namespace model; use DAL\ArticleGateway; +use DAL\Connection; use DAL\FluxGateway; use DOMDocument; use Exception; @@ -49,6 +50,9 @@ class Parser } + /** + * @throws Exception + */ public function parseAll($fluxes){ foreach ($fluxes as $flux){ $tabArticles[] =$this->parseArticles($flux); @@ -56,13 +60,28 @@ class Parser return $tabArticles; } - public function addAllArticles(){ - $allFlux = $this->fluxGateway->findAllFlux(); + /** + * @throws Exception + */ + public function addAllArticles() + { + $this->articleGateway->removeAllArticleForParser(); + $allFlux = $this->fluxGateway->findAllFlux(); + var_dump($allFlux); $allArticles = $this->parseAll($allFlux); - + var_dump($allArticles); foreach ($allArticles as $article) { $this->articleGateway->addArticle($article); } + return $allArticles; } -} \ No newline at end of file + +} +$gwArt = new ArticleGateway(new Connection('mysql:host=londres.uca.local;dbname=dbrorossetto', 'rorossetto', 'tpphp')); +$gwFl = new FluxGateway(new Connection('mysql:host=londres.uca.local;dbname=dbrorossetto', 'rorossetto', 'tpphp')); +$pars = new Parser( $gwFl,$gwArt); +var_dump($pars->addAllArticles()); + + + diff --git a/fluxRSS/templates/.DS_Store b/fluxRSS/src/templates/.DS_Store similarity index 100% rename from fluxRSS/templates/.DS_Store rename to fluxRSS/src/templates/.DS_Store diff --git a/fluxRSS/templates/erreur.html b/fluxRSS/src/templates/erreur.html similarity index 100% rename from fluxRSS/templates/erreur.html rename to fluxRSS/src/templates/erreur.html diff --git a/fluxRSS/src/templates/listArticle.html b/fluxRSS/src/templates/listArticle.html new file mode 100755 index 0000000..78eee5a --- /dev/null +++ b/fluxRSS/src/templates/listArticle.html @@ -0,0 +1,18 @@ + + + + + All Articles + + +{% for value in dVue.data %} +

+ {% for article in value} +

+ {{article}} +

+ {% endfor %} +

+{% endfor %} + + \ No newline at end of file diff --git a/fluxRSS/templates/vuephp1.html b/fluxRSS/src/templates/vuephp1.html similarity index 100% rename from fluxRSS/templates/vuephp1.html rename to fluxRSS/src/templates/vuephp1.html diff --git a/fluxRSS/templates/listArticle.html b/fluxRSS/templates/listArticle.html deleted file mode 100755 index b794cb4..0000000 --- a/fluxRSS/templates/listArticle.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - All Articles - - -{% for value in dataview.tabArticle.Article %} -

{{value}}

-{% endfor %} - - \ No newline at end of file diff --git a/fluxRSS/vendor/composer/autoload_psr4.php b/fluxRSS/vendor/composer/autoload_psr4.php index abb6bf8..1002bc1 100755 --- a/fluxRSS/vendor/composer/autoload_psr4.php +++ b/fluxRSS/vendor/composer/autoload_psr4.php @@ -6,10 +6,12 @@ $vendorDir = dirname(__DIR__); $baseDir = dirname($vendorDir); return array( - 'modeles\\' => array($baseDir . '/modeles'), + 'model\\' => array($baseDir . '/model'), + 'metier\\' => array($baseDir . '/metier'), 'controleur\\' => array($baseDir . '/controleur'), 'config\\' => array($baseDir . '/config'), 'Twig\\' => array($vendorDir . '/twig/twig/src'), 'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'), 'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'), + 'DAL\\' => array($baseDir . '/DAL'), ); diff --git a/fluxRSS/vendor/composer/autoload_static.php b/fluxRSS/vendor/composer/autoload_static.php index dc37466..868aa69 100755 --- a/fluxRSS/vendor/composer/autoload_static.php +++ b/fluxRSS/vendor/composer/autoload_static.php @@ -14,7 +14,8 @@ class ComposerStaticInita6287a55fe354aae4af95d1e4395c915 public static $prefixLengthsPsr4 = array ( 'm' => array ( - 'modeles\\' => 8, + 'model\\' => 6, + 'metier\\' => 7, ), 'c' => array ( @@ -30,12 +31,20 @@ class ComposerStaticInita6287a55fe354aae4af95d1e4395c915 'Symfony\\Polyfill\\Mbstring\\' => 26, 'Symfony\\Polyfill\\Ctype\\' => 23, ), + 'D' => + array ( + 'DAL\\' => 4, + ), ); public static $prefixDirsPsr4 = array ( - 'modeles\\' => + 'model\\' => + array ( + 0 => __DIR__ . '/../..' . '/model', + ), + 'metier\\' => array ( - 0 => __DIR__ . '/../..' . '/modeles', + 0 => __DIR__ . '/../..' . '/metier', ), 'controleur\\' => array ( @@ -57,6 +66,10 @@ class ComposerStaticInita6287a55fe354aae4af95d1e4395c915 array ( 0 => __DIR__ . '/..' . '/symfony/polyfill-ctype', ), + 'DAL\\' => + array ( + 0 => __DIR__ . '/../..' . '/DAL', + ), ); public static $classMap = array ( diff --git a/fluxRSS/vendor/composer/installed.php b/fluxRSS/vendor/composer/installed.php index a25b246..f85d7f7 100755 --- a/fluxRSS/vendor/composer/installed.php +++ b/fluxRSS/vendor/composer/installed.php @@ -1,9 +1,9 @@ array( 'name' => '__root__', - 'pretty_version' => '1.0.0+no-version-set', - 'version' => '1.0.0.0', - 'reference' => NULL, + 'pretty_version' => 'dev-master', + 'version' => 'dev-master', + 'reference' => 'ad56f74a69d8ff3b81d0d287531c37da6ef273ab', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -11,9 +11,9 @@ ), 'versions' => array( '__root__' => array( - 'pretty_version' => '1.0.0+no-version-set', - 'version' => '1.0.0.0', - 'reference' => NULL, + 'pretty_version' => 'dev-master', + 'version' => 'dev-master', + 'reference' => 'ad56f74a69d8ff3b81d0d287531c37da6ef273ab', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), diff --git a/testDB.php.txt b/testDB.php.txt new file mode 100644 index 0000000..8ecfed6 --- /dev/null +++ b/testDB.php.txt @@ -0,0 +1,8 @@ +https://perso.limos.fr/~sesalva/files/php/Tp2A/tp1/projets.html +parser add article to the bd +X article par page lors de recherche +admin peut ajouter/suppr/modif flux rss, modif nb d'article par page + +flux rss = fichier xml qui contient news +parser doit parser le flux rss pour créer un article +php inclut parser xml diff --git a/use case diagramm.mdj b/use case diagramm.mdj new file mode 100644 index 0000000..8e08235 --- /dev/null +++ b/use case diagramm.mdj @@ -0,0 +1 @@ +{"_type":"Project","_id":"AAAAAAFF+h6SjaM2Hec=","name":"Untitled","ownedElements":[{"_type":"UMLModel","_id":"AAAAAAFF+qBWK6M3Z8Y=","_parent":{"$ref":"AAAAAAFF+h6SjaM2Hec="},"name":"Model","ownedElements":[{"_type":"UMLClassDiagram","_id":"AAAAAAFF+qBtyKM79qY=","_parent":{"$ref":"AAAAAAFF+qBWK6M3Z8Y="},"name":"Main","defaultDiagram":true,"ownedViews":[{"_type":"UMLClassView","_id":"AAAAAAGLr4ofbOxmReQ=","_parent":{"$ref":"AAAAAAFF+qBtyKM79qY="},"model":{"$ref":"AAAAAAGLr4ofbOxksOk="},"subViews":[{"_type":"UMLNameCompartmentView","_id":"AAAAAAGLr4ofbOxnEXE=","_parent":{"$ref":"AAAAAAGLr4ofbOxmReQ="},"model":{"$ref":"AAAAAAGLr4ofbOxksOk="},"subViews":[{"_type":"LabelView","_id":"AAAAAAGLr4ofbOxo7Ic=","_parent":{"$ref":"AAAAAAGLr4ofbOxnEXE="},"visible":false,"font":"Arial;13;0","left":208,"top":-352,"height":13},{"_type":"LabelView","_id":"AAAAAAGLr4ofbexpad0=","_parent":{"$ref":"AAAAAAGLr4ofbOxnEXE="},"font":"Arial;13;1","left":381,"top":111,"width":42.919921875,"height":13,"text":"Flux"},{"_type":"LabelView","_id":"AAAAAAGLr4ofbexqK8Y=","_parent":{"$ref":"AAAAAAGLr4ofbOxnEXE="},"visible":false,"font":"Arial;13;0","left":208,"top":-352,"width":73.67724609375,"height":13,"text":"(from Model)"},{"_type":"LabelView","_id":"AAAAAAGLr4ofbexrTbw=","_parent":{"$ref":"AAAAAAGLr4ofbOxnEXE="},"visible":false,"font":"Arial;13;0","left":208,"top":-352,"height":13,"horizontalAlignment":1}],"font":"Arial;13;0","left":376,"top":104,"width":52.919921875,"height":25,"stereotypeLabel":{"$ref":"AAAAAAGLr4ofbOxo7Ic="},"nameLabel":{"$ref":"AAAAAAGLr4ofbexpad0="},"namespaceLabel":{"$ref":"AAAAAAGLr4ofbexqK8Y="},"propertyLabel":{"$ref":"AAAAAAGLr4ofbexrTbw="}},{"_type":"UMLAttributeCompartmentView","_id":"AAAAAAGLr4ofbexsXL4=","_parent":{"$ref":"AAAAAAGLr4ofbOxmReQ="},"model":{"$ref":"AAAAAAGLr4ofbOxksOk="},"font":"Arial;13;0","left":376,"top":129,"width":52.919921875,"height":10},{"_type":"UMLOperationCompartmentView","_id":"AAAAAAGLr4ofbexthdY=","_parent":{"$ref":"AAAAAAGLr4ofbOxmReQ="},"model":{"$ref":"AAAAAAGLr4ofbOxksOk="},"font":"Arial;13;0","left":376,"top":139,"width":52.919921875,"height":10},{"_type":"UMLReceptionCompartmentView","_id":"AAAAAAGLr4ofbexuRSI=","_parent":{"$ref":"AAAAAAGLr4ofbOxmReQ="},"model":{"$ref":"AAAAAAGLr4ofbOxksOk="},"visible":false,"font":"Arial;13;0","left":104,"top":-176,"width":10,"height":10},{"_type":"UMLTemplateParameterCompartmentView","_id":"AAAAAAGLr4ofbexvlY0=","_parent":{"$ref":"AAAAAAGLr4ofbOxmReQ="},"model":{"$ref":"AAAAAAGLr4ofbOxksOk="},"visible":false,"font":"Arial;13;0","left":104,"top":-176,"width":10,"height":10}],"font":"Arial;13;0","containerChangeable":true,"left":376,"top":104,"width":51.919921875,"height":45,"nameCompartment":{"$ref":"AAAAAAGLr4ofbOxnEXE="},"attributeCompartment":{"$ref":"AAAAAAGLr4ofbexsXL4="},"operationCompartment":{"$ref":"AAAAAAGLr4ofbexthdY="},"receptionCompartment":{"$ref":"AAAAAAGLr4ofbexuRSI="},"templateParameterCompartment":{"$ref":"AAAAAAGLr4ofbexvlY0="}},{"_type":"UMLClassView","_id":"AAAAAAGLr4qOjeyQZgM=","_parent":{"$ref":"AAAAAAFF+qBtyKM79qY="},"model":{"$ref":"AAAAAAGLr4qOjeyOp8g="},"subViews":[{"_type":"UMLNameCompartmentView","_id":"AAAAAAGLr4qOjeyRo7I=","_parent":{"$ref":"AAAAAAGLr4qOjeyQZgM="},"model":{"$ref":"AAAAAAGLr4qOjeyOp8g="},"subViews":[{"_type":"LabelView","_id":"AAAAAAGLr4qOjeySV18=","_parent":{"$ref":"AAAAAAGLr4qOjeyRo7I="},"visible":false,"font":"Arial;13;0","left":384,"top":208,"height":13},{"_type":"LabelView","_id":"AAAAAAGLr4qOjuyT3tQ=","_parent":{"$ref":"AAAAAAGLr4qOjeyRo7I="},"font":"Arial;13;1","left":349,"top":511,"width":42.919921875,"height":13,"text":"Article"},{"_type":"LabelView","_id":"AAAAAAGLr4qOjuyUpo0=","_parent":{"$ref":"AAAAAAGLr4qOjeyRo7I="},"visible":false,"font":"Arial;13;0","left":384,"top":208,"width":73.67724609375,"height":13,"text":"(from Model)"},{"_type":"LabelView","_id":"AAAAAAGLr4qOjuyVAb4=","_parent":{"$ref":"AAAAAAGLr4qOjeyRo7I="},"visible":false,"font":"Arial;13;0","left":384,"top":208,"height":13,"horizontalAlignment":1}],"font":"Arial;13;0","left":344,"top":504,"width":52.919921875,"height":25,"stereotypeLabel":{"$ref":"AAAAAAGLr4qOjeySV18="},"nameLabel":{"$ref":"AAAAAAGLr4qOjuyT3tQ="},"namespaceLabel":{"$ref":"AAAAAAGLr4qOjuyUpo0="},"propertyLabel":{"$ref":"AAAAAAGLr4qOjuyVAb4="}},{"_type":"UMLAttributeCompartmentView","_id":"AAAAAAGLr4qOjuyWqy0=","_parent":{"$ref":"AAAAAAGLr4qOjeyQZgM="},"model":{"$ref":"AAAAAAGLr4qOjeyOp8g="},"font":"Arial;13;0","left":344,"top":529,"width":52.919921875,"height":10},{"_type":"UMLOperationCompartmentView","_id":"AAAAAAGLr4qOjuyXm+4=","_parent":{"$ref":"AAAAAAGLr4qOjeyQZgM="},"model":{"$ref":"AAAAAAGLr4qOjeyOp8g="},"font":"Arial;13;0","left":344,"top":539,"width":52.919921875,"height":10},{"_type":"UMLReceptionCompartmentView","_id":"AAAAAAGLr4qOjuyY+is=","_parent":{"$ref":"AAAAAAGLr4qOjeyQZgM="},"model":{"$ref":"AAAAAAGLr4qOjeyOp8g="},"visible":false,"font":"Arial;13;0","left":192,"top":104,"width":10,"height":10},{"_type":"UMLTemplateParameterCompartmentView","_id":"AAAAAAGLr4qOjuyZTv4=","_parent":{"$ref":"AAAAAAGLr4qOjeyQZgM="},"model":{"$ref":"AAAAAAGLr4qOjeyOp8g="},"visible":false,"font":"Arial;13;0","left":192,"top":104,"width":10,"height":10}],"font":"Arial;13;0","containerChangeable":true,"left":344,"top":504,"width":51.919921875,"height":45,"nameCompartment":{"$ref":"AAAAAAGLr4qOjeyRo7I="},"attributeCompartment":{"$ref":"AAAAAAGLr4qOjuyWqy0="},"operationCompartment":{"$ref":"AAAAAAGLr4qOjuyXm+4="},"receptionCompartment":{"$ref":"AAAAAAGLr4qOjuyY+is="},"templateParameterCompartment":{"$ref":"AAAAAAGLr4qOjuyZTv4="}},{"_type":"UMLClassView","_id":"AAAAAAGLr4sA9ey+QQ0=","_parent":{"$ref":"AAAAAAFF+qBtyKM79qY="},"model":{"$ref":"AAAAAAGLr4sA9Oy89r8="},"subViews":[{"_type":"UMLNameCompartmentView","_id":"AAAAAAGLr4sA9uy/1nQ=","_parent":{"$ref":"AAAAAAGLr4sA9ey+QQ0="},"model":{"$ref":"AAAAAAGLr4sA9Oy89r8="},"subViews":[{"_type":"LabelView","_id":"AAAAAAGLr4sA9uzAc4U=","_parent":{"$ref":"AAAAAAGLr4sA9uy/1nQ="},"visible":false,"font":"Arial;13;0","left":-624,"top":96,"height":13},{"_type":"LabelView","_id":"AAAAAAGLr4sA9uzBisk=","_parent":{"$ref":"AAAAAAGLr4sA9uy/1nQ="},"font":"Arial;13;1","left":157,"top":207,"width":81.1962890625,"height":13,"text":"FluxGateway"},{"_type":"LabelView","_id":"AAAAAAGLr4sA9uzCjqM=","_parent":{"$ref":"AAAAAAGLr4sA9uy/1nQ="},"visible":false,"font":"Arial;13;0","left":-624,"top":96,"width":73.67724609375,"height":13,"text":"(from Model)"},{"_type":"LabelView","_id":"AAAAAAGLr4sA9uzDGCM=","_parent":{"$ref":"AAAAAAGLr4sA9uy/1nQ="},"visible":false,"font":"Arial;13;0","left":-624,"top":96,"height":13,"horizontalAlignment":1}],"font":"Arial;13;0","left":152,"top":200,"width":91.1962890625,"height":25,"stereotypeLabel":{"$ref":"AAAAAAGLr4sA9uzAc4U="},"nameLabel":{"$ref":"AAAAAAGLr4sA9uzBisk="},"namespaceLabel":{"$ref":"AAAAAAGLr4sA9uzCjqM="},"propertyLabel":{"$ref":"AAAAAAGLr4sA9uzDGCM="}},{"_type":"UMLAttributeCompartmentView","_id":"AAAAAAGLr4sA9uzEqcU=","_parent":{"$ref":"AAAAAAGLr4sA9ey+QQ0="},"model":{"$ref":"AAAAAAGLr4sA9Oy89r8="},"font":"Arial;13;0","left":152,"top":225,"width":91.1962890625,"height":10},{"_type":"UMLOperationCompartmentView","_id":"AAAAAAGLr4sA9uzF6AU=","_parent":{"$ref":"AAAAAAGLr4sA9ey+QQ0="},"model":{"$ref":"AAAAAAGLr4sA9Oy89r8="},"font":"Arial;13;0","left":152,"top":235,"width":91.1962890625,"height":10},{"_type":"UMLReceptionCompartmentView","_id":"AAAAAAGLr4sA9uzGbC0=","_parent":{"$ref":"AAAAAAGLr4sA9ey+QQ0="},"model":{"$ref":"AAAAAAGLr4sA9Oy89r8="},"visible":false,"font":"Arial;13;0","left":-312,"top":48,"width":10,"height":10},{"_type":"UMLTemplateParameterCompartmentView","_id":"AAAAAAGLr4sA9uzHIfA=","_parent":{"$ref":"AAAAAAGLr4sA9ey+QQ0="},"model":{"$ref":"AAAAAAGLr4sA9Oy89r8="},"visible":false,"font":"Arial;13;0","left":-312,"top":48,"width":10,"height":10}],"font":"Arial;13;0","containerChangeable":true,"left":152,"top":200,"width":90.1962890625,"height":45,"nameCompartment":{"$ref":"AAAAAAGLr4sA9uy/1nQ="},"attributeCompartment":{"$ref":"AAAAAAGLr4sA9uzEqcU="},"operationCompartment":{"$ref":"AAAAAAGLr4sA9uzF6AU="},"receptionCompartment":{"$ref":"AAAAAAGLr4sA9uzGbC0="},"templateParameterCompartment":{"$ref":"AAAAAAGLr4sA9uzHIfA="}},{"_type":"UMLClassView","_id":"AAAAAAGLr4tHS+zpelA=","_parent":{"$ref":"AAAAAAFF+qBtyKM79qY="},"model":{"$ref":"AAAAAAGLr4tHS+znCJg="},"subViews":[{"_type":"UMLNameCompartmentView","_id":"AAAAAAGLr4tHTOzqy1s=","_parent":{"$ref":"AAAAAAGLr4tHS+zpelA="},"model":{"$ref":"AAAAAAGLr4tHS+znCJg="},"subViews":[{"_type":"LabelView","_id":"AAAAAAGLr4tHTOzrDj8=","_parent":{"$ref":"AAAAAAGLr4tHTOzqy1s="},"visible":false,"font":"Arial;13;0","left":-384,"top":-32,"height":13},{"_type":"LabelView","_id":"AAAAAAGLr4tHTOzsG+8=","_parent":{"$ref":"AAAAAAGLr4tHTOzqy1s="},"font":"Arial;13;1","left":141,"top":431,"width":87.70263671875,"height":13,"text":"ArticleGatway"},{"_type":"LabelView","_id":"AAAAAAGLr4tHTOztuq4=","_parent":{"$ref":"AAAAAAGLr4tHTOzqy1s="},"visible":false,"font":"Arial;13;0","left":-384,"top":-32,"width":73.67724609375,"height":13,"text":"(from Model)"},{"_type":"LabelView","_id":"AAAAAAGLr4tHTOzuOJo=","_parent":{"$ref":"AAAAAAGLr4tHTOzqy1s="},"visible":false,"font":"Arial;13;0","left":-384,"top":-32,"height":13,"horizontalAlignment":1}],"font":"Arial;13;0","left":136,"top":424,"width":97.70263671875,"height":25,"stereotypeLabel":{"$ref":"AAAAAAGLr4tHTOzrDj8="},"nameLabel":{"$ref":"AAAAAAGLr4tHTOzsG+8="},"namespaceLabel":{"$ref":"AAAAAAGLr4tHTOztuq4="},"propertyLabel":{"$ref":"AAAAAAGLr4tHTOzuOJo="}},{"_type":"UMLAttributeCompartmentView","_id":"AAAAAAGLr4tHTOzvss4=","_parent":{"$ref":"AAAAAAGLr4tHS+zpelA="},"model":{"$ref":"AAAAAAGLr4tHS+znCJg="},"font":"Arial;13;0","left":136,"top":449,"width":97.70263671875,"height":10},{"_type":"UMLOperationCompartmentView","_id":"AAAAAAGLr4tHTOzw/2c=","_parent":{"$ref":"AAAAAAGLr4tHS+zpelA="},"model":{"$ref":"AAAAAAGLr4tHS+znCJg="},"font":"Arial;13;0","left":136,"top":459,"width":97.70263671875,"height":10},{"_type":"UMLReceptionCompartmentView","_id":"AAAAAAGLr4tHTOzxkrk=","_parent":{"$ref":"AAAAAAGLr4tHS+zpelA="},"model":{"$ref":"AAAAAAGLr4tHS+znCJg="},"visible":false,"font":"Arial;13;0","left":-192,"top":-16,"width":10,"height":10},{"_type":"UMLTemplateParameterCompartmentView","_id":"AAAAAAGLr4tHTOzykco=","_parent":{"$ref":"AAAAAAGLr4tHS+zpelA="},"model":{"$ref":"AAAAAAGLr4tHS+znCJg="},"visible":false,"font":"Arial;13;0","left":-192,"top":-16,"width":10,"height":10}],"font":"Arial;13;0","containerChangeable":true,"left":136,"top":424,"width":96.70263671875,"height":45,"nameCompartment":{"$ref":"AAAAAAGLr4tHTOzqy1s="},"attributeCompartment":{"$ref":"AAAAAAGLr4tHTOzvss4="},"operationCompartment":{"$ref":"AAAAAAGLr4tHTOzw/2c="},"receptionCompartment":{"$ref":"AAAAAAGLr4tHTOzxkrk="},"templateParameterCompartment":{"$ref":"AAAAAAGLr4tHTOzykco="}},{"_type":"UMLClassView","_id":"AAAAAAGLr4t9Fu0U6JQ=","_parent":{"$ref":"AAAAAAFF+qBtyKM79qY="},"model":{"$ref":"AAAAAAGLr4t9Fe0SDHU="},"subViews":[{"_type":"UMLNameCompartmentView","_id":"AAAAAAGLr4t9Fu0VKg0=","_parent":{"$ref":"AAAAAAGLr4t9Fu0U6JQ="},"model":{"$ref":"AAAAAAGLr4t9Fe0SDHU="},"subViews":[{"_type":"LabelView","_id":"AAAAAAGLr4t9Fu0WQGc=","_parent":{"$ref":"AAAAAAGLr4t9Fu0VKg0="},"visible":false,"font":"Arial;13;0","left":-656,"top":16,"height":13},{"_type":"LabelView","_id":"AAAAAAGLr4t9Fu0XJEk=","_parent":{"$ref":"AAAAAAGLr4t9Fu0VKg0="},"font":"Arial;13;1","left":349,"top":207,"width":65.2763671875,"height":13,"text":"FluxModel"},{"_type":"LabelView","_id":"AAAAAAGLr4t9Fu0YMXA=","_parent":{"$ref":"AAAAAAGLr4t9Fu0VKg0="},"visible":false,"font":"Arial;13;0","left":-656,"top":16,"width":73.67724609375,"height":13,"text":"(from Model)"},{"_type":"LabelView","_id":"AAAAAAGLr4t9Fu0ZmDM=","_parent":{"$ref":"AAAAAAGLr4t9Fu0VKg0="},"visible":false,"font":"Arial;13;0","left":-656,"top":16,"height":13,"horizontalAlignment":1}],"font":"Arial;13;0","left":344,"top":200,"width":75.2763671875,"height":25,"stereotypeLabel":{"$ref":"AAAAAAGLr4t9Fu0WQGc="},"nameLabel":{"$ref":"AAAAAAGLr4t9Fu0XJEk="},"namespaceLabel":{"$ref":"AAAAAAGLr4t9Fu0YMXA="},"propertyLabel":{"$ref":"AAAAAAGLr4t9Fu0ZmDM="}},{"_type":"UMLAttributeCompartmentView","_id":"AAAAAAGLr4t9Fu0aqZ4=","_parent":{"$ref":"AAAAAAGLr4t9Fu0U6JQ="},"model":{"$ref":"AAAAAAGLr4t9Fe0SDHU="},"font":"Arial;13;0","left":344,"top":225,"width":75.2763671875,"height":10},{"_type":"UMLOperationCompartmentView","_id":"AAAAAAGLr4t9Fu0bKIw=","_parent":{"$ref":"AAAAAAGLr4t9Fu0U6JQ="},"model":{"$ref":"AAAAAAGLr4t9Fe0SDHU="},"font":"Arial;13;0","left":344,"top":235,"width":75.2763671875,"height":10},{"_type":"UMLReceptionCompartmentView","_id":"AAAAAAGLr4t9Fu0cGg0=","_parent":{"$ref":"AAAAAAGLr4t9Fu0U6JQ="},"model":{"$ref":"AAAAAAGLr4t9Fe0SDHU="},"visible":false,"font":"Arial;13;0","left":-328,"top":8,"width":10,"height":10},{"_type":"UMLTemplateParameterCompartmentView","_id":"AAAAAAGLr4t9Fu0dZuc=","_parent":{"$ref":"AAAAAAGLr4t9Fu0U6JQ="},"model":{"$ref":"AAAAAAGLr4t9Fe0SDHU="},"visible":false,"font":"Arial;13;0","left":-328,"top":8,"width":10,"height":10}],"font":"Arial;13;0","containerChangeable":true,"left":344,"top":200,"width":74.2763671875,"height":45,"nameCompartment":{"$ref":"AAAAAAGLr4t9Fu0VKg0="},"attributeCompartment":{"$ref":"AAAAAAGLr4t9Fu0aqZ4="},"operationCompartment":{"$ref":"AAAAAAGLr4t9Fu0bKIw="},"receptionCompartment":{"$ref":"AAAAAAGLr4t9Fu0cGg0="},"templateParameterCompartment":{"$ref":"AAAAAAGLr4t9Fu0dZuc="}},{"_type":"UMLClassView","_id":"AAAAAAGLr4u2wO0/BMQ=","_parent":{"$ref":"AAAAAAFF+qBtyKM79qY="},"model":{"$ref":"AAAAAAGLr4u2wO09x0k="},"subViews":[{"_type":"UMLNameCompartmentView","_id":"AAAAAAGLr4u2wO1Ajb0=","_parent":{"$ref":"AAAAAAGLr4u2wO0/BMQ="},"model":{"$ref":"AAAAAAGLr4u2wO09x0k="},"subViews":[{"_type":"LabelView","_id":"AAAAAAGLr4u2we1BZIA=","_parent":{"$ref":"AAAAAAGLr4u2wO1Ajb0="},"visible":false,"font":"Arial;13;0","left":-608,"top":144,"height":13},{"_type":"LabelView","_id":"AAAAAAGLr4u2we1Ch7U=","_parent":{"$ref":"AAAAAAGLr4u2wO1Ajb0="},"font":"Arial;13;1","left":333,"top":423,"width":79.0126953125,"height":13,"text":"ArticleModel"},{"_type":"LabelView","_id":"AAAAAAGLr4u2we1DVWc=","_parent":{"$ref":"AAAAAAGLr4u2wO1Ajb0="},"visible":false,"font":"Arial;13;0","left":-608,"top":144,"width":73.67724609375,"height":13,"text":"(from Model)"},{"_type":"LabelView","_id":"AAAAAAGLr4u2we1EC7I=","_parent":{"$ref":"AAAAAAGLr4u2wO1Ajb0="},"visible":false,"font":"Arial;13;0","left":-608,"top":144,"height":13,"horizontalAlignment":1}],"font":"Arial;13;0","left":328,"top":416,"width":89.0126953125,"height":25,"stereotypeLabel":{"$ref":"AAAAAAGLr4u2we1BZIA="},"nameLabel":{"$ref":"AAAAAAGLr4u2we1Ch7U="},"namespaceLabel":{"$ref":"AAAAAAGLr4u2we1DVWc="},"propertyLabel":{"$ref":"AAAAAAGLr4u2we1EC7I="}},{"_type":"UMLAttributeCompartmentView","_id":"AAAAAAGLr4u2we1FDjs=","_parent":{"$ref":"AAAAAAGLr4u2wO0/BMQ="},"model":{"$ref":"AAAAAAGLr4u2wO09x0k="},"font":"Arial;13;0","left":328,"top":441,"width":89.0126953125,"height":10},{"_type":"UMLOperationCompartmentView","_id":"AAAAAAGLr4u2we1GOeQ=","_parent":{"$ref":"AAAAAAGLr4u2wO0/BMQ="},"model":{"$ref":"AAAAAAGLr4u2wO09x0k="},"font":"Arial;13;0","left":328,"top":451,"width":89.0126953125,"height":10},{"_type":"UMLReceptionCompartmentView","_id":"AAAAAAGLr4u2we1Hq9Q=","_parent":{"$ref":"AAAAAAGLr4u2wO0/BMQ="},"model":{"$ref":"AAAAAAGLr4u2wO09x0k="},"visible":false,"font":"Arial;13;0","left":-304,"top":72,"width":10,"height":10},{"_type":"UMLTemplateParameterCompartmentView","_id":"AAAAAAGLr4u2we1IQSw=","_parent":{"$ref":"AAAAAAGLr4u2wO0/BMQ="},"model":{"$ref":"AAAAAAGLr4u2wO09x0k="},"visible":false,"font":"Arial;13;0","left":-304,"top":72,"width":10,"height":10}],"font":"Arial;13;0","containerChangeable":true,"left":328,"top":416,"width":88.0126953125,"height":45,"nameCompartment":{"$ref":"AAAAAAGLr4u2wO1Ajb0="},"attributeCompartment":{"$ref":"AAAAAAGLr4u2we1FDjs="},"operationCompartment":{"$ref":"AAAAAAGLr4u2we1GOeQ="},"receptionCompartment":{"$ref":"AAAAAAGLr4u2we1Hq9Q="},"templateParameterCompartment":{"$ref":"AAAAAAGLr4u2we1IQSw="}},{"_type":"UMLClassView","_id":"AAAAAAGLr4w7e+1w0I8=","_parent":{"$ref":"AAAAAAFF+qBtyKM79qY="},"model":{"$ref":"AAAAAAGLr4w7eu1u8Gg="},"subViews":[{"_type":"UMLNameCompartmentView","_id":"AAAAAAGLr4w7e+1x1J4=","_parent":{"$ref":"AAAAAAGLr4w7e+1w0I8="},"model":{"$ref":"AAAAAAGLr4w7eu1u8Gg="},"subViews":[{"_type":"LabelView","_id":"AAAAAAGLr4w7e+1yxNg=","_parent":{"$ref":"AAAAAAGLr4w7e+1x1J4="},"visible":false,"font":"Arial;13;0","left":432,"top":496,"height":13},{"_type":"LabelView","_id":"AAAAAAGLr4w7e+1zbkk=","_parent":{"$ref":"AAAAAAGLr4w7e+1x1J4="},"font":"Arial;13;1","left":573,"top":328,"width":67.44091796875,"height":13,"text":"Controleur"},{"_type":"LabelView","_id":"AAAAAAGLr4w7e+10o0Q=","_parent":{"$ref":"AAAAAAGLr4w7e+1x1J4="},"visible":false,"font":"Arial;13;0","left":432,"top":496,"width":73.67724609375,"height":13,"text":"(from Model)"},{"_type":"LabelView","_id":"AAAAAAGLr4w7e+11GwA=","_parent":{"$ref":"AAAAAAGLr4w7e+1x1J4="},"visible":false,"font":"Arial;13;0","left":432,"top":496,"height":13,"horizontalAlignment":1}],"font":"Arial;13;0","left":568,"top":321,"width":77.44091796875,"height":25,"stereotypeLabel":{"$ref":"AAAAAAGLr4w7e+1yxNg="},"nameLabel":{"$ref":"AAAAAAGLr4w7e+1zbkk="},"namespaceLabel":{"$ref":"AAAAAAGLr4w7e+10o0Q="},"propertyLabel":{"$ref":"AAAAAAGLr4w7e+11GwA="}},{"_type":"UMLAttributeCompartmentView","_id":"AAAAAAGLr4w7e+12qNs=","_parent":{"$ref":"AAAAAAGLr4w7e+1w0I8="},"model":{"$ref":"AAAAAAGLr4w7eu1u8Gg="},"font":"Arial;13;0","left":568,"top":346,"width":77.44091796875,"height":10},{"_type":"UMLOperationCompartmentView","_id":"AAAAAAGLr4w7e+13c7Y=","_parent":{"$ref":"AAAAAAGLr4w7e+1w0I8="},"model":{"$ref":"AAAAAAGLr4w7eu1u8Gg="},"font":"Arial;13;0","left":568,"top":356,"width":77.44091796875,"height":10},{"_type":"UMLReceptionCompartmentView","_id":"AAAAAAGLr4w7e+145ik=","_parent":{"$ref":"AAAAAAGLr4w7e+1w0I8="},"model":{"$ref":"AAAAAAGLr4w7eu1u8Gg="},"visible":false,"font":"Arial;13;0","left":216,"top":248,"width":10,"height":10},{"_type":"UMLTemplateParameterCompartmentView","_id":"AAAAAAGLr4w7fO154NM=","_parent":{"$ref":"AAAAAAGLr4w7e+1w0I8="},"model":{"$ref":"AAAAAAGLr4w7eu1u8Gg="},"visible":false,"font":"Arial;13;0","left":216,"top":248,"width":10,"height":10}],"font":"Arial;13;0","containerChangeable":true,"left":568,"top":321,"width":76.44091796875,"height":45,"nameCompartment":{"$ref":"AAAAAAGLr4w7e+1x1J4="},"attributeCompartment":{"$ref":"AAAAAAGLr4w7e+12qNs="},"operationCompartment":{"$ref":"AAAAAAGLr4w7e+13c7Y="},"receptionCompartment":{"$ref":"AAAAAAGLr4w7e+145ik="},"templateParameterCompartment":{"$ref":"AAAAAAGLr4w7fO154NM="}},{"_type":"UMLClassView","_id":"AAAAAAGLr411J+2bMLA=","_parent":{"$ref":"AAAAAAFF+qBtyKM79qY="},"model":{"$ref":"AAAAAAGLr411J+2ZYOI="},"subViews":[{"_type":"UMLNameCompartmentView","_id":"AAAAAAGLr411J+2cO68=","_parent":{"$ref":"AAAAAAGLr411J+2bMLA="},"model":{"$ref":"AAAAAAGLr411J+2ZYOI="},"subViews":[{"_type":"LabelView","_id":"AAAAAAGLr411J+2dkI0=","_parent":{"$ref":"AAAAAAGLr411J+2cO68="},"visible":false,"font":"Arial;13;0","left":-288,"top":-112,"height":13},{"_type":"LabelView","_id":"AAAAAAGLr411J+2ebew=","_parent":{"$ref":"AAAAAAGLr411J+2cO68="},"font":"Arial;13;1","left":589,"top":431,"width":55.9072265625,"height":13,"text":"Validator"},{"_type":"LabelView","_id":"AAAAAAGLr411J+2foZw=","_parent":{"$ref":"AAAAAAGLr411J+2cO68="},"visible":false,"font":"Arial;13;0","left":-288,"top":-112,"width":73.67724609375,"height":13,"text":"(from Model)"},{"_type":"LabelView","_id":"AAAAAAGLr411J+2gzuo=","_parent":{"$ref":"AAAAAAGLr411J+2cO68="},"visible":false,"font":"Arial;13;0","left":-288,"top":-112,"height":13,"horizontalAlignment":1}],"font":"Arial;13;0","left":584,"top":424,"width":65.9072265625,"height":25,"stereotypeLabel":{"$ref":"AAAAAAGLr411J+2dkI0="},"nameLabel":{"$ref":"AAAAAAGLr411J+2ebew="},"namespaceLabel":{"$ref":"AAAAAAGLr411J+2foZw="},"propertyLabel":{"$ref":"AAAAAAGLr411J+2gzuo="}},{"_type":"UMLAttributeCompartmentView","_id":"AAAAAAGLr411J+2hFhA=","_parent":{"$ref":"AAAAAAGLr411J+2bMLA="},"model":{"$ref":"AAAAAAGLr411J+2ZYOI="},"font":"Arial;13;0","left":584,"top":449,"width":65.9072265625,"height":10},{"_type":"UMLOperationCompartmentView","_id":"AAAAAAGLr411KO2iids=","_parent":{"$ref":"AAAAAAGLr411J+2bMLA="},"model":{"$ref":"AAAAAAGLr411J+2ZYOI="},"font":"Arial;13;0","left":584,"top":459,"width":65.9072265625,"height":10},{"_type":"UMLReceptionCompartmentView","_id":"AAAAAAGLr411KO2jAKQ=","_parent":{"$ref":"AAAAAAGLr411J+2bMLA="},"model":{"$ref":"AAAAAAGLr411J+2ZYOI="},"visible":false,"font":"Arial;13;0","left":-144,"top":-56,"width":10,"height":10},{"_type":"UMLTemplateParameterCompartmentView","_id":"AAAAAAGLr411KO2ki0E=","_parent":{"$ref":"AAAAAAGLr411J+2bMLA="},"model":{"$ref":"AAAAAAGLr411J+2ZYOI="},"visible":false,"font":"Arial;13;0","left":-144,"top":-56,"width":10,"height":10}],"font":"Arial;13;0","containerChangeable":true,"left":584,"top":424,"width":64.9072265625,"height":45,"nameCompartment":{"$ref":"AAAAAAGLr411J+2cO68="},"attributeCompartment":{"$ref":"AAAAAAGLr411J+2hFhA="},"operationCompartment":{"$ref":"AAAAAAGLr411KO2iids="},"receptionCompartment":{"$ref":"AAAAAAGLr411KO2jAKQ="},"templateParameterCompartment":{"$ref":"AAAAAAGLr411KO2ki0E="}},{"_type":"UMLClassView","_id":"AAAAAAGLr42hUe3Gd5g=","_parent":{"$ref":"AAAAAAFF+qBtyKM79qY="},"model":{"$ref":"AAAAAAGLr42hUe3EoLI="},"subViews":[{"_type":"UMLNameCompartmentView","_id":"AAAAAAGLr42hUe3Hgn0=","_parent":{"$ref":"AAAAAAGLr42hUe3Gd5g="},"model":{"$ref":"AAAAAAGLr42hUe3EoLI="},"subViews":[{"_type":"LabelView","_id":"AAAAAAGLr42hUu3IkRU=","_parent":{"$ref":"AAAAAAGLr42hUe3Hgn0="},"visible":false,"font":"Arial;13;0","left":-640,"top":-544,"height":13},{"_type":"LabelView","_id":"AAAAAAGLr42hUu3Jy68=","_parent":{"$ref":"AAAAAAGLr42hUe3Hgn0="},"font":"Arial;13;1","left":13,"top":319,"width":72.49365234375,"height":13,"text":"Connection"},{"_type":"LabelView","_id":"AAAAAAGLr42hUu3KHUg=","_parent":{"$ref":"AAAAAAGLr42hUe3Hgn0="},"visible":false,"font":"Arial;13;0","left":-640,"top":-544,"width":73.67724609375,"height":13,"text":"(from Model)"},{"_type":"LabelView","_id":"AAAAAAGLr42hUu3LwQU=","_parent":{"$ref":"AAAAAAGLr42hUe3Hgn0="},"visible":false,"font":"Arial;13;0","left":-640,"top":-544,"height":13,"horizontalAlignment":1}],"font":"Arial;13;0","left":8,"top":312,"width":82.49365234375,"height":25,"stereotypeLabel":{"$ref":"AAAAAAGLr42hUu3IkRU="},"nameLabel":{"$ref":"AAAAAAGLr42hUu3Jy68="},"namespaceLabel":{"$ref":"AAAAAAGLr42hUu3KHUg="},"propertyLabel":{"$ref":"AAAAAAGLr42hUu3LwQU="}},{"_type":"UMLAttributeCompartmentView","_id":"AAAAAAGLr42hUu3MzdM=","_parent":{"$ref":"AAAAAAGLr42hUe3Gd5g="},"model":{"$ref":"AAAAAAGLr42hUe3EoLI="},"font":"Arial;13;0","left":8,"top":337,"width":82.49365234375,"height":10},{"_type":"UMLOperationCompartmentView","_id":"AAAAAAGLr42hUu3NIww=","_parent":{"$ref":"AAAAAAGLr42hUe3Gd5g="},"model":{"$ref":"AAAAAAGLr42hUe3EoLI="},"font":"Arial;13;0","left":8,"top":347,"width":82.49365234375,"height":10},{"_type":"UMLReceptionCompartmentView","_id":"AAAAAAGLr42hUu3OEh4=","_parent":{"$ref":"AAAAAAGLr42hUe3Gd5g="},"model":{"$ref":"AAAAAAGLr42hUe3EoLI="},"visible":false,"font":"Arial;13;0","left":-320,"top":-272,"width":10,"height":10},{"_type":"UMLTemplateParameterCompartmentView","_id":"AAAAAAGLr42hUu3PGK8=","_parent":{"$ref":"AAAAAAGLr42hUe3Gd5g="},"model":{"$ref":"AAAAAAGLr42hUe3EoLI="},"visible":false,"font":"Arial;13;0","left":-320,"top":-272,"width":10,"height":10}],"font":"Arial;13;0","containerChangeable":true,"left":8,"top":312,"width":81.49365234375,"height":45,"nameCompartment":{"$ref":"AAAAAAGLr42hUe3Hgn0="},"attributeCompartment":{"$ref":"AAAAAAGLr42hUu3MzdM="},"operationCompartment":{"$ref":"AAAAAAGLr42hUu3NIww="},"receptionCompartment":{"$ref":"AAAAAAGLr42hUu3OEh4="},"templateParameterCompartment":{"$ref":"AAAAAAGLr42hUu3PGK8="}},{"_type":"UMLDependencyView","_id":"AAAAAAGLr44zyu34ZpE=","_parent":{"$ref":"AAAAAAFF+qBtyKM79qY="},"model":{"$ref":"AAAAAAGLr44zye321Qo="},"subViews":[{"_type":"EdgeLabelView","_id":"AAAAAAGLr44zy+35pF0=","_parent":{"$ref":"AAAAAAGLr44zyu34ZpE="},"model":{"$ref":"AAAAAAGLr44zye321Qo="},"visible":false,"font":"Arial;13;0","left":376,"top":164,"height":13,"alpha":1.5707963267948966,"distance":15,"hostEdge":{"$ref":"AAAAAAGLr44zyu34ZpE="},"edgePosition":1},{"_type":"EdgeLabelView","_id":"AAAAAAGLr44zy+36zj8=","_parent":{"$ref":"AAAAAAGLr44zyu34ZpE="},"model":{"$ref":"AAAAAAGLr44zye321Qo="},"visible":null,"font":"Arial;13;0","left":361,"top":161,"height":13,"alpha":1.5707963267948966,"distance":30,"hostEdge":{"$ref":"AAAAAAGLr44zyu34ZpE="},"edgePosition":1},{"_type":"EdgeLabelView","_id":"AAAAAAGLr44zy+37P6c=","_parent":{"$ref":"AAAAAAGLr44zyu34ZpE="},"model":{"$ref":"AAAAAAGLr44zye321Qo="},"visible":false,"font":"Arial;13;0","left":405,"top":171,"height":13,"alpha":-1.5707963267948966,"distance":15,"hostEdge":{"$ref":"AAAAAAGLr44zyu34ZpE="},"edgePosition":1}],"font":"Arial;13;0","head":{"$ref":"AAAAAAGLr4ofbOxmReQ="},"tail":{"$ref":"AAAAAAGLr4t9Fu0U6JQ="},"lineStyle":1,"points":"386:199;396:150","showVisibility":true,"nameLabel":{"$ref":"AAAAAAGLr44zy+35pF0="},"stereotypeLabel":{"$ref":"AAAAAAGLr44zy+36zj8="},"propertyLabel":{"$ref":"AAAAAAGLr44zy+37P6c="}},{"_type":"UMLDependencyView","_id":"AAAAAAGLr45C1O4JWNI=","_parent":{"$ref":"AAAAAAFF+qBtyKM79qY="},"model":{"$ref":"AAAAAAGLr45C1O4HDN8="},"subViews":[{"_type":"EdgeLabelView","_id":"AAAAAAGLr45C1O4Kn8k=","_parent":{"$ref":"AAAAAAGLr45C1O4JWNI="},"model":{"$ref":"AAAAAAGLr45C1O4HDN8="},"visible":false,"font":"Arial;13;0","left":384,"top":475,"height":13,"alpha":1.5707963267948966,"distance":15,"hostEdge":{"$ref":"AAAAAAGLr45C1O4JWNI="},"edgePosition":1},{"_type":"EdgeLabelView","_id":"AAAAAAGLr45C1e4L0lg=","_parent":{"$ref":"AAAAAAGLr45C1O4JWNI="},"model":{"$ref":"AAAAAAGLr45C1O4HDN8="},"visible":null,"font":"Arial;13;0","left":399,"top":475,"height":13,"alpha":1.5707963267948966,"distance":30,"hostEdge":{"$ref":"AAAAAAGLr45C1O4JWNI="},"edgePosition":1},{"_type":"EdgeLabelView","_id":"AAAAAAGLr45C1e4MFO4=","_parent":{"$ref":"AAAAAAGLr45C1O4JWNI="},"model":{"$ref":"AAAAAAGLr45C1O4HDN8="},"visible":false,"font":"Arial;13;0","left":355,"top":476,"height":13,"alpha":-1.5707963267948966,"distance":15,"hostEdge":{"$ref":"AAAAAAGLr45C1O4JWNI="},"edgePosition":1}],"font":"Arial;13;0","head":{"$ref":"AAAAAAGLr4qOjeyQZgM="},"tail":{"$ref":"AAAAAAGLr4u2wO0/BMQ="},"lineStyle":1,"points":"371:462;370:503","showVisibility":true,"nameLabel":{"$ref":"AAAAAAGLr45C1O4Kn8k="},"stereotypeLabel":{"$ref":"AAAAAAGLr45C1e4L0lg="},"propertyLabel":{"$ref":"AAAAAAGLr45C1e4MFO4="}},{"_type":"UMLAssociationView","_id":"AAAAAAGLr45Xb+4cWj0=","_parent":{"$ref":"AAAAAAFF+qBtyKM79qY="},"model":{"$ref":"AAAAAAGLr45Xbu4YV/Q="},"subViews":[{"_type":"EdgeLabelView","_id":"AAAAAAGLr45Xb+4dUnU=","_parent":{"$ref":"AAAAAAGLr45Xb+4cWj0="},"model":{"$ref":"AAAAAAGLr45Xbu4YV/Q="},"visible":false,"font":"Arial;13;0","left":125,"top":372,"height":13,"alpha":1.5707963267948966,"distance":15,"hostEdge":{"$ref":"AAAAAAGLr45Xb+4cWj0="},"edgePosition":1},{"_type":"EdgeLabelView","_id":"AAAAAAGLr45XcO4eIwk=","_parent":{"$ref":"AAAAAAGLr45Xb+4cWj0="},"model":{"$ref":"AAAAAAGLr45Xbu4YV/Q="},"visible":null,"font":"Arial;13;0","left":135,"top":360,"height":13,"alpha":1.5707963267948966,"distance":30,"hostEdge":{"$ref":"AAAAAAGLr45Xb+4cWj0="},"edgePosition":1},{"_type":"EdgeLabelView","_id":"AAAAAAGLr45XcO4fNxA=","_parent":{"$ref":"AAAAAAGLr45Xb+4cWj0="},"model":{"$ref":"AAAAAAGLr45Xbu4YV/Q="},"visible":false,"font":"Arial;13;0","left":106,"top":395,"height":13,"alpha":-1.5707963267948966,"distance":15,"hostEdge":{"$ref":"AAAAAAGLr45Xb+4cWj0="},"edgePosition":1},{"_type":"EdgeLabelView","_id":"AAAAAAGLr45XcO4gyEs=","_parent":{"$ref":"AAAAAAGLr45Xb+4cWj0="},"model":{"$ref":"AAAAAAGLr45Xb+4ZWAc="},"visible":false,"font":"Arial;13;0","left":106,"top":356,"height":13,"alpha":0.5235987755982988,"distance":30,"hostEdge":{"$ref":"AAAAAAGLr45Xb+4cWj0="},"edgePosition":2},{"_type":"EdgeLabelView","_id":"AAAAAAGLr45XcO4hDhk=","_parent":{"$ref":"AAAAAAGLr45Xb+4cWj0="},"model":{"$ref":"AAAAAAGLr45Xb+4ZWAc="},"visible":false,"font":"Arial;13;0","left":116,"top":348,"height":13,"alpha":0.7853981633974483,"distance":40,"hostEdge":{"$ref":"AAAAAAGLr45Xb+4cWj0="},"edgePosition":2},{"_type":"EdgeLabelView","_id":"AAAAAAGLr45XcO4ioQQ=","_parent":{"$ref":"AAAAAAGLr45Xb+4cWj0="},"model":{"$ref":"AAAAAAGLr45Xb+4ZWAc="},"visible":false,"font":"Arial;13;0","left":85,"top":375,"height":13,"alpha":-0.5235987755982988,"distance":25,"hostEdge":{"$ref":"AAAAAAGLr45Xb+4cWj0="},"edgePosition":2},{"_type":"EdgeLabelView","_id":"AAAAAAGLr45XcO4jRi0=","_parent":{"$ref":"AAAAAAGLr45Xb+4cWj0="},"model":{"$ref":"AAAAAAGLr45Xb+4aK00="},"visible":false,"font":"Arial;13;0","left":145,"top":388,"height":13,"alpha":-0.5235987755982988,"distance":30,"hostEdge":{"$ref":"AAAAAAGLr45Xb+4cWj0="}},{"_type":"EdgeLabelView","_id":"AAAAAAGLr45XcO4k//E=","_parent":{"$ref":"AAAAAAGLr45Xb+4cWj0="},"model":{"$ref":"AAAAAAGLr45Xb+4aK00="},"visible":false,"font":"Arial;13;0","left":152,"top":377,"height":13,"alpha":-0.7853981633974483,"distance":40,"hostEdge":{"$ref":"AAAAAAGLr45Xb+4cWj0="}},{"_type":"EdgeLabelView","_id":"AAAAAAGLr45XcO4lGWI=","_parent":{"$ref":"AAAAAAGLr45Xb+4cWj0="},"model":{"$ref":"AAAAAAGLr45Xb+4aK00="},"visible":false,"font":"Arial;13;0","left":131,"top":412,"height":13,"alpha":0.5235987755982988,"distance":25,"hostEdge":{"$ref":"AAAAAAGLr45Xb+4cWj0="}},{"_type":"UMLQualifierCompartmentView","_id":"AAAAAAGLr45XcO4mxxM=","_parent":{"$ref":"AAAAAAGLr45Xb+4cWj0="},"model":{"$ref":"AAAAAAGLr45Xb+4ZWAc="},"visible":false,"font":"Arial;13;0","width":10,"height":10},{"_type":"UMLQualifierCompartmentView","_id":"AAAAAAGLr45XcO4n9Hs=","_parent":{"$ref":"AAAAAAGLr45Xb+4cWj0="},"model":{"$ref":"AAAAAAGLr45Xb+4aK00="},"visible":false,"font":"Arial;13;0","width":10,"height":10}],"font":"Arial;13;0","head":{"$ref":"AAAAAAGLr4tHS+zpelA="},"tail":{"$ref":"AAAAAAGLr42hUe3Gd5g="},"lineStyle":1,"points":"77:358;156:423","showVisibility":true,"nameLabel":{"$ref":"AAAAAAGLr45Xb+4dUnU="},"stereotypeLabel":{"$ref":"AAAAAAGLr45XcO4eIwk="},"propertyLabel":{"$ref":"AAAAAAGLr45XcO4fNxA="},"showEndOrder":"hide","tailRoleNameLabel":{"$ref":"AAAAAAGLr45XcO4gyEs="},"tailPropertyLabel":{"$ref":"AAAAAAGLr45XcO4hDhk="},"tailMultiplicityLabel":{"$ref":"AAAAAAGLr45XcO4ioQQ="},"headRoleNameLabel":{"$ref":"AAAAAAGLr45XcO4jRi0="},"headPropertyLabel":{"$ref":"AAAAAAGLr45XcO4k//E="},"headMultiplicityLabel":{"$ref":"AAAAAAGLr45XcO4lGWI="},"tailQualifiersCompartment":{"$ref":"AAAAAAGLr45XcO4mxxM="},"headQualifiersCompartment":{"$ref":"AAAAAAGLr45XcO4n9Hs="}},{"_type":"UMLAssociationView","_id":"AAAAAAGLr45mIO74jNM=","_parent":{"$ref":"AAAAAAFF+qBtyKM79qY="},"model":{"$ref":"AAAAAAGLr45mIO70KSY="},"subViews":[{"_type":"EdgeLabelView","_id":"AAAAAAGLr45mIO75yg8=","_parent":{"$ref":"AAAAAAGLr45mIO74jNM="},"model":{"$ref":"AAAAAAGLr45mIO70KSY="},"visible":false,"font":"Arial;13;0","left":113,"top":259,"height":13,"alpha":1.5707963267948966,"distance":15,"hostEdge":{"$ref":"AAAAAAGLr45mIO74jNM="},"edgePosition":1},{"_type":"EdgeLabelView","_id":"AAAAAAGLr45mIe76e8Q=","_parent":{"$ref":"AAAAAAGLr45mIO74jNM="},"model":{"$ref":"AAAAAAGLr45mIO70KSY="},"visible":null,"font":"Arial;13;0","left":104,"top":247,"height":13,"alpha":1.5707963267948966,"distance":30,"hostEdge":{"$ref":"AAAAAAGLr45mIO74jNM="},"edgePosition":1},{"_type":"EdgeLabelView","_id":"AAAAAAGLr45mIe77ps0=","_parent":{"$ref":"AAAAAAGLr45mIO74jNM="},"model":{"$ref":"AAAAAAGLr45mIO70KSY="},"visible":false,"font":"Arial;13;0","left":130,"top":284,"height":13,"alpha":-1.5707963267948966,"distance":15,"hostEdge":{"$ref":"AAAAAAGLr45mIO74jNM="},"edgePosition":1},{"_type":"EdgeLabelView","_id":"AAAAAAGLr45mIe78KVg=","_parent":{"$ref":"AAAAAAGLr45mIO74jNM="},"model":{"$ref":"AAAAAAGLr45mIO71ZqM="},"visible":false,"font":"Arial;13;0","left":90,"top":277,"height":13,"alpha":0.5235987755982988,"distance":30,"hostEdge":{"$ref":"AAAAAAGLr45mIO74jNM="},"edgePosition":2},{"_type":"EdgeLabelView","_id":"AAAAAAGLr45mIe79Fjw=","_parent":{"$ref":"AAAAAAGLr45mIO74jNM="},"model":{"$ref":"AAAAAAGLr45mIO71ZqM="},"visible":false,"font":"Arial;13;0","left":84,"top":265,"height":13,"alpha":0.7853981633974483,"distance":40,"hostEdge":{"$ref":"AAAAAAGLr45mIO74jNM="},"edgePosition":2},{"_type":"EdgeLabelView","_id":"AAAAAAGLr45mIe7+wgM=","_parent":{"$ref":"AAAAAAGLr45mIO74jNM="},"model":{"$ref":"AAAAAAGLr45mIO71ZqM="},"visible":false,"font":"Arial;13;0","left":103,"top":301,"height":13,"alpha":-0.5235987755982988,"distance":25,"hostEdge":{"$ref":"AAAAAAGLr45mIO74jNM="},"edgePosition":2},{"_type":"EdgeLabelView","_id":"AAAAAAGLr45mIe7/iX4=","_parent":{"$ref":"AAAAAAGLr45mIO74jNM="},"model":{"$ref":"AAAAAAGLr45mIO72eIk="},"visible":false,"font":"Arial;13;0","left":135,"top":243,"height":13,"alpha":-0.5235987755982988,"distance":30,"hostEdge":{"$ref":"AAAAAAGLr45mIO74jNM="}},{"_type":"EdgeLabelView","_id":"AAAAAAGLr45mIe8Atl8=","_parent":{"$ref":"AAAAAAGLr45mIO74jNM="},"model":{"$ref":"AAAAAAGLr45mIO72eIk="},"visible":false,"font":"Arial;13;0","left":125,"top":234,"height":13,"alpha":-0.7853981633974483,"distance":40,"hostEdge":{"$ref":"AAAAAAGLr45mIO74jNM="}},{"_type":"EdgeLabelView","_id":"AAAAAAGLr45mIe8Bvlo=","_parent":{"$ref":"AAAAAAGLr45mIO74jNM="},"model":{"$ref":"AAAAAAGLr45mIO72eIk="},"visible":false,"font":"Arial;13;0","left":155,"top":263,"height":13,"alpha":0.5235987755982988,"distance":25,"hostEdge":{"$ref":"AAAAAAGLr45mIO74jNM="}},{"_type":"UMLQualifierCompartmentView","_id":"AAAAAAGLr45mIe8CYfo=","_parent":{"$ref":"AAAAAAGLr45mIO74jNM="},"model":{"$ref":"AAAAAAGLr45mIO71ZqM="},"visible":false,"font":"Arial;13;0","width":10,"height":10},{"_type":"UMLQualifierCompartmentView","_id":"AAAAAAGLr45mIe8DBHE=","_parent":{"$ref":"AAAAAAGLr45mIO74jNM="},"model":{"$ref":"AAAAAAGLr45mIO72eIk="},"visible":false,"font":"Arial;13;0","width":10,"height":10}],"font":"Arial;13;0","head":{"$ref":"AAAAAAGLr4sA9ey+QQ0="},"tail":{"$ref":"AAAAAAGLr42hUe3Gd5g="},"lineStyle":1,"points":"79:311;165:246","showVisibility":true,"nameLabel":{"$ref":"AAAAAAGLr45mIO75yg8="},"stereotypeLabel":{"$ref":"AAAAAAGLr45mIe76e8Q="},"propertyLabel":{"$ref":"AAAAAAGLr45mIe77ps0="},"showEndOrder":"hide","tailRoleNameLabel":{"$ref":"AAAAAAGLr45mIe78KVg="},"tailPropertyLabel":{"$ref":"AAAAAAGLr45mIe79Fjw="},"tailMultiplicityLabel":{"$ref":"AAAAAAGLr45mIe7+wgM="},"headRoleNameLabel":{"$ref":"AAAAAAGLr45mIe7/iX4="},"headPropertyLabel":{"$ref":"AAAAAAGLr45mIe8Atl8="},"headMultiplicityLabel":{"$ref":"AAAAAAGLr45mIe8Bvlo="},"tailQualifiersCompartment":{"$ref":"AAAAAAGLr45mIe8CYfo="},"headQualifiersCompartment":{"$ref":"AAAAAAGLr45mIe8DBHE="}},{"_type":"UMLDependencyView","_id":"AAAAAAGLr475fftRd1Y=","_parent":{"$ref":"AAAAAAFF+qBtyKM79qY="},"model":{"$ref":"AAAAAAGLr475fPtPm7M="},"subViews":[{"_type":"EdgeLabelView","_id":"AAAAAAGLr475fftSV/c=","_parent":{"$ref":"AAAAAAGLr475fftRd1Y="},"model":{"$ref":"AAAAAAGLr475fPtPm7M="},"visible":false,"font":"Arial;13;0","left":280,"top":450,"height":13,"alpha":1.5707963267948966,"distance":15,"hostEdge":{"$ref":"AAAAAAGLr475fftRd1Y="},"edgePosition":1},{"_type":"EdgeLabelView","_id":"AAAAAAGLr475fvtTPQk=","_parent":{"$ref":"AAAAAAGLr475fftRd1Y="},"model":{"$ref":"AAAAAAGLr475fPtPm7M="},"visible":null,"font":"Arial;13;0","left":281,"top":465,"height":13,"alpha":1.5707963267948966,"distance":30,"hostEdge":{"$ref":"AAAAAAGLr475fftRd1Y="},"edgePosition":1},{"_type":"EdgeLabelView","_id":"AAAAAAGLr475fvtUWS4=","_parent":{"$ref":"AAAAAAGLr475fftRd1Y="},"model":{"$ref":"AAAAAAGLr475fPtPm7M="},"visible":false,"font":"Arial;13;0","left":279,"top":421,"height":13,"alpha":-1.5707963267948966,"distance":15,"hostEdge":{"$ref":"AAAAAAGLr475fftRd1Y="},"edgePosition":1}],"font":"Arial;13;0","head":{"$ref":"AAAAAAGLr4tHS+zpelA="},"tail":{"$ref":"AAAAAAGLr4u2wO0/BMQ="},"lineStyle":1,"points":"327:440;234:444","showVisibility":true,"nameLabel":{"$ref":"AAAAAAGLr475fftSV/c="},"stereotypeLabel":{"$ref":"AAAAAAGLr475fvtTPQk="},"propertyLabel":{"$ref":"AAAAAAGLr475fvtUWS4="}},{"_type":"UMLDependencyView","_id":"AAAAAAGLr48idPw6MwU=","_parent":{"$ref":"AAAAAAFF+qBtyKM79qY="},"model":{"$ref":"AAAAAAGLr48idPw4hzA="},"subViews":[{"_type":"EdgeLabelView","_id":"AAAAAAGLr48idPw7yvg=","_parent":{"$ref":"AAAAAAGLr48idPw6MwU="},"model":{"$ref":"AAAAAAGLr48idPw4hzA="},"visible":false,"font":"Arial;13;0","left":292,"top":231,"height":13,"alpha":1.5707963267948966,"distance":15,"hostEdge":{"$ref":"AAAAAAGLr48idPw6MwU="},"edgePosition":1},{"_type":"EdgeLabelView","_id":"AAAAAAGLr48idPw8MrM=","_parent":{"$ref":"AAAAAAGLr48idPw6MwU="},"model":{"$ref":"AAAAAAGLr48idPw4hzA="},"visible":null,"font":"Arial;13;0","left":292,"top":246,"height":13,"alpha":1.5707963267948966,"distance":30,"hostEdge":{"$ref":"AAAAAAGLr48idPw6MwU="},"edgePosition":1},{"_type":"EdgeLabelView","_id":"AAAAAAGLr48idfw91t4=","_parent":{"$ref":"AAAAAAGLr48idPw6MwU="},"model":{"$ref":"AAAAAAGLr48idPw4hzA="},"visible":false,"font":"Arial;13;0","left":293,"top":201,"height":13,"alpha":-1.5707963267948966,"distance":15,"hostEdge":{"$ref":"AAAAAAGLr48idPw6MwU="},"edgePosition":1}],"font":"Arial;13;0","head":{"$ref":"AAAAAAGLr4sA9ey+QQ0="},"tail":{"$ref":"AAAAAAGLr4t9Fu0U6JQ="},"lineStyle":1,"points":"343:222;243:222","showVisibility":true,"nameLabel":{"$ref":"AAAAAAGLr48idPw7yvg="},"stereotypeLabel":{"$ref":"AAAAAAGLr48idPw8MrM="},"propertyLabel":{"$ref":"AAAAAAGLr48idfw91t4="}},{"_type":"UMLDependencyView","_id":"AAAAAAGLr49RKP9AUcw=","_parent":{"$ref":"AAAAAAFF+qBtyKM79qY="},"model":{"$ref":"AAAAAAGLr49RJ/8+xx4="},"subViews":[{"_type":"EdgeLabelView","_id":"AAAAAAGLr49RKP9BnH0=","_parent":{"$ref":"AAAAAAGLr49RKP9AUcw="},"model":{"$ref":"AAAAAAGLr49RJ/8+xx4="},"visible":false,"font":"Arial;13;0","left":486,"top":289,"height":13,"alpha":1.5707963267948966,"distance":15,"hostEdge":{"$ref":"AAAAAAGLr49RKP9AUcw="},"edgePosition":1},{"_type":"EdgeLabelView","_id":"AAAAAAGLr49RKP9C5/w=","_parent":{"$ref":"AAAAAAGLr49RKP9AUcw="},"model":{"$ref":"AAAAAAGLr49RJ/8+xx4="},"visible":null,"font":"Arial;13;0","left":479,"top":302,"height":13,"alpha":1.5707963267948966,"distance":30,"hostEdge":{"$ref":"AAAAAAGLr49RKP9AUcw="},"edgePosition":1},{"_type":"EdgeLabelView","_id":"AAAAAAGLr49RKP9DU7w=","_parent":{"$ref":"AAAAAAGLr49RKP9AUcw="},"model":{"$ref":"AAAAAAGLr49RJ/8+xx4="},"visible":false,"font":"Arial;13;0","left":499,"top":262,"height":13,"alpha":-1.5707963267948966,"distance":15,"hostEdge":{"$ref":"AAAAAAGLr49RKP9AUcw="},"edgePosition":1}],"font":"Arial;13;0","head":{"$ref":"AAAAAAGLr4t9Fu0U6JQ="},"tail":{"$ref":"AAAAAAGLr4w7e+1w0I8="},"lineStyle":1,"points":"567:322;419:243","showVisibility":true,"nameLabel":{"$ref":"AAAAAAGLr49RKP9BnH0="},"stereotypeLabel":{"$ref":"AAAAAAGLr49RKP9C5/w="},"propertyLabel":{"$ref":"AAAAAAGLr49RKP9DU7w="}},{"_type":"UMLDependencyView","_id":"AAAAAAGLr49gEQCbJ30=","_parent":{"$ref":"AAAAAAFF+qBtyKM79qY="},"model":{"$ref":"AAAAAAGLr49gEQCZ4Gc="},"subViews":[{"_type":"EdgeLabelView","_id":"AAAAAAGLr49gEQCccrw=","_parent":{"$ref":"AAAAAAGLr49gEQCbJ30="},"model":{"$ref":"AAAAAAGLr49gEQCZ4Gc="},"visible":false,"font":"Arial;13;0","left":497,"top":396,"height":13,"alpha":1.5707963267948966,"distance":15,"hostEdge":{"$ref":"AAAAAAGLr49gEQCbJ30="},"edgePosition":1},{"_type":"EdgeLabelView","_id":"AAAAAAGLr49gEQCdObs=","_parent":{"$ref":"AAAAAAGLr49gEQCbJ30="},"model":{"$ref":"AAAAAAGLr49gEQCZ4Gc="},"visible":null,"font":"Arial;13;0","left":503,"top":410,"height":13,"alpha":1.5707963267948966,"distance":30,"hostEdge":{"$ref":"AAAAAAGLr49gEQCbJ30="},"edgePosition":1},{"_type":"EdgeLabelView","_id":"AAAAAAGLr49gEQCeA0k=","_parent":{"$ref":"AAAAAAGLr49gEQCbJ30="},"model":{"$ref":"AAAAAAGLr49gEQCZ4Gc="},"visible":false,"font":"Arial;13;0","left":486,"top":369,"height":13,"alpha":-1.5707963267948966,"distance":15,"hostEdge":{"$ref":"AAAAAAGLr49gEQCbJ30="},"edgePosition":1}],"font":"Arial;13;0","head":{"$ref":"AAAAAAGLr4u2wO0/BMQ="},"tail":{"$ref":"AAAAAAGLr4w7e+1w0I8="},"lineStyle":1,"points":"567:359;417:420","showVisibility":true,"nameLabel":{"$ref":"AAAAAAGLr49gEQCccrw="},"stereotypeLabel":{"$ref":"AAAAAAGLr49gEQCdObs="},"propertyLabel":{"$ref":"AAAAAAGLr49gEQCeA0k="}},{"_type":"UMLDependencyView","_id":"AAAAAAGLr4+L0AKZ8Rg=","_parent":{"$ref":"AAAAAAFF+qBtyKM79qY="},"model":{"$ref":"AAAAAAGLr4+LzwKXXhM="},"subViews":[{"_type":"EdgeLabelView","_id":"AAAAAAGLr4+L0AKa5oI=","_parent":{"$ref":"AAAAAAGLr4+L0AKZ8Rg="},"model":{"$ref":"AAAAAAGLr4+LzwKXXhM="},"visible":false,"font":"Arial;13;0","left":625,"top":387,"height":13,"alpha":1.5707963267948966,"distance":15,"hostEdge":{"$ref":"AAAAAAGLr4+L0AKZ8Rg="},"edgePosition":1},{"_type":"EdgeLabelView","_id":"AAAAAAGLr4+L0AKb/9E=","_parent":{"$ref":"AAAAAAGLr4+L0AKZ8Rg="},"model":{"$ref":"AAAAAAGLr4+LzwKXXhM="},"visible":null,"font":"Arial;13;0","left":640,"top":385,"height":13,"alpha":1.5707963267948966,"distance":30,"hostEdge":{"$ref":"AAAAAAGLr4+L0AKZ8Rg="},"edgePosition":1},{"_type":"EdgeLabelView","_id":"AAAAAAGLr4+L0AKcFfw=","_parent":{"$ref":"AAAAAAGLr4+L0AKZ8Rg="},"model":{"$ref":"AAAAAAGLr4+LzwKXXhM="},"visible":false,"font":"Arial;13;0","left":596,"top":390,"height":13,"alpha":-1.5707963267948966,"distance":15,"hostEdge":{"$ref":"AAAAAAGLr4+L0AKZ8Rg="},"edgePosition":1}],"font":"Arial;13;0","head":{"$ref":"AAAAAAGLr411J+2bMLA="},"tail":{"$ref":"AAAAAAGLr4w7e+1w0I8="},"lineStyle":1,"points":"608:367;614:423","showVisibility":true,"nameLabel":{"$ref":"AAAAAAGLr4+L0AKa5oI="},"stereotypeLabel":{"$ref":"AAAAAAGLr4+L0AKb/9E="},"propertyLabel":{"$ref":"AAAAAAGLr4+L0AKcFfw="}},{"_type":"UMLClassView","_id":"AAAAAAGLr5bYBRZmUIU=","_parent":{"$ref":"AAAAAAFF+qBtyKM79qY="},"model":{"$ref":"AAAAAAGLr5bYBBZkCMI="},"subViews":[{"_type":"UMLNameCompartmentView","_id":"AAAAAAGLr5bYBRZnDXs=","_parent":{"$ref":"AAAAAAGLr5bYBRZmUIU="},"model":{"$ref":"AAAAAAGLr5bYBBZkCMI="},"subViews":[{"_type":"LabelView","_id":"AAAAAAGLr5bYBRZoL6k=","_parent":{"$ref":"AAAAAAGLr5bYBRZnDXs="},"visible":false,"font":"Arial;13;0","left":-128,"top":80,"height":13},{"_type":"LabelView","_id":"AAAAAAGLr5bYBRZp5Zw=","_parent":{"$ref":"AAAAAAGLr5bYBRZnDXs="},"font":"Arial;13;1","left":677,"top":255,"width":42.919921875,"height":13,"text":"Admin"},{"_type":"LabelView","_id":"AAAAAAGLr5bYBRZqerE=","_parent":{"$ref":"AAAAAAGLr5bYBRZnDXs="},"visible":false,"font":"Arial;13;0","left":-128,"top":80,"width":73.67724609375,"height":13,"text":"(from Model)"},{"_type":"LabelView","_id":"AAAAAAGLr5bYBRZrRdw=","_parent":{"$ref":"AAAAAAGLr5bYBRZnDXs="},"visible":false,"font":"Arial;13;0","left":-128,"top":80,"height":13,"horizontalAlignment":1}],"font":"Arial;13;0","left":672,"top":248,"width":52.919921875,"height":25,"stereotypeLabel":{"$ref":"AAAAAAGLr5bYBRZoL6k="},"nameLabel":{"$ref":"AAAAAAGLr5bYBRZp5Zw="},"namespaceLabel":{"$ref":"AAAAAAGLr5bYBRZqerE="},"propertyLabel":{"$ref":"AAAAAAGLr5bYBRZrRdw="}},{"_type":"UMLAttributeCompartmentView","_id":"AAAAAAGLr5bYBRZsx84=","_parent":{"$ref":"AAAAAAGLr5bYBRZmUIU="},"model":{"$ref":"AAAAAAGLr5bYBBZkCMI="},"font":"Arial;13;0","left":672,"top":273,"width":52.919921875,"height":10},{"_type":"UMLOperationCompartmentView","_id":"AAAAAAGLr5bYBRZtCp0=","_parent":{"$ref":"AAAAAAGLr5bYBRZmUIU="},"model":{"$ref":"AAAAAAGLr5bYBBZkCMI="},"font":"Arial;13;0","left":672,"top":283,"width":52.919921875,"height":10},{"_type":"UMLReceptionCompartmentView","_id":"AAAAAAGLr5bYBRZuI6Q=","_parent":{"$ref":"AAAAAAGLr5bYBRZmUIU="},"model":{"$ref":"AAAAAAGLr5bYBBZkCMI="},"visible":false,"font":"Arial;13;0","left":-64,"top":40,"width":10,"height":10},{"_type":"UMLTemplateParameterCompartmentView","_id":"AAAAAAGLr5bYBRZvEwA=","_parent":{"$ref":"AAAAAAGLr5bYBRZmUIU="},"model":{"$ref":"AAAAAAGLr5bYBBZkCMI="},"visible":false,"font":"Arial;13;0","left":-64,"top":40,"width":10,"height":10}],"font":"Arial;13;0","containerChangeable":true,"left":672,"top":248,"width":51.919921875,"height":45,"nameCompartment":{"$ref":"AAAAAAGLr5bYBRZnDXs="},"attributeCompartment":{"$ref":"AAAAAAGLr5bYBRZsx84="},"operationCompartment":{"$ref":"AAAAAAGLr5bYBRZtCp0="},"receptionCompartment":{"$ref":"AAAAAAGLr5bYBRZuI6Q="},"templateParameterCompartment":{"$ref":"AAAAAAGLr5bYBRZvEwA="}},{"_type":"UMLClassView","_id":"AAAAAAGLr5nyTBnAzJE=","_parent":{"$ref":"AAAAAAFF+qBtyKM79qY="},"model":{"$ref":"AAAAAAGLr5nyTBm+3eU="},"subViews":[{"_type":"UMLNameCompartmentView","_id":"AAAAAAGLr5nyTBnBMhY=","_parent":{"$ref":"AAAAAAGLr5nyTBnAzJE="},"model":{"$ref":"AAAAAAGLr5nyTBm+3eU="},"subViews":[{"_type":"LabelView","_id":"AAAAAAGLr5nyTRnCHrc=","_parent":{"$ref":"AAAAAAGLr5nyTBnBMhY="},"visible":false,"font":"Arial;13;0","height":13},{"_type":"LabelView","_id":"AAAAAAGLr5nyTRnD/wc=","_parent":{"$ref":"AAAAAAGLr5nyTBnBMhY="},"font":"Arial;13;1","left":357,"top":327,"width":42.919921875,"height":13,"text":"Parser"},{"_type":"LabelView","_id":"AAAAAAGLr5nyTRnEREI=","_parent":{"$ref":"AAAAAAGLr5nyTBnBMhY="},"visible":false,"font":"Arial;13;0","width":73.67724609375,"height":13,"text":"(from Model)"},{"_type":"LabelView","_id":"AAAAAAGLr5nyTRnFLgs=","_parent":{"$ref":"AAAAAAGLr5nyTBnBMhY="},"visible":false,"font":"Arial;13;0","height":13,"horizontalAlignment":1}],"font":"Arial;13;0","left":352,"top":320,"width":52.919921875,"height":25,"stereotypeLabel":{"$ref":"AAAAAAGLr5nyTRnCHrc="},"nameLabel":{"$ref":"AAAAAAGLr5nyTRnD/wc="},"namespaceLabel":{"$ref":"AAAAAAGLr5nyTRnEREI="},"propertyLabel":{"$ref":"AAAAAAGLr5nyTRnFLgs="}},{"_type":"UMLAttributeCompartmentView","_id":"AAAAAAGLr5nyTRnGx8k=","_parent":{"$ref":"AAAAAAGLr5nyTBnAzJE="},"model":{"$ref":"AAAAAAGLr5nyTBm+3eU="},"font":"Arial;13;0","left":352,"top":345,"width":52.919921875,"height":10},{"_type":"UMLOperationCompartmentView","_id":"AAAAAAGLr5nyTRnH01Q=","_parent":{"$ref":"AAAAAAGLr5nyTBnAzJE="},"model":{"$ref":"AAAAAAGLr5nyTBm+3eU="},"font":"Arial;13;0","left":352,"top":355,"width":52.919921875,"height":10},{"_type":"UMLReceptionCompartmentView","_id":"AAAAAAGLr5nyTRnIfLw=","_parent":{"$ref":"AAAAAAGLr5nyTBnAzJE="},"model":{"$ref":"AAAAAAGLr5nyTBm+3eU="},"visible":false,"font":"Arial;13;0","width":10,"height":10},{"_type":"UMLTemplateParameterCompartmentView","_id":"AAAAAAGLr5nyTRnJplY=","_parent":{"$ref":"AAAAAAGLr5nyTBnAzJE="},"model":{"$ref":"AAAAAAGLr5nyTBm+3eU="},"visible":false,"font":"Arial;13;0","width":10,"height":10}],"font":"Arial;13;0","containerChangeable":true,"left":352,"top":320,"width":51.919921875,"height":45,"nameCompartment":{"$ref":"AAAAAAGLr5nyTBnBMhY="},"attributeCompartment":{"$ref":"AAAAAAGLr5nyTRnGx8k="},"operationCompartment":{"$ref":"AAAAAAGLr5nyTRnH01Q="},"receptionCompartment":{"$ref":"AAAAAAGLr5nyTRnIfLw="},"templateParameterCompartment":{"$ref":"AAAAAAGLr5nyTRnJplY="}},{"_type":"UMLDependencyView","_id":"AAAAAAGLr5oSOBq2Fh8=","_parent":{"$ref":"AAAAAAFF+qBtyKM79qY="},"model":{"$ref":"AAAAAAGLr5oSNxq0sAE="},"subViews":[{"_type":"EdgeLabelView","_id":"AAAAAAGLr5oSOBq3uyM=","_parent":{"$ref":"AAAAAAGLr5oSOBq2Fh8="},"model":{"$ref":"AAAAAAGLr5oSNxq0sAE="},"visible":false,"font":"Arial;13;0","left":364,"top":275,"height":13,"alpha":1.5707963267948966,"distance":15,"hostEdge":{"$ref":"AAAAAAGLr5oSOBq2Fh8="},"edgePosition":1},{"_type":"EdgeLabelView","_id":"AAAAAAGLr5oSOBq4z/I=","_parent":{"$ref":"AAAAAAGLr5oSOBq2Fh8="},"model":{"$ref":"AAAAAAGLr5oSNxq0sAE="},"visible":null,"font":"Arial;13;0","left":349,"top":275,"height":13,"alpha":1.5707963267948966,"distance":30,"hostEdge":{"$ref":"AAAAAAGLr5oSOBq2Fh8="},"edgePosition":1},{"_type":"EdgeLabelView","_id":"AAAAAAGLr5oSOBq5bBY=","_parent":{"$ref":"AAAAAAGLr5oSOBq2Fh8="},"model":{"$ref":"AAAAAAGLr5oSNxq0sAE="},"visible":false,"font":"Arial;13;0","left":393,"top":276,"height":13,"alpha":-1.5707963267948966,"distance":15,"hostEdge":{"$ref":"AAAAAAGLr5oSOBq2Fh8="},"edgePosition":1}],"font":"Arial;13;0","head":{"$ref":"AAAAAAGLr4t9Fu0U6JQ="},"tail":{"$ref":"AAAAAAGLr5nyTBnAzJE="},"lineStyle":1,"points":"378:319;380:246","showVisibility":true,"nameLabel":{"$ref":"AAAAAAGLr5oSOBq3uyM="},"stereotypeLabel":{"$ref":"AAAAAAGLr5oSOBq4z/I="},"propertyLabel":{"$ref":"AAAAAAGLr5oSOBq5bBY="}},{"_type":"UMLDependencyView","_id":"AAAAAAGLr5oflxuBRew=","_parent":{"$ref":"AAAAAAFF+qBtyKM79qY="},"model":{"$ref":"AAAAAAGLr5oflht/qLU="},"subViews":[{"_type":"EdgeLabelView","_id":"AAAAAAGLr5oflxuC2fU=","_parent":{"$ref":"AAAAAAGLr5oflxuBRew="},"model":{"$ref":"AAAAAAGLr5oflht/qLU="},"visible":false,"font":"Arial;13;0","left":388,"top":384,"height":13,"alpha":1.5707963267948966,"distance":15,"hostEdge":{"$ref":"AAAAAAGLr5oflxuBRew="},"edgePosition":1},{"_type":"EdgeLabelView","_id":"AAAAAAGLr5oflxuD8xw=","_parent":{"$ref":"AAAAAAGLr5oflxuBRew="},"model":{"$ref":"AAAAAAGLr5oflht/qLU="},"visible":null,"font":"Arial;13;0","left":403,"top":385,"height":13,"alpha":1.5707963267948966,"distance":30,"hostEdge":{"$ref":"AAAAAAGLr5oflxuBRew="},"edgePosition":1},{"_type":"EdgeLabelView","_id":"AAAAAAGLr5oflxuE6so=","_parent":{"$ref":"AAAAAAGLr5oflxuBRew="},"model":{"$ref":"AAAAAAGLr5oflht/qLU="},"visible":false,"font":"Arial;13;0","left":359,"top":383,"height":13,"alpha":-1.5707963267948966,"distance":15,"hostEdge":{"$ref":"AAAAAAGLr5oflxuBRew="},"edgePosition":1}],"font":"Arial;13;0","head":{"$ref":"AAAAAAGLr4u2wO0/BMQ="},"tail":{"$ref":"AAAAAAGLr5nyTBnAzJE="},"lineStyle":1,"points":"376:366;373:415","showVisibility":true,"nameLabel":{"$ref":"AAAAAAGLr5oflxuC2fU="},"stereotypeLabel":{"$ref":"AAAAAAGLr5oflxuD8xw="},"propertyLabel":{"$ref":"AAAAAAGLr5oflxuE6so="}},{"_type":"UMLDependencyView","_id":"AAAAAAGLr7/Tgh5LDps=","_parent":{"$ref":"AAAAAAFF+qBtyKM79qY="},"model":{"$ref":"AAAAAAGLr7/TgR5J+DQ="},"subViews":[{"_type":"EdgeLabelView","_id":"AAAAAAGLr7/Tgh5MlqQ=","_parent":{"$ref":"AAAAAAGLr7/Tgh5LDps="},"model":{"$ref":"AAAAAAGLr7/TgR5J+DQ="},"visible":false,"font":"Arial;13;0","left":643,"top":287,"height":13,"alpha":1.5707963267948966,"distance":15,"hostEdge":{"$ref":"AAAAAAGLr7/Tgh5LDps="},"edgePosition":1},{"_type":"EdgeLabelView","_id":"AAAAAAGLr7/Tgh5NTY4=","_parent":{"$ref":"AAAAAAGLr7/Tgh5LDps="},"model":{"$ref":"AAAAAAGLr7/TgR5J+DQ="},"visible":null,"font":"Arial;13;0","left":634,"top":275,"height":13,"alpha":1.5707963267948966,"distance":30,"hostEdge":{"$ref":"AAAAAAGLr7/Tgh5LDps="},"edgePosition":1},{"_type":"EdgeLabelView","_id":"AAAAAAGLr7/Tgh5Oeq0=","_parent":{"$ref":"AAAAAAGLr7/Tgh5LDps="},"model":{"$ref":"AAAAAAGLr7/TgR5J+DQ="},"visible":false,"font":"Arial;13;0","left":662,"top":310,"height":13,"alpha":-1.5707963267948966,"distance":15,"hostEdge":{"$ref":"AAAAAAGLr7/Tgh5LDps="},"edgePosition":1}],"font":"Arial;13;0","head":{"$ref":"AAAAAAGLr5bYBRZmUIU="},"tail":{"$ref":"AAAAAAGLr4w7e+1w0I8="},"lineStyle":1,"points":"635:320;671:291","showVisibility":true,"nameLabel":{"$ref":"AAAAAAGLr7/Tgh5MlqQ="},"stereotypeLabel":{"$ref":"AAAAAAGLr7/Tgh5NTY4="},"propertyLabel":{"$ref":"AAAAAAGLr7/Tgh5Oeq0="}}]},{"_type":"UMLClass","_id":"AAAAAAGLr4na8+w5ld8=","_parent":{"$ref":"AAAAAAFF+qBWK6M3Z8Y="},"name":"Admin"},{"_type":"UMLClass","_id":"AAAAAAGLr4ofbOxksOk=","_parent":{"$ref":"AAAAAAFF+qBWK6M3Z8Y="},"name":"Flux"},{"_type":"UMLClass","_id":"AAAAAAGLr4qOjeyOp8g=","_parent":{"$ref":"AAAAAAFF+qBWK6M3Z8Y="},"name":"Article"},{"_type":"UMLClass","_id":"AAAAAAGLr4sA9Oy89r8=","_parent":{"$ref":"AAAAAAFF+qBWK6M3Z8Y="},"name":"FluxGateway"},{"_type":"UMLClass","_id":"AAAAAAGLr4tHS+znCJg=","_parent":{"$ref":"AAAAAAFF+qBWK6M3Z8Y="},"name":"ArticleGatway"},{"_type":"UMLClass","_id":"AAAAAAGLr4t9Fe0SDHU=","_parent":{"$ref":"AAAAAAFF+qBWK6M3Z8Y="},"name":"FluxModel","ownedElements":[{"_type":"UMLDependency","_id":"AAAAAAGLr44zye321Qo=","_parent":{"$ref":"AAAAAAGLr4t9Fe0SDHU="},"source":{"$ref":"AAAAAAGLr4t9Fe0SDHU="},"target":{"$ref":"AAAAAAGLr4ofbOxksOk="}},{"_type":"UMLDependency","_id":"AAAAAAGLr48idPw4hzA=","_parent":{"$ref":"AAAAAAGLr4t9Fe0SDHU="},"source":{"$ref":"AAAAAAGLr4t9Fe0SDHU="},"target":{"$ref":"AAAAAAGLr4sA9Oy89r8="}},{"_type":"UMLAssociation","_id":"AAAAAAGLr5d3DReWANE=","_parent":{"$ref":"AAAAAAGLr4t9Fe0SDHU="},"name":"flux","end1":{"_type":"UMLAssociationEnd","_id":"AAAAAAGLr5d3DReX81Y=","_parent":{"$ref":"AAAAAAGLr5d3DReWANE="},"reference":{"$ref":"AAAAAAGLr4t9Fe0SDHU="}},"end2":{"_type":"UMLAssociationEnd","_id":"AAAAAAGLr5d3DReY118=","_parent":{"$ref":"AAAAAAGLr5d3DReWANE="},"reference":{"$ref":"AAAAAAGLr4ofbOxksOk="},"navigable":"navigable"}}]},{"_type":"UMLClass","_id":"AAAAAAGLr4u2wO09x0k=","_parent":{"$ref":"AAAAAAFF+qBWK6M3Z8Y="},"name":"ArticleModel","ownedElements":[{"_type":"UMLDependency","_id":"AAAAAAGLr45C1O4HDN8=","_parent":{"$ref":"AAAAAAGLr4u2wO09x0k="},"source":{"$ref":"AAAAAAGLr4u2wO09x0k="},"target":{"$ref":"AAAAAAGLr4qOjeyOp8g="}},{"_type":"UMLDependency","_id":"AAAAAAGLr475fPtPm7M=","_parent":{"$ref":"AAAAAAGLr4u2wO09x0k="},"source":{"$ref":"AAAAAAGLr4u2wO09x0k="},"target":{"$ref":"AAAAAAGLr4tHS+znCJg="}}]},{"_type":"UMLClass","_id":"AAAAAAGLr4w7eu1u8Gg=","_parent":{"$ref":"AAAAAAFF+qBWK6M3Z8Y="},"name":"Controleur","ownedElements":[{"_type":"UMLDependency","_id":"AAAAAAGLr49RJ/8+xx4=","_parent":{"$ref":"AAAAAAGLr4w7eu1u8Gg="},"source":{"$ref":"AAAAAAGLr4w7eu1u8Gg="},"target":{"$ref":"AAAAAAGLr4t9Fe0SDHU="}},{"_type":"UMLDependency","_id":"AAAAAAGLr49gEQCZ4Gc=","_parent":{"$ref":"AAAAAAGLr4w7eu1u8Gg="},"source":{"$ref":"AAAAAAGLr4w7eu1u8Gg="},"target":{"$ref":"AAAAAAGLr4u2wO09x0k="}},{"_type":"UMLDependency","_id":"AAAAAAGLr4+LzwKXXhM=","_parent":{"$ref":"AAAAAAGLr4w7eu1u8Gg="},"source":{"$ref":"AAAAAAGLr4w7eu1u8Gg="},"target":{"$ref":"AAAAAAGLr411J+2ZYOI="}},{"_type":"UMLDependency","_id":"AAAAAAGLr5FRZhGCMEI=","_parent":{"$ref":"AAAAAAGLr4w7eu1u8Gg="},"source":{"$ref":"AAAAAAGLr4w7eu1u8Gg="},"target":{"$ref":"AAAAAAGLr4na8+w5ld8="}},{"_type":"UMLDependency","_id":"AAAAAAGLr5qtfxyw80U=","_parent":{"$ref":"AAAAAAGLr4w7eu1u8Gg="},"source":{"$ref":"AAAAAAGLr4w7eu1u8Gg="},"target":{"$ref":"AAAAAAGLr5nyTBm+3eU="}},{"_type":"UMLDependency","_id":"AAAAAAGLr7/TgR5J+DQ=","_parent":{"$ref":"AAAAAAGLr4w7eu1u8Gg="},"source":{"$ref":"AAAAAAGLr4w7eu1u8Gg="},"target":{"$ref":"AAAAAAGLr5bYBBZkCMI="}}]},{"_type":"UMLClass","_id":"AAAAAAGLr411J+2ZYOI=","_parent":{"$ref":"AAAAAAFF+qBWK6M3Z8Y="},"name":"Validator"},{"_type":"UMLClass","_id":"AAAAAAGLr42hUe3EoLI=","_parent":{"$ref":"AAAAAAFF+qBWK6M3Z8Y="},"name":"Connection","ownedElements":[{"_type":"UMLAssociation","_id":"AAAAAAGLr45Xbu4YV/Q=","_parent":{"$ref":"AAAAAAGLr42hUe3EoLI="},"end1":{"_type":"UMLAssociationEnd","_id":"AAAAAAGLr45Xb+4ZWAc=","_parent":{"$ref":"AAAAAAGLr45Xbu4YV/Q="},"reference":{"$ref":"AAAAAAGLr42hUe3EoLI="}},"end2":{"_type":"UMLAssociationEnd","_id":"AAAAAAGLr45Xb+4aK00=","_parent":{"$ref":"AAAAAAGLr45Xbu4YV/Q="},"reference":{"$ref":"AAAAAAGLr4tHS+znCJg="},"aggregation":"composite"}},{"_type":"UMLAssociation","_id":"AAAAAAGLr45mIO70KSY=","_parent":{"$ref":"AAAAAAGLr42hUe3EoLI="},"end1":{"_type":"UMLAssociationEnd","_id":"AAAAAAGLr45mIO71ZqM=","_parent":{"$ref":"AAAAAAGLr45mIO70KSY="},"reference":{"$ref":"AAAAAAGLr42hUe3EoLI="}},"end2":{"_type":"UMLAssociationEnd","_id":"AAAAAAGLr45mIO72eIk=","_parent":{"$ref":"AAAAAAGLr45mIO70KSY="},"reference":{"$ref":"AAAAAAGLr4sA9Oy89r8="},"aggregation":"composite"}}]},{"_type":"UMLClass","_id":"AAAAAAGLr5bYBBZkCMI=","_parent":{"$ref":"AAAAAAFF+qBWK6M3Z8Y="},"name":"Admin"},{"_type":"UMLClass","_id":"AAAAAAGLr5nyTBm+3eU=","_parent":{"$ref":"AAAAAAFF+qBWK6M3Z8Y="},"name":"Parser","ownedElements":[{"_type":"UMLDependency","_id":"AAAAAAGLr5oSNxq0sAE=","_parent":{"$ref":"AAAAAAGLr5nyTBm+3eU="},"source":{"$ref":"AAAAAAGLr5nyTBm+3eU="},"target":{"$ref":"AAAAAAGLr4t9Fe0SDHU="}},{"_type":"UMLDependency","_id":"AAAAAAGLr5oflht/qLU=","_parent":{"$ref":"AAAAAAGLr5nyTBm+3eU="},"source":{"$ref":"AAAAAAGLr5nyTBm+3eU="},"target":{"$ref":"AAAAAAGLr4u2wO09x0k="}}]}]}]} \ No newline at end of file