Commit 222f107c authored by Gabriel Macena's avatar Gabriel Macena

Casos de uso Consultar Emprestimo (concluído) e Cadastrar Livro (criado).

parent a3742827
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<DATA>
<oql name="ContarEmprestimosExemplar" oqltype="1">
<description></description>
<query><![CDATA[SELECT count(*) as qnt
FROM ngExemplar,
ngExemplar.Emprestimos
WHERE ngExemplar.OID = ?oid:acInt]]></query>
</oql>
<oql name="ContarEmprestimosLivro" oqltype="1">
<description></description>
<query><![CDATA[SELECT count(*) as qnt
FROM ngLivro,
ngLivro.Exemplares,
ngLivro.Exemplares.Emprestimos
WHERE ngLivro.OID = ?oid:acInt]]></query>
</oql>
<oql name="ObterEmprestimos" oqltype="0">
<description></description>
<query><![CDATA[SELECT ngEmprestimo
FROM ngEmprestimo
WHERE (ngEmprestimo.Usuario.OID = ?oid:acInt OR ?oid:acInt IS NULL)
AND(ngEmprestimo.Usuario.Nome LIKE '%'+?nome:acString+'%' OR ?nome:acString IS NULL)
AND (ngEmprestimo.Usuario.CPF = ?cpf:acString OR ?cpf:acString IS NULL)]]></query>
</oql>
<oql name="ObterExemplares" oqltype="0">
<description></description>
<query><![CDATA[SELECT ngExemplar
......@@ -9,6 +32,15 @@ WHERE (ngExemplar.Livro.Titulo LIKE '%'+?titulo:acString+'%' OR ?titulo:acString
AND (ngExemplar.Livro.ISBN = ?isbn:acString OR ?isbn:acString IS NULL)
AND (ngExemplar.Codigo = ?codigo:acString OR ?codigo:acString IS NULL)
ORDER BY ngExemplar.Livro.OID ASC]]></query>
</oql>
<oql name="ObterLivros" oqltype="0">
<description></description>
<query><![CDATA[SELECT ngLivro
FROM ngLivro
WHERE (ngLivro.Titulo LIKE '%'+?titulo:acString+'%' OR ?titulo:acString IS NULL)
AND (ngLivro.ISBN = ?isbn:acString OR ?isbn:acString IS NULL)
AND (ngLivro.Edicao = ?edicao:acString OR ?edicao:acString IS NULL)
ORDER BY ngLivro.Titulo ASC]]></query>
</oql>
<oql name="ObterUsuarios" oqltype="0">
<description></description>
......
......@@ -1375,6 +1375,7 @@
<XPD:REF name="TypedFeatures">nnUfC1MLokm11WnzaTpQrwAA</XPD:REF>
<XPD:REF name="TypedFeatures">dXWq2/VGbUidxxZkqRF4uwAA</XPD:REF>
<XPD:REF name="TypedFeatures">88Hvfu/sw0qYpngeCId/XQAA</XPD:REF>
<XPD:REF name="TypedFeatures">TdmUYVBBW027xdgPxygOtQAA</XPD:REF>
</XPD:REFCOLL>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements" type="UMLGeneralization" guid="kIp4UGknrUGC2ml6BQUhAQAA">
......@@ -2386,6 +2387,7 @@
<XPD:REF name="Specializations">oS3ZwMo4V0yTaGqhuSqrWAAA</XPD:REF>
<XPD:REF name="Specializations">lMTxcmmtDkWkwCpGo/H0nAAA</XPD:REF>
<XPD:REF name="Specializations">JR+4Vw91vkqzMXXPbCNVtwAA</XPD:REF>
<XPD:REF name="Specializations">sD841yqIkEmHWF57QQHDBgAA</XPD:REF>
</XPD:REFCOLL>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements" type="UMLUseCase" guid="sTgq0X6DgE2GqwS9ItxibAAA">
......@@ -17150,6 +17152,94 @@
<XPD:ATTR name="DataValue" type="string">3222</XPD:ATTR>
<XPD:REF name="TaggedModel">afHnC7gfqUSMkKNdHYZp3QAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TaggedValues" type="TaggedValue" guid="gpK076Ffv06C4JoIMBYsmAAA">
<XPD:ATTR name="ProfileName" type="string">DBMappings</XPD:ATTR>
<XPD:ATTR name="TagDefinitionSetName" type="string">UseCaseMap</XPD:ATTR>
<XPD:ATTR name="Name" type="string">XSDs</XPD:ATTR>
<XPD:ATTR name="DataValue" type="string">&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;
&lt;DATA&gt;
&lt;XSD name=&quot;RM_CONSULTAR_IN&quot;&gt;
&lt;description&gt;&lt;/description&gt;
&lt;text&gt;&lt;![CDATA[&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
&lt;!--Created with Liquid XML Studio 6.1.18.0 - FREE Community Edition (http://www.liquid-technologies.com)--&gt;
&lt;xs:schema elementFormDefault=&quot;qualified&quot; xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
&lt;xs:element name=&quot;SYSMSG&quot;&gt;
&lt;xs:complexType&gt;
&lt;xs:sequence&gt;
&lt;xs:element name=&quot;Usuario&quot;&gt;
&lt;xs:complexType&gt;
&lt;xs:attribute name=&quot;OID&quot; type=&quot;xs:string&quot; use=&quot;optional&quot; /&gt;
&lt;xs:attribute name=&quot;Nome&quot; type=&quot;xs:string&quot; use=&quot;optional&quot; /&gt;
&lt;xs:attribute name=&quot;CPF&quot; type=&quot;xs:string&quot; use=&quot;optional&quot; /&gt;
&lt;xs:anyAttribute processContents=&quot;skip&quot; /&gt;
&lt;/xs:complexType&gt;
&lt;/xs:element&gt;
&lt;/xs:sequence&gt;
&lt;xs:anyAttribute processContents=&quot;skip&quot; /&gt;
&lt;/xs:complexType&gt;
&lt;/xs:element&gt;
&lt;/xs:schema&gt;
]]&gt;&lt;/text&gt;
&lt;/XSD&gt;
&lt;XSD name=&quot;RM_CONSULTAR_OUT&quot;&gt;
&lt;description&gt;&lt;/description&gt;
&lt;text&gt;&lt;![CDATA[&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
&lt;!--Created with Liquid XML Studio 6.1.18.0 - FREE Community Edition (http://www.liquid-technologies.com)--&gt;
&lt;xs:schema elementFormDefault=&quot;qualified&quot; xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
&lt;xs:element name=&quot;SYSMSG&quot;&gt;
&lt;xs:complexType&gt;
&lt;xs:sequence&gt;
&lt;xs:element name=&quot;Emprestimos&quot;&gt;
&lt;xs:complexType&gt;
&lt;xs:sequence minOccurs=&quot;0&quot; maxOccurs=&quot;unbounded&quot;&gt;
&lt;xs:element name=&quot;Emprestimo&quot;&gt;
&lt;xs:complexType&gt;
&lt;xs:sequence&gt;
&lt;xs:element name=&quot;Usuario&quot;&gt;
&lt;xs:complexType&gt;
&lt;xs:attribute name=&quot;OID&quot; type=&quot;xs:string&quot; use=&quot;required&quot; /&gt;
&lt;xs:attribute name=&quot;Nome&quot; type=&quot;xs:string&quot; use=&quot;required&quot; /&gt;
&lt;xs:attribute name=&quot;CPF&quot; type=&quot;xs:string&quot; use=&quot;required&quot; /&gt;
&lt;xs:anyAttribute processContents=&quot;skip&quot; /&gt;
&lt;/xs:complexType&gt;
&lt;/xs:element&gt;
&lt;xs:element name=&quot;Exemplar&quot;&gt;
&lt;xs:complexType&gt;
&lt;xs:sequence&gt;
&lt;xs:element name=&quot;Livro&quot;&gt;
&lt;xs:complexType&gt;
&lt;xs:attribute name=&quot;Titulo&quot; type=&quot;xs:string&quot; use=&quot;required&quot; /&gt;
&lt;xs:attribute name=&quot;ISBN&quot; type=&quot;xs:string&quot; use=&quot;required&quot; /&gt;
&lt;xs:anyAttribute processContents=&quot;skip&quot; /&gt;
&lt;/xs:complexType&gt;
&lt;/xs:element&gt;
&lt;/xs:sequence&gt;
&lt;xs:attribute name=&quot;Codigo&quot; type=&quot;xs:string&quot; use=&quot;required&quot; /&gt;
&lt;xs:anyAttribute processContents=&quot;skip&quot; /&gt;
&lt;/xs:complexType&gt;
&lt;/xs:element&gt;
&lt;/xs:sequence&gt;
&lt;xs:attribute name=&quot;DataInicio&quot; type=&quot;xs:date&quot; use=&quot;required&quot; /&gt;
&lt;xs:attribute name=&quot;DataDevolucaoPrevista&quot; type=&quot;xs:date&quot; use=&quot;required&quot; /&gt;
&lt;xs:attribute name=&quot;OID&quot; type=&quot;xs:string&quot; use=&quot;required&quot; /&gt;
&lt;xs:anyAttribute processContents=&quot;skip&quot; /&gt;
&lt;/xs:complexType&gt;
&lt;/xs:element&gt;
&lt;/xs:sequence&gt;
&lt;xs:anyAttribute processContents=&quot;skip&quot; /&gt;
&lt;/xs:complexType&gt;
&lt;/xs:element&gt;
&lt;/xs:sequence&gt;
&lt;xs:anyAttribute processContents=&quot;skip&quot; /&gt;
&lt;/xs:complexType&gt;
&lt;/xs:element&gt;
&lt;/xs:schema&gt;
]]&gt;&lt;/text&gt;
&lt;/XSD&gt;
&lt;/DATA&gt;
</XPD:ATTR>
<XPD:REF name="TaggedModel">afHnC7gfqUSMkKNdHYZp3QAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJCOLL>
<XPD:OBJCOLL name="Behaviors">
<XPD:OBJ name="Behaviors" type="UMLStateMachine" guid="z3VcQDJRSk2X6VN8fkL0PQAA">
......@@ -17179,20 +17269,9 @@
</XPD:REFCOLL>
<XPD:REFCOLL name="Outgoings">
<XPD:REF name="Outgoings">YE+ucYaPI0iDf0OvclIAzQAA</XPD:REF>
<XPD:REF name="Outgoings">NLGwqOv9m025rX5srVc3jwAA</XPD:REF>
</XPD:REFCOLL>
<XPD:REFCOLL name="Incomings">
<XPD:REF name="Incomings">pOhg0mVFGku5Egpu4MAmmgAA</XPD:REF>
<XPD:REF name="Incomings">NLGwqOv9m025rX5srVc3jwAA</XPD:REF>
</XPD:REFCOLL>
</XPD:OBJ>
<XPD:OBJ name="Subvertices" type="UMLFinalState" guid="11RrOViyLUqM+SGIbW3A0AAA">
<XPD:ATTR name="Name" type="string">FinalState1</XPD:ATTR>
<XPD:REF name="ContainerState">f6pJiUkHkk+5wT8dXiLCyQAA</XPD:REF>
<XPD:REFCOLL name="Views">
<XPD:REF name="Views">cWlYBfTtukWauz3yYykjGgAA</XPD:REF>
</XPD:REFCOLL>
<XPD:REFCOLL name="Incomings">
<XPD:REF name="Incomings">YE+ucYaPI0iDf0OvclIAzQAA</XPD:REF>
</XPD:REFCOLL>
</XPD:OBJ>
......@@ -17264,26 +17343,17 @@
<XPD:REF name="Model">pOhg0mVFGku5Egpu4MAmmgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews" type="UMLFinalStateView" guid="cWlYBfTtukWauz3yYykjGgAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">476</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">232</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">26</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">26</XPD:ATTR>
<XPD:REF name="Model">11RrOViyLUqM+SGIbW3A0AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews" type="UMLTransitionView" guid="o0GZo3+3fkGaWKin03V13AAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">251,244;476,244</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">211,263;211,300;280,300;280,243;251,243</XPD:ATTR>
<XPD:REF name="Model">YE+ucYaPI0iDf0OvclIAzQAA</XPD:REF>
<XPD:REF name="Head">cWlYBfTtukWauz3yYykjGgAA</XPD:REF>
<XPD:REF name="Head">d7FC4tzuWkGBHv65aMHfGgAA</XPD:REF>
<XPD:REF name="Tail">d7FC4tzuWkGBHv65aMHfGgAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="bR7cImVGUUCRdd8qdhCOLQAA">
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-4,04834177750963</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">29,2061637330205</XPD:ATTR>
<XPD:ATTR name="Text" type="string">RM_CONSULTAR / Effect_Consultar</XPD:ATTR>
<XPD:REF name="Model">YE+ucYaPI0iDf0OvclIAzQAA</XPD:REF>
</XPD:OBJ>
......@@ -17297,6 +17367,7 @@
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:ATTR name="Text" type="string">{XSD In = RM_CONSULTAR_IN, XSD Out = RM_CONSULTAR_OUT}</XPD:ATTR>
<XPD:REF name="Model">YE+ucYaPI0iDf0OvclIAzQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
......@@ -17319,13 +17390,29 @@
<XPD:OBJ name="Transitions" type="UMLTransition" guid="YE+ucYaPI0iDf0OvclIAzQAA">
<XPD:REF name="StateMachine">z3VcQDJRSk2X6VN8fkL0PQAA</XPD:REF>
<XPD:REF name="Source">Wa4orBzqHk29wdEgWZv0jgAA</XPD:REF>
<XPD:REF name="Target">11RrOViyLUqM+SGIbW3A0AAA</XPD:REF>
<XPD:REF name="Target">Wa4orBzqHk29wdEgWZv0jgAA</XPD:REF>
<XPD:REFCOLL name="Views">
<XPD:REF name="Views">o0GZo3+3fkGaWKin03V13AAA</XPD:REF>
<XPD:REF name="Views">bR7cImVGUUCRdd8qdhCOLQAA</XPD:REF>
<XPD:REF name="Views">OyWrnfWxUkG4Tr+WUguRAgAA</XPD:REF>
<XPD:REF name="Views">xEj1z0zyfkqMHPndhg6aVwAA</XPD:REF>
</XPD:REFCOLL>
<XPD:OBJCOLL name="TaggedValues">
<XPD:OBJ name="TaggedValues" type="TaggedValue" guid="jrTpkulq1karMw00UZEPpgAA">
<XPD:ATTR name="ProfileName" type="string">DBMappings</XPD:ATTR>
<XPD:ATTR name="TagDefinitionSetName" type="string">TransitionMap</XPD:ATTR>
<XPD:ATTR name="Name" type="string">XSD In</XPD:ATTR>
<XPD:ATTR name="DataValue" type="string">RM_CONSULTAR_IN</XPD:ATTR>
<XPD:REF name="TaggedModel">YE+ucYaPI0iDf0OvclIAzQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TaggedValues" type="TaggedValue" guid="/WxEX9ZtH0u4SIPy5/P2PAAA">
<XPD:ATTR name="ProfileName" type="string">DBMappings</XPD:ATTR>
<XPD:ATTR name="TagDefinitionSetName" type="string">TransitionMap</XPD:ATTR>
<XPD:ATTR name="Name" type="string">XSD Out</XPD:ATTR>
<XPD:ATTR name="DataValue" type="string">RM_CONSULTAR_OUT</XPD:ATTR>
<XPD:REF name="TaggedModel">YE+ucYaPI0iDf0OvclIAzQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJCOLL>
<XPD:OBJCOLL name="Effects">
<XPD:OBJ name="Effects" type="UMLUninterpretedAction" guid="m4Ki8adMW0iW9Qx4LV8C7AAA">
<XPD:ATTR name="Name" type="string">Effect_Consultar</XPD:ATTR>
......@@ -17339,11 +17426,6 @@
</XPD:OBJ>
</XPD:OBJCOLL>
</XPD:OBJ>
<XPD:OBJ name="Transitions" type="UMLTransition" guid="NLGwqOv9m025rX5srVc3jwAA">
<XPD:REF name="StateMachine">z3VcQDJRSk2X6VN8fkL0PQAA</XPD:REF>
<XPD:REF name="Source">Wa4orBzqHk29wdEgWZv0jgAA</XPD:REF>
<XPD:REF name="Target">Wa4orBzqHk29wdEgWZv0jgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJCOLL>
</XPD:OBJ>
</XPD:OBJCOLL>
......@@ -17356,6 +17438,606 @@
<XPD:REF name="Child">afHnC7gfqUSMkKNdHYZp3QAA</XPD:REF>
<XPD:REF name="Parent">CW1L1EW3kkSWfD8DU8ciWwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements" type="UMLUseCase" guid="yuXcy+rIfEqg3oEjYTW4cgAA">
<XPD:ATTR name="Name" type="string">ucCadastrarLivro</XPD:ATTR>
<XPD:REF name="Namespace">KJ+F7nxhq0eyH3lYhIBVPwAA</XPD:REF>
<XPD:OBJCOLL name="OwnedDiagrams">
<XPD:OBJ name="OwnedDiagrams" type="UMLClassDiagram" guid="nz+DtNY/mEaP1kvinm8N6wAA">
<XPD:ATTR name="Name" type="string">ClassDiagram</XPD:ATTR>
<XPD:REF name="DiagramOwner">yuXcy+rIfEqg3oEjYTW4cgAA</XPD:REF>
<XPD:OBJ name="DiagramView" type="UMLClassDiagramView" guid="uzwgmu/w7k6bf8UznXGSfQAA">
<XPD:REF name="Diagram">nz+DtNY/mEaP1kvinm8N6wAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
</XPD:OBJCOLL>
<XPD:OBJCOLL name="TaggedValues">
<XPD:OBJ name="TaggedValues" type="TaggedValue" guid="/FRbqyPK7Uiyt61vUl4SUwAA">
<XPD:ATTR name="ProfileName" type="string">DBMappings</XPD:ATTR>
<XPD:ATTR name="TagDefinitionSetName" type="string">DBUseCaseMap</XPD:ATTR>
<XPD:ATTR name="Name" type="string">Code</XPD:ATTR>
<XPD:ATTR name="DataValue" type="string">3226</XPD:ATTR>
<XPD:REF name="TaggedModel">yuXcy+rIfEqg3oEjYTW4cgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJCOLL>
<XPD:OBJCOLL name="Behaviors">
<XPD:OBJ name="Behaviors" type="UMLStateMachine" guid="rMmDBC6Z6UKm6NVK19RHHQAA">
<XPD:ATTR name="Name" type="string">smucCadastrarLivro</XPD:ATTR>
<XPD:REF name="Context">yuXcy+rIfEqg3oEjYTW4cgAA</XPD:REF>
<XPD:OBJ name="Top" type="UMLCompositeState" guid="7eRmBKRA/kKdGrTr220O9gAA">
<XPD:ATTR name="Name" type="string">TOP</XPD:ATTR>
<XPD:REF name="StateMachine">rMmDBC6Z6UKm6NVK19RHHQAA</XPD:REF>
<XPD:OBJCOLL name="Subvertices">
<XPD:OBJ name="Subvertices" type="UMLPseudostate" guid="imh4+iaz3EG79uZkluvrPAAA">
<XPD:ATTR name="Name" type="string">Initial1</XPD:ATTR>
<XPD:ATTR name="PseudostateKind" type="UMLPseudostateKind">pkInitial</XPD:ATTR>
<XPD:REF name="ContainerState">7eRmBKRA/kKdGrTr220O9gAA</XPD:REF>
<XPD:REFCOLL name="Views">
<XPD:REF name="Views">APUBeiaQGEKJtwuZDoKUoAAA</XPD:REF>
</XPD:REFCOLL>
<XPD:REFCOLL name="Outgoings">
<XPD:REF name="Outgoings">Oq3x5PyqVUuQPFTVWiSvtQAA</XPD:REF>
</XPD:REFCOLL>
</XPD:OBJ>
<XPD:OBJ name="Subvertices" type="UMLCompositeState" guid="wy02TSbKGkeN/miS5VoUNwAA">
<XPD:ATTR name="Name" type="string">BuscandoLivro</XPD:ATTR>
<XPD:REF name="ContainerState">7eRmBKRA/kKdGrTr220O9gAA</XPD:REF>
<XPD:REFCOLL name="Views">
<XPD:REF name="Views">JHzIhFdvpEWOIXNDuaaEbQAA</XPD:REF>
<XPD:REF name="Views">vECM26OuB0CVkDZ0R8S05QAA</XPD:REF>
</XPD:REFCOLL>
<XPD:REFCOLL name="Outgoings">
<XPD:REF name="Outgoings">iAkGXpCmc0GsVGezMYwNqgAA</XPD:REF>
<XPD:REF name="Outgoings">be4kxrai4kWIE0rJGvroXgAA</XPD:REF>
<XPD:REF name="Outgoings">ucGpxz4BokuE6uRuj1Mg5gAA</XPD:REF>
<XPD:REF name="Outgoings">/u9PYRaLc0CmjB7Yh1GIywAA</XPD:REF>
</XPD:REFCOLL>
<XPD:REFCOLL name="Incomings">
<XPD:REF name="Incomings">Oq3x5PyqVUuQPFTVWiSvtQAA</XPD:REF>
<XPD:REF name="Incomings">X5TeXBSwLEmIbiay8jrHRQAA</XPD:REF>
<XPD:REF name="Incomings">sEavbW4g4kWN0JWvoKTZHAAA</XPD:REF>
<XPD:REF name="Incomings">ucGpxz4BokuE6uRuj1Mg5gAA</XPD:REF>
<XPD:REF name="Incomings">/u9PYRaLc0CmjB7Yh1GIywAA</XPD:REF>
</XPD:REFCOLL>
</XPD:OBJ>
<XPD:OBJ name="Subvertices" type="UMLCompositeState" guid="jW1z7wDLP02cZbAzSLUXUgAA">
<XPD:ATTR name="Name" type="string">CadastrandoLivro</XPD:ATTR>
<XPD:REF name="ContainerState">7eRmBKRA/kKdGrTr220O9gAA</XPD:REF>
<XPD:REFCOLL name="Views">
<XPD:REF name="Views">Jl9dVWzz3UiJcGYIhu++pQAA</XPD:REF>
<XPD:REF name="Views">ffK3FRZBnUKDy3pOCocFNQAA</XPD:REF>
</XPD:REFCOLL>
<XPD:REFCOLL name="Outgoings">
<XPD:REF name="Outgoings">X5TeXBSwLEmIbiay8jrHRQAA</XPD:REF>
<XPD:REF name="Outgoings">svNz4SdI/E22ALFDd2BhygAA</XPD:REF>
<XPD:REF name="Outgoings">htVHPzJBgUuSQ+Trye4d9gAA</XPD:REF>
<XPD:REF name="Outgoings">sEavbW4g4kWN0JWvoKTZHAAA</XPD:REF>
</XPD:REFCOLL>
<XPD:REFCOLL name="Incomings">
<XPD:REF name="Incomings">iAkGXpCmc0GsVGezMYwNqgAA</XPD:REF>
<XPD:REF name="Incomings">svNz4SdI/E22ALFDd2BhygAA</XPD:REF>
<XPD:REF name="Incomings">htVHPzJBgUuSQ+Trye4d9gAA</XPD:REF>
<XPD:REF name="Incomings">be4kxrai4kWIE0rJGvroXgAA</XPD:REF>
</XPD:REFCOLL>
</XPD:OBJ>
</XPD:OBJCOLL>
</XPD:OBJ>
<XPD:OBJCOLL name="OwnedDiagrams">
<XPD:OBJ name="OwnedDiagrams" type="UMLStatechartDiagram" guid="4lliXJytgU635zFvR0+KYAAA">
<XPD:ATTR name="Name" type="string">scucCadastrarLivro</XPD:ATTR>
<XPD:REF name="DiagramOwner">rMmDBC6Z6UKm6NVK19RHHQAA</XPD:REF>
<XPD:OBJ name="DiagramView" type="UMLStatechartDiagramView" guid="AltEhEonT02wVW+knWc1kgAA">
<XPD:REF name="Diagram">4lliXJytgU635zFvR0+KYAAA</XPD:REF>
<XPD:OBJCOLL name="OwnedViews">
<XPD:OBJ name="OwnedViews" type="UMLPseudostateView" guid="APUBeiaQGEKJtwuZDoKUoAAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">332</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">92</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">20</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">20</XPD:ATTR>
<XPD:REF name="Model">imh4+iaz3EG79uZkluvrPAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews" type="UMLStateView" guid="JHzIhFdvpEWOIXNDuaaEbQAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">308</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">176</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">289</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">40</XPD:ATTR>
<XPD:REF name="Model">wy02TSbKGkeN/miS5VoUNwAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="Tq6430uRd0GOGNsbo+8gywAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="2y5CS3K2YU6Qlq0RC7UeswAA">
<XPD:ATTR name="Text" type="string">BuscandoLivro</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="J++uwfYOM0O4zOCNHZ6yAwAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="rVqWwcSSEUqYdKMHFi6oswAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="InternalTransitionCompartment" type="UMLInternalTransitionCompartmentView" guid="vECM26OuB0CVkDZ0R8S05QAA">
<XPD:REF name="Model">wy02TSbKGkeN/miS5VoUNwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews" type="UMLTransitionView" guid="Vtm9kIG9fU+2+Y5g6WVmAwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">342,111;342,176</XPD:ATTR>
<XPD:REF name="Model">Oq3x5PyqVUuQPFTVWiSvtQAA</XPD:REF>
<XPD:REF name="Head">JHzIhFdvpEWOIXNDuaaEbQAA</XPD:REF>
<XPD:REF name="Tail">APUBeiaQGEKJtwuZDoKUoAAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="p4q1yGBhkEyBiO4r8xjzbAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">Oq3x5PyqVUuQPFTVWiSvtQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="dpZMKFo+pE2kTkvzRlRzyAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">Oq3x5PyqVUuQPFTVWiSvtQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="zeVxsnNWDUCPzODHKFtzDQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">Oq3x5PyqVUuQPFTVWiSvtQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews" type="UMLStateView" guid="Jl9dVWzz3UiJcGYIhu++pQAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">380</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">392</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">313</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">40</XPD:ATTR>
<XPD:REF name="Model">jW1z7wDLP02cZbAzSLUXUgAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="AZYoJl4RgUeYN4SwYk0a+AAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="L0+xwgqoakSFUrpeYTzGQAAA">
<XPD:ATTR name="Text" type="string">CadastrandoLivro</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="5TW5BM+eDUS7mHBy8k18rgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="ZFIf7KwUNEKt78mtZHzH8AAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="InternalTransitionCompartment" type="UMLInternalTransitionCompartmentView" guid="ffK3FRZBnUKDy3pOCocFNQAA">
<XPD:REF name="Model">jW1z7wDLP02cZbAzSLUXUgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews" type="UMLTransitionView" guid="I9uHXj49Q0uTKS3lAC+M+gAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">500,215;500,392</XPD:ATTR>
<XPD:REF name="Model">iAkGXpCmc0GsVGezMYwNqgAA</XPD:REF>
<XPD:REF name="Head">Jl9dVWzz3UiJcGYIhu++pQAA</XPD:REF>
<XPD:REF name="Tail">JHzIhFdvpEWOIXNDuaaEbQAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="f+U59NnRg0WLTwLV12dWrgAA">
<XPD:ATTR name="Alpha" type="real">2,29743800339328</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">12,0415945787923</XPD:ATTR>
<XPD:ATTR name="Text" type="string">RM_INCLUIR_LIVRO / Effect_IncluirLivro</XPD:ATTR>
<XPD:REF name="Model">iAkGXpCmc0GsVGezMYwNqgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="lAj6yN1/n0a0jJv4h2tYxgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">iAkGXpCmc0GsVGezMYwNqgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="c+5W58VhV068wY2p2sORzwAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">iAkGXpCmc0GsVGezMYwNqgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews" type="UMLTransitionView" guid="akwyrlArs0ChLXdlPIxAjwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">416,392;416,215</XPD:ATTR>
<XPD:REF name="Model">X5TeXBSwLEmIbiay8jrHRQAA</XPD:REF>
<XPD:REF name="Head">JHzIhFdvpEWOIXNDuaaEbQAA</XPD:REF>
<XPD:REF name="Tail">Jl9dVWzz3UiJcGYIhu++pQAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="pvl00aMYoEGdQibSeH34vAAA">
<XPD:ATTR name="Alpha" type="real">-2,39232310239495</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">58,7281874401041</XPD:ATTR>
<XPD:ATTR name="Text" type="string">RM_CANCELAR_CADASTRO / Effect_CancelarCadastro</XPD:ATTR>
<XPD:REF name="Model">X5TeXBSwLEmIbiay8jrHRQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="twQBGBfI6EKZ5DBLKx3E1wAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">X5TeXBSwLEmIbiay8jrHRQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="GzwenlkcHUmNfKDWMaBtYQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">X5TeXBSwLEmIbiay8jrHRQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews" type="UMLTransitionView" guid="vOPMNZPgyEW66w+91VIA2wAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">636,392;636,372;746,372;746,411;692,411</XPD:ATTR>
<XPD:REF name="Model">svNz4SdI/E22ALFDd2BhygAA</XPD:REF>
<XPD:REF name="Head">Jl9dVWzz3UiJcGYIhu++pQAA</XPD:REF>
<XPD:REF name="Tail">Jl9dVWzz3UiJcGYIhu++pQAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="jQMrkWVrAU6K1Zf/CC63YQAA">
<XPD:ATTR name="Alpha" type="real">2,79282099213583</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">23,4093998214393</XPD:ATTR>
<XPD:ATTR name="Text" type="string">RM_INCLUIR_EXEMPLAR / Effect_IncluirExemplar</XPD:ATTR>
<XPD:REF name="Model">svNz4SdI/E22ALFDd2BhygAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="x8NnnJ2GSEi8ZnHIdpVvygAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">svNz4SdI/E22ALFDd2BhygAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="auf0mPnRdUOds1b82uKgrQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">svNz4SdI/E22ALFDd2BhygAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews" type="UMLTransitionView" guid="Wlv9/5AD2EeQ3RfenOS5YgAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">548,431;548,472;660,472;660,431</XPD:ATTR>
<XPD:REF name="Model">htVHPzJBgUuSQ+Trye4d9gAA</XPD:REF>
<XPD:REF name="Head">Jl9dVWzz3UiJcGYIhu++pQAA</XPD:REF>
<XPD:REF name="Tail">Jl9dVWzz3UiJcGYIhu++pQAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="hKa5Y2krhUi8kvkxJNGRSgAA">
<XPD:ATTR name="Alpha" type="real">-1,9138189801415</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">14,8660687473185</XPD:ATTR>
<XPD:ATTR name="Text" type="string">RM_EXCLUIR_EXEMPLAR / Effect_ExcluirExemplar</XPD:ATTR>
<XPD:REF name="Model">htVHPzJBgUuSQ+Trye4d9gAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="+sPZMUZPHUafio80TOyt7gAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">htVHPzJBgUuSQ+Trye4d9gAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="4+fLZjZRUUGYYYMPPYU8XwAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">htVHPzJBgUuSQ+Trye4d9gAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews" type="UMLTransitionView" guid="1Uy6r6GX20atngnrQB0KbQAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">596,192;612,192;612,392</XPD:ATTR>
<XPD:REF name="Model">be4kxrai4kWIE0rJGvroXgAA</XPD:REF>
<XPD:REF name="Head">Jl9dVWzz3UiJcGYIhu++pQAA</XPD:REF>
<XPD:REF name="Tail">JHzIhFdvpEWOIXNDuaaEbQAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="fZUsDcQUJkGhP3oc9hIWjAAA">
<XPD:ATTR name="Alpha" type="real">0,150371526122032</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">66,7532770731145</XPD:ATTR>
<XPD:ATTR name="Text" type="string">RM_EDITAR_LIVRO / Effect_EditarLivro</XPD:ATTR>
<XPD:REF name="Model">be4kxrai4kWIE0rJGvroXgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="bk8gw7ZX6EOiHSDBvu3yFwAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">be4kxrai4kWIE0rJGvroXgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="l1UvOCDaJUOiZuoTSECPmAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">be4kxrai4kWIE0rJGvroXgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews" type="UMLTransitionView" guid="O93shWwpLEynF+s1rFqwowAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">380,411;324,411;324,215</XPD:ATTR>
<XPD:REF name="Model">sEavbW4g4kWN0JWvoKTZHAAA</XPD:REF>
<XPD:REF name="Head">JHzIhFdvpEWOIXNDuaaEbQAA</XPD:REF>
<XPD:REF name="Tail">Jl9dVWzz3UiJcGYIhu++pQAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="M91xJb53skGtOBcUVfI3twAA">
<XPD:ATTR name="Alpha" type="real">-5,16470495265381</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">157,876534038469</XPD:ATTR>
<XPD:ATTR name="Text" type="string">RM_CONCLUIR_CADASTRO / Effect_ConcluirCadastro</XPD:ATTR>
<XPD:REF name="Model">sEavbW4g4kWN0JWvoKTZHAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="dGZchkUbfUOJRcM5wUJs5gAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">sEavbW4g4kWN0JWvoKTZHAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="zJUEosaYR06/ZQ8eAaqvBQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">sEavbW4g4kWN0JWvoKTZHAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews" type="UMLTransitionView" guid="VzKBDqGWTE6EMpAmZtCXdQAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">396,176;396,152;532,152;532,176</XPD:ATTR>
<XPD:REF name="Model">ucGpxz4BokuE6uRuj1Mg5gAA</XPD:REF>
<XPD:REF name="Head">JHzIhFdvpEWOIXNDuaaEbQAA</XPD:REF>
<XPD:REF name="Tail">JHzIhFdvpEWOIXNDuaaEbQAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="8ZYJg6NUyEWio+ErMrFESAAA">
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:ATTR name="Text" type="string">RM_BUSCAR_LIVRO / Effect_BuscarLivro</XPD:ATTR>
<XPD:REF name="Model">ucGpxz4BokuE6uRuj1Mg5gAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="evTmYOVm60iANiOTsFY/nAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">ucGpxz4BokuE6uRuj1Mg5gAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="pyLfsUH92E2Ydae0SKAGegAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">ucGpxz4BokuE6uRuj1Mg5gAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews" type="UMLTransitionView" guid="ITOLoBexDEWwynKccGj74AAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">324,176;324,152;168,152;168,195;308,195</XPD:ATTR>
<XPD:REF name="Model">/u9PYRaLc0CmjB7Yh1GIywAA</XPD:REF>
<XPD:REF name="Head">JHzIhFdvpEWOIXNDuaaEbQAA</XPD:REF>
<XPD:REF name="Tail">JHzIhFdvpEWOIXNDuaaEbQAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="cU7ZwgI8CUuvb4txyP6l+AAA">
<XPD:ATTR name="Alpha" type="real">1,88708216840153</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">57,8705451849211</XPD:ATTR>
<XPD:ATTR name="Text" type="string">RM_REMOVER_LIVRO / Effect_RemoverLivro</XPD:ATTR>
<XPD:REF name="Model">/u9PYRaLc0CmjB7Yh1GIywAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="5l8CQrGU6Eu5xkaMGHRh7AAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1,5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">/u9PYRaLc0CmjB7Yh1GIywAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="RkwgJlUEg0is4ZPQAT3q6QAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1,5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">/u9PYRaLc0CmjB7Yh1GIywAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
</XPD:OBJCOLL>
</XPD:OBJ>
</XPD:OBJ>
</XPD:OBJCOLL>
<XPD:OBJCOLL name="Transitions">
<XPD:OBJ name="Transitions" type="UMLTransition" guid="Oq3x5PyqVUuQPFTVWiSvtQAA">
<XPD:REF name="StateMachine">rMmDBC6Z6UKm6NVK19RHHQAA</XPD:REF>
<XPD:REF name="Source">imh4+iaz3EG79uZkluvrPAAA</XPD:REF>
<XPD:REF name="Target">wy02TSbKGkeN/miS5VoUNwAA</XPD:REF>
<XPD:REFCOLL name="Views">
<XPD:REF name="Views">Vtm9kIG9fU+2+Y5g6WVmAwAA</XPD:REF>
<XPD:REF name="Views">p4q1yGBhkEyBiO4r8xjzbAAA</XPD:REF>
<XPD:REF name="Views">dpZMKFo+pE2kTkvzRlRzyAAA</XPD:REF>
<XPD:REF name="Views">zeVxsnNWDUCPzODHKFtzDQAA</XPD:REF>
</XPD:REFCOLL>
</XPD:OBJ>
<XPD:OBJ name="Transitions" type="UMLTransition" guid="iAkGXpCmc0GsVGezMYwNqgAA">
<XPD:REF name="StateMachine">rMmDBC6Z6UKm6NVK19RHHQAA</XPD:REF>
<XPD:REF name="Source">wy02TSbKGkeN/miS5VoUNwAA</XPD:REF>
<XPD:REF name="Target">jW1z7wDLP02cZbAzSLUXUgAA</XPD:REF>
<XPD:REFCOLL name="Views">
<XPD:REF name="Views">I9uHXj49Q0uTKS3lAC+M+gAA</XPD:REF>
<XPD:REF name="Views">f+U59NnRg0WLTwLV12dWrgAA</XPD:REF>
<XPD:REF name="Views">lAj6yN1/n0a0jJv4h2tYxgAA</XPD:REF>
<XPD:REF name="Views">c+5W58VhV068wY2p2sORzwAA</XPD:REF>
</XPD:REFCOLL>
<XPD:OBJCOLL name="Effects">
<XPD:OBJ name="Effects" type="UMLUninterpretedAction" guid="Mr1v4Jn5AUObyik6sw4qTAAA">
<XPD:ATTR name="Name" type="string">Effect_IncluirLivro</XPD:ATTR>
<XPD:REF name="Transition">iAkGXpCmc0GsVGezMYwNqgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJCOLL>
<XPD:OBJCOLL name="Triggers">
<XPD:OBJ name="Triggers" type="UMLSignalEvent" guid="aNJJ0qErSU6d25Orv0b3rAAA">
<XPD:ATTR name="Name" type="string">RM_INCLUIR_LIVRO</XPD:ATTR>
<XPD:REF name="Transition">iAkGXpCmc0GsVGezMYwNqgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJCOLL>
</XPD:OBJ>
<XPD:OBJ name="Transitions" type="UMLTransition" guid="X5TeXBSwLEmIbiay8jrHRQAA">
<XPD:REF name="StateMachine">rMmDBC6Z6UKm6NVK19RHHQAA</XPD:REF>
<XPD:REF name="Source">jW1z7wDLP02cZbAzSLUXUgAA</XPD:REF>
<XPD:REF name="Target">wy02TSbKGkeN/miS5VoUNwAA</XPD:REF>
<XPD:REFCOLL name="Views">
<XPD:REF name="Views">akwyrlArs0ChLXdlPIxAjwAA</XPD:REF>
<XPD:REF name="Views">pvl00aMYoEGdQibSeH34vAAA</XPD:REF>
<XPD:REF name="Views">twQBGBfI6EKZ5DBLKx3E1wAA</XPD:REF>
<XPD:REF name="Views">GzwenlkcHUmNfKDWMaBtYQAA</XPD:REF>
</XPD:REFCOLL>
<XPD:OBJCOLL name="Effects">
<XPD:OBJ name="Effects" type="UMLUninterpretedAction" guid="c55l2N9RE0CJ1Eb2p6IPswAA">
<XPD:ATTR name="Name" type="string">Effect_CancelarCadastro</XPD:ATTR>
<XPD:REF name="Transition">X5TeXBSwLEmIbiay8jrHRQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJCOLL>
<XPD:OBJCOLL name="Triggers">
<XPD:OBJ name="Triggers" type="UMLSignalEvent" guid="mzMBBmxrTEedA5TzEJEiOAAA">
<XPD:ATTR name="Name" type="string">RM_CANCELAR_CADASTRO</XPD:ATTR>
<XPD:REF name="Transition">X5TeXBSwLEmIbiay8jrHRQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJCOLL>
</XPD:OBJ>
<XPD:OBJ name="Transitions" type="UMLTransition" guid="svNz4SdI/E22ALFDd2BhygAA">
<XPD:REF name="StateMachine">rMmDBC6Z6UKm6NVK19RHHQAA</XPD:REF>
<XPD:REF name="Source">jW1z7wDLP02cZbAzSLUXUgAA</XPD:REF>
<XPD:REF name="Target">jW1z7wDLP02cZbAzSLUXUgAA</XPD:REF>
<XPD:REFCOLL name="Views">
<XPD:REF name="Views">vOPMNZPgyEW66w+91VIA2wAA</XPD:REF>
<XPD:REF name="Views">jQMrkWVrAU6K1Zf/CC63YQAA</XPD:REF>
<XPD:REF name="Views">x8NnnJ2GSEi8ZnHIdpVvygAA</XPD:REF>
<XPD:REF name="Views">auf0mPnRdUOds1b82uKgrQAA</XPD:REF>
</XPD:REFCOLL>
<XPD:OBJCOLL name="Effects">
<XPD:OBJ name="Effects" type="UMLUninterpretedAction" guid="d28oOkTkeEium7iA/TDbdgAA">
<XPD:ATTR name="Name" type="string">Effect_IncluirExemplar</XPD:ATTR>
<XPD:REF name="Transition">svNz4SdI/E22ALFDd2BhygAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJCOLL>
<XPD:OBJCOLL name="Triggers">
<XPD:OBJ name="Triggers" type="UMLSignalEvent" guid="QNaaAudSekivZGfB3XEz1gAA">
<XPD:ATTR name="Name" type="string">RM_INCLUIR_EXEMPLAR</XPD:ATTR>
<XPD:REF name="Transition">svNz4SdI/E22ALFDd2BhygAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJCOLL>
</XPD:OBJ>
<XPD:OBJ name="Transitions" type="UMLTransition" guid="htVHPzJBgUuSQ+Trye4d9gAA">
<XPD:REF name="StateMachine">rMmDBC6Z6UKm6NVK19RHHQAA</XPD:REF>
<XPD:REF name="Source">jW1z7wDLP02cZbAzSLUXUgAA</XPD:REF>
<XPD:REF name="Target">jW1z7wDLP02cZbAzSLUXUgAA</XPD:REF>
<XPD:REFCOLL name="Views">
<XPD:REF name="Views">Wlv9/5AD2EeQ3RfenOS5YgAA</XPD:REF>
<XPD:REF name="Views">hKa5Y2krhUi8kvkxJNGRSgAA</XPD:REF>
<XPD:REF name="Views">+sPZMUZPHUafio80TOyt7gAA</XPD:REF>
<XPD:REF name="Views">4+fLZjZRUUGYYYMPPYU8XwAA</XPD:REF>
</XPD:REFCOLL>
<XPD:OBJCOLL name="Effects">
<XPD:OBJ name="Effects" type="UMLUninterpretedAction" guid="Pjlv4hn+ZkegzutVMHMkBAAA">
<XPD:ATTR name="Name" type="string">Effect_ExcluirExemplar</XPD:ATTR>
<XPD:REF name="Transition">htVHPzJBgUuSQ+Trye4d9gAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJCOLL>
<XPD:OBJCOLL name="Triggers">
<XPD:OBJ name="Triggers" type="UMLSignalEvent" guid="2Q0PjO7WDUyxqD/f7WVxcQAA">
<XPD:ATTR name="Name" type="string">RM_EXCLUIR_EXEMPLAR</XPD:ATTR>
<XPD:REF name="Transition">htVHPzJBgUuSQ+Trye4d9gAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJCOLL>
</XPD:OBJ>
<XPD:OBJ name="Transitions" type="UMLTransition" guid="be4kxrai4kWIE0rJGvroXgAA">
<XPD:REF name="StateMachine">rMmDBC6Z6UKm6NVK19RHHQAA</XPD:REF>
<XPD:REF name="Source">wy02TSbKGkeN/miS5VoUNwAA</XPD:REF>
<XPD:REF name="Target">jW1z7wDLP02cZbAzSLUXUgAA</XPD:REF>
<XPD:REFCOLL name="Views">
<XPD:REF name="Views">1Uy6r6GX20atngnrQB0KbQAA</XPD:REF>
<XPD:REF name="Views">fZUsDcQUJkGhP3oc9hIWjAAA</XPD:REF>
<XPD:REF name="Views">bk8gw7ZX6EOiHSDBvu3yFwAA</XPD:REF>
<XPD:REF name="Views">l1UvOCDaJUOiZuoTSECPmAAA</XPD:REF>
</XPD:REFCOLL>
<XPD:OBJCOLL name="Effects">
<XPD:OBJ name="Effects" type="UMLUninterpretedAction" guid="FPCBT01R30yJBj/vVLsjLwAA">
<XPD:ATTR name="Name" type="string">Effect_EditarLivro</XPD:ATTR>
<XPD:REF name="Transition">be4kxrai4kWIE0rJGvroXgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJCOLL>
<XPD:OBJCOLL name="Triggers">
<XPD:OBJ name="Triggers" type="UMLSignalEvent" guid="DoFXjAKea0GAWgJuYYgDGAAA">
<XPD:ATTR name="Name" type="string">RM_EDITAR_LIVRO</XPD:ATTR>
<XPD:REF name="Transition">be4kxrai4kWIE0rJGvroXgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJCOLL>
</XPD:OBJ>
<XPD:OBJ name="Transitions" type="UMLTransition" guid="sEavbW4g4kWN0JWvoKTZHAAA">
<XPD:REF name="StateMachine">rMmDBC6Z6UKm6NVK19RHHQAA</XPD:REF>
<XPD:REF name="Source">jW1z7wDLP02cZbAzSLUXUgAA</XPD:REF>
<XPD:REF name="Target">wy02TSbKGkeN/miS5VoUNwAA</XPD:REF>
<XPD:REFCOLL name="Views">
<XPD:REF name="Views">O93shWwpLEynF+s1rFqwowAA</XPD:REF>
<XPD:REF name="Views">M91xJb53skGtOBcUVfI3twAA</XPD:REF>
<XPD:REF name="Views">dGZchkUbfUOJRcM5wUJs5gAA</XPD:REF>
<XPD:REF name="Views">zJUEosaYR06/ZQ8eAaqvBQAA</XPD:REF>
</XPD:REFCOLL>
<XPD:OBJCOLL name="Effects">
<XPD:OBJ name="Effects" type="UMLUninterpretedAction" guid="zxdnU3ZdZUC9BuZlNd1dEAAA">
<XPD:ATTR name="Name" type="string">Effect_ConcluirCadastro</XPD:ATTR>
<XPD:REF name="Transition">sEavbW4g4kWN0JWvoKTZHAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJCOLL>
<XPD:OBJCOLL name="Triggers">
<XPD:OBJ name="Triggers" type="UMLSignalEvent" guid="pGlHILlYgkqbG2xsG4VI7wAA">
<XPD:ATTR name="Name" type="string">RM_CONCLUIR_CADASTRO</XPD:ATTR>
<XPD:REF name="Transition">sEavbW4g4kWN0JWvoKTZHAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJCOLL>
</XPD:OBJ>
<XPD:OBJ name="Transitions" type="UMLTransition" guid="ucGpxz4BokuE6uRuj1Mg5gAA">
<XPD:REF name="StateMachine">rMmDBC6Z6UKm6NVK19RHHQAA</XPD:REF>
<XPD:REF name="Source">wy02TSbKGkeN/miS5VoUNwAA</XPD:REF>
<XPD:REF name="Target">wy02TSbKGkeN/miS5VoUNwAA</XPD:REF>
<XPD:REFCOLL name="Views">
<XPD:REF name="Views">VzKBDqGWTE6EMpAmZtCXdQAA</XPD:REF>
<XPD:REF name="Views">8ZYJg6NUyEWio+ErMrFESAAA</XPD:REF>
<XPD:REF name="Views">evTmYOVm60iANiOTsFY/nAAA</XPD:REF>
<XPD:REF name="Views">pyLfsUH92E2Ydae0SKAGegAA</XPD:REF>
</XPD:REFCOLL>
<XPD:OBJCOLL name="Effects">
<XPD:OBJ name="Effects" type="UMLUninterpretedAction" guid="GAT7qliO20iJQKRWTAkkrgAA">
<XPD:ATTR name="Name" type="string">Effect_BuscarLivro</XPD:ATTR>
<XPD:REF name="Transition">ucGpxz4BokuE6uRuj1Mg5gAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJCOLL>
<XPD:OBJCOLL name="Triggers">
<XPD:OBJ name="Triggers" type="UMLSignalEvent" guid="v+XeQvQb1EmEv4JtwD/2PwAA">
<XPD:ATTR name="Name" type="string">RM_BUSCAR_LIVRO</XPD:ATTR>
<XPD:REF name="Transition">ucGpxz4BokuE6uRuj1Mg5gAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJCOLL>
</XPD:OBJ>
<XPD:OBJ name="Transitions" type="UMLTransition" guid="/u9PYRaLc0CmjB7Yh1GIywAA">
<XPD:REF name="StateMachine">rMmDBC6Z6UKm6NVK19RHHQAA</XPD:REF>
<XPD:REF name="Source">wy02TSbKGkeN/miS5VoUNwAA</XPD:REF>
<XPD:REF name="Target">wy02TSbKGkeN/miS5VoUNwAA</XPD:REF>
<XPD:REFCOLL name="Views">
<XPD:REF name="Views">ITOLoBexDEWwynKccGj74AAA</XPD:REF>
<XPD:REF name="Views">cU7ZwgI8CUuvb4txyP6l+AAA</XPD:REF>
<XPD:REF name="Views">5l8CQrGU6Eu5xkaMGHRh7AAA</XPD:REF>
<XPD:REF name="Views">RkwgJlUEg0is4ZPQAT3q6QAA</XPD:REF>
</XPD:REFCOLL>
<XPD:OBJCOLL name="Effects">
<XPD:OBJ name="Effects" type="UMLUninterpretedAction" guid="s9QokxQY90mOgny936rfawAA">
<XPD:ATTR name="Name" type="string">Effect_RemoverLivro</XPD:ATTR>
<XPD:REF name="Transition">/u9PYRaLc0CmjB7Yh1GIywAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJCOLL>
<XPD:OBJCOLL name="Triggers">
<XPD:OBJ name="Triggers" type="UMLSignalEvent" guid="stBpWcUmfE+75AmqSy5hkwAA">
<XPD:ATTR name="Name" type="string">RM_REMOVER_LIVRO</XPD:ATTR>
<XPD:REF name="Transition">/u9PYRaLc0CmjB7Yh1GIywAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJCOLL>
</XPD:OBJ>
</XPD:OBJCOLL>
</XPD:OBJ>
</XPD:OBJCOLL>
<XPD:REFCOLL name="Generalizations">
<XPD:REF name="Generalizations">sD841yqIkEmHWF57QQHDBgAA</XPD:REF>
</XPD:REFCOLL>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements" type="UMLGeneralization" guid="sD841yqIkEmHWF57QQHDBgAA">
<XPD:REF name="Namespace">KJ+F7nxhq0eyH3lYhIBVPwAA</XPD:REF>
<XPD:REF name="Child">yuXcy+rIfEqg3oEjYTW4cgAA</XPD:REF>
<XPD:REF name="Parent">CW1L1EW3kkSWfD8DU8ciWwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJCOLL>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements" type="UMLModel" guid="ErDWf/JGWUWibJnxTpAqIQAA">
......@@ -17524,7 +18206,7 @@
<XPD:ATTR name="Left" type="integer">125</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">168</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">269</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">69</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">82</XPD:ATTR>
<XPD:REF name="Model">KWN92RkXR067xg8QImsRmgAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="E1D++iMhbUayDVGcpsev+AAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="Y4/X1yaK30qWqcVpbCtGjwAA">
......@@ -17618,7 +18300,7 @@
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">248,236;248,371</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">248,249;248,371</XPD:ATTR>
<XPD:REF name="Model">iKOPI9bNu0GEacTJfP0haQAA</XPD:REF>
<XPD:REF name="Head">p5nfSOjSmkmBdUlqA9VboAAA</XPD:REF>
<XPD:REF name="Tail">LBkRepWpIUGWzqraVkm4rQAA</XPD:REF>
......@@ -18275,6 +18957,31 @@
</XPD:OBJ>
</XPD:OBJCOLL>
</XPD:OBJ>
<XPD:OBJ name="Attributes" type="UMLAttribute" guid="TdmUYVBBW027xdgPxygOtQAA">
<XPD:ATTR name="Name" type="string">DataDevolucao</XPD:ATTR>
<XPD:ATTR name="StereotypeProfile" type="string">DBMappings</XPD:ATTR>
<XPD:ATTR name="StereotypeName" type="string">Persistent</XPD:ATTR>
<XPD:ATTR name="Visibility" type="UMLVisibilityKind">vkPrivate</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">acDateTime</XPD:ATTR>
<XPD:REF name="Type_">iWVKnkGUmky/30SdNBSlpAAA</XPD:REF>
<XPD:REF name="Owner">KWN92RkXR067xg8QImsRmgAA</XPD:REF>
<XPD:OBJCOLL name="TaggedValues">
<XPD:OBJ name="TaggedValues" type="TaggedValue" guid="cmMiyl2KnE2y32Y+1UD7CgAA">
<XPD:ATTR name="ProfileName" type="string">DBMappings</XPD:ATTR>
<XPD:ATTR name="TagDefinitionSetName" type="string">DBAttributeMap</XPD:ATTR>
<XPD:ATTR name="Name" type="string">Name</XPD:ATTR>
<XPD:ATTR name="DataValue" type="string">DATA_DEVOLUCAO</XPD:ATTR>
<XPD:REF name="TaggedModel">TdmUYVBBW027xdgPxygOtQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TaggedValues" type="TaggedValue" guid="STCy5HMWDEifszXhU4hNlAAA">
<XPD:ATTR name="ProfileName" type="string">DBMappings</XPD:ATTR>
<XPD:ATTR name="TagDefinitionSetName" type="string">DBAttributeMap</XPD:ATTR>
<XPD:ATTR name="Name" type="string">Type</XPD:ATTR>
<XPD:ATTR name="DataValue" type="string">DATETIME</XPD:ATTR>
<XPD:REF name="TaggedModel">TdmUYVBBW027xdgPxygOtQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJCOLL>
</XPD:OBJ>
</XPD:OBJCOLL>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements" type="UMLGeneralization" guid="kLMemPHqxU2aPpI19BLqIgAA">
......
......@@ -99,7 +99,9 @@ uses
nguSituacao in 'ngu\nguSituacao.pas',
nguUsuario in 'ngu\nguUsuario.pas',
ucuEfetuarEmprestimo in 'ucu\ucuEfetuarEmprestimo.pas',
utuEmprestimoOQL in 'utu\utuEmprestimoOQL.pas';
utuEmprestimoOQL in 'utu\utuEmprestimoOQL.pas',
ucuConsultarEmprestimo in 'ucu\ucuConsultarEmprestimo.pas',
ucuCadastrarLivro in 'ucu\ucuCadastrarLivro.pas';
var
lErros : TStringList;
......
......@@ -343,6 +343,12 @@ begin
prop.Mandatory := True;
prop.DBType := 'DATETIME';
lClassToDBMapTicket.NewDbColumnMapRegisterTicket(prop).ColumnName := 'DATA_DEVOLUCAO_PREVISTA';
prop := lClassMapTicket.NewAttributeTicket('DataDevolucao', 'acDateTime', pvPersistent, False);
prop.FixSize := 0;
prop.VarSize := 0;
prop.Mandatory := False;
prop.DBType := 'DATETIME';
lClassToDBMapTicket.NewDbColumnMapRegisterTicket(prop).ColumnName := 'DATA_DEVOLUCAO';
lClassMapTicket := piMetaModel.NewClassRegisterTicket('-4','ngEntity','acPersistentObject', acOIDInt);
lClassMapTicket.AuditDescription := '';
......@@ -1076,7 +1082,7 @@ begin
lRelationTicket := piMetaModel.NewRelationRegisterTicket('ngEntity', 'UseCases', 0, 2147483647, pvNone, 'Entity has Usecases', 'ngUseCaseTicket', 'Entity', 1, 1, pvNone, True, False);
if lRelationTicket <> nil then (piMetaModel.DefaultMetaModelPersistenceMap as acMetaModelPersistenceMapSql).NewOneToManyDbRelationMapRegisterTicket(lRelationTicket, 'IESBIDENTI');
lRelationTicket := piMetaModel.NewRelationRegisterTicket('ngExemplar', 'Emprestimos', 0, 2147483647, pvNone, '', 'ngEmprestimo', 'Exemplar', 1, 1, pvNone, True, False);
lRelationTicket := piMetaModel.NewRelationRegisterTicket('ngExemplar', 'Emprestimos', 0, 2147483647, pvComposite, '', 'ngEmprestimo', 'Exemplar', 1, 1, pvNone, True, False);
if lRelationTicket <> nil then (piMetaModel.DefaultMetaModelPersistenceMap as acMetaModelPersistenceMapSql).NewOneToManyDbRelationMapRegisterTicket(lRelationTicket, 'ID_EXEMPLAR');
lRelationTicket := piMetaModel.NewRelationRegisterTicket('ngGUITicket', 'SystemGUIs', 0, 2147483647, pvNone, 'System GUIs have GUI', 'ngSystemGUITickets', 'GUI', 1, 1, pvNone, True, False);
......@@ -1085,7 +1091,7 @@ begin
lRelationTicket := piMetaModel.NewRelationRegisterTicket('ngIcon', 'UseCases', 0, 2147483647, pvNone, 'Usecases have an icon', 'ngUseCaseTicket', 'Icon', 1, 1, pvNone, True, False);
if lRelationTicket <> nil then (piMetaModel.DefaultMetaModelPersistenceMap as acMetaModelPersistenceMapSql).NewOneToManyDbRelationMapRegisterTicket(lRelationTicket, 'IESBIDCUIC');
lRelationTicket := piMetaModel.NewRelationRegisterTicket('ngLivro', 'Exemplares', 0, 2147483647, pvNone, '', 'ngExemplar', 'Livro', 1, 1, pvNone, True, False);
lRelationTicket := piMetaModel.NewRelationRegisterTicket('ngLivro', 'Exemplares', 0, 2147483647, pvComposite, '', 'ngExemplar', 'Livro', 1, 1, pvNone, True, False);
if lRelationTicket <> nil then (piMetaModel.DefaultMetaModelPersistenceMap as acMetaModelPersistenceMapSql).NewOneToManyDbRelationMapRegisterTicket(lRelationTicket, 'ID_LIVRO');
lRelationTicket := piMetaModel.NewRelationRegisterTicket('ngOperation', 'UseCaseOperations', 0, 2147483647, pvNone, 'UseCase operations has operation', 'ngUseCaseTicketOperation', 'Operation', 1, 1, pvNone, True, False);
......@@ -1221,6 +1227,26 @@ begin
lUseCaseTicket.InheritsFrom := 'ucUseCase';
end;
procedure NewUseCaseTicket_ucConsultarEmprestimo_3222(piMetaModel: acMetaModel);
var
lUseCaseTicket: acUseCaseTicket;
begin
//Criao do UseCaseTicket ucConsultarEmprestimo (3222)
lUseCaseTicket := piMetaModel.NewUseCaseTicket('3222', nil, True);
lUseCaseTicket.Name := 'ucConsultarEmprestimo';
lUseCaseTicket.InheritsFrom := 'ucUseCase';
end;
procedure NewUseCaseTicket_ucCadastrarLivro_3226(piMetaModel: acMetaModel);
var
lUseCaseTicket: acUseCaseTicket;
begin
//Criao do UseCaseTicket ucCadastrarLivro (3226)
lUseCaseTicket := piMetaModel.NewUseCaseTicket('3226', nil, True);
lUseCaseTicket.Name := 'ucCadastrarLivro';
lUseCaseTicket.InheritsFrom := 'ucUseCase';
end;
function GetXSDIn_3220_smucEfetuarEmprestimo_PesquisandoUsuario_RM_PESQUISAR_USUARIO: String;
begin
Result := '<?xml version="1.0"?>' + #13#10 +
......@@ -1781,6 +1807,391 @@ begin
'';
end;
function GetXSDIn_3222_smucConsultarEmprestimo_Consultando_RM_CONSULTAR: String;
begin
Result := '<?xml version="1.0"?>' + #13#10 +
'<!--Created with Liquid XML Studio 6.1.18.0 - FREE Community Edition (http://www.liquid-technologies.com)-->' + #13#10 +
'<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">' + #13#10 +
' <xs:element name="SYSMSG">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:sequence>' + #13#10 +
' <xs:element name="Usuario">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:attribute name="OID" type="xs:string" use="optional"/>' + #13#10 +
' <xs:attribute name="Nome" type="xs:string" use="optional"/>' + #13#10 +
' <xs:attribute name="CPF" type="xs:string" use="optional"/>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
' </xs:sequence>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
'</xs:schema>' + #13#10 +
'';
end;
function GetXSDOut_3222_smucConsultarEmprestimo_Consultando_RM_CONSULTAR: String;
begin
Result := '<?xml version="1.0"?>' + #13#10 +
'<!--Created with Liquid XML Studio 6.1.18.0 - FREE Community Edition (http://www.liquid-technologies.com)-->' + #13#10 +
'<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">' + #13#10 +
' <xs:element name="SYSMSG">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:sequence>' + #13#10 +
' <xs:element name="Emprestimos">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:sequence minOccurs="0" maxOccurs="unbounded">' + #13#10 +
' <xs:element name="Emprestimo">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:sequence>' + #13#10 +
' <xs:element name="Usuario">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:attribute name="OID" type="xs:string" use="required"/>' + #13#10 +
' <xs:attribute name="Nome" type="xs:string" use="required"/>' + #13#10 +
' <xs:attribute name="CPF" type="xs:string" use="required"/>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
' <xs:element name="Exemplar">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:sequence>' + #13#10 +
' <xs:element name="Livro">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:attribute name="Titulo" type="xs:string" use="required"/>' + #13#10 +
' <xs:attribute name="ISBN" type="xs:string" use="required"/>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
' </xs:sequence>' + #13#10 +
' <xs:attribute name="Codigo" type="xs:string" use="required"/>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
' </xs:sequence>' + #13#10 +
' <xs:attribute name="DataInicio" type="xs:date" use="required"/>' + #13#10 +
' <xs:attribute name="DataDevolucaoPrevista" type="xs:date" use="required"/>' + #13#10 +
' <xs:attribute name="OID" type="xs:string" use="required"/>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
' </xs:sequence>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
' </xs:sequence>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
'</xs:schema>' + #13#10 +
'';
end;
function GetXSDOut_3226_smucCadastrarLivro_BuscandoLivro_RM_INCLUIR_LIVRO: String;
begin
Result := '<?xml version="1.0"?>' + #13#10 +
'<!--Created with Liquid XML Studio 6.1.18.0 - FREE Community Edition (http://www.liquid-technologies.com)-->' + #13#10 +
'<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">' + #13#10 +
' <xs:element name="SYSMSG">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:sequence>' + #13#10 +
' <xs:element name="Livro">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:attribute name="OID" use="required" type="xs:string"/>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
' </xs:sequence>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
'</xs:schema>' + #13#10 +
'';
end;
function GetXSDIn_3226_smucCadastrarLivro_BuscandoLivro_RM_EDITAR_LIVRO: String;
begin
Result := '<?xml version="1.0"?>' + #13#10 +
'<!--Created with Liquid XML Studio 6.1.18.0 - FREE Community Edition (http://www.liquid-technologies.com)-->' + #13#10 +
'<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">' + #13#10 +
' <xs:element name="SYSMSG">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:sequence>' + #13#10 +
' <xs:element name="Livro">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:attribute name="OID" use="required" type="xs:string"/>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
' </xs:sequence>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
'</xs:schema>' + #13#10 +
'';
end;
function GetXSDOut_3226_smucCadastrarLivro_BuscandoLivro_RM_EDITAR_LIVRO: String;
begin
Result := '<?xml version="1.0"?>' + #13#10 +
'<!--Created with Liquid XML Studio 6.1.18.0 - FREE Community Edition (http://www.liquid-technologies.com)-->' + #13#10 +
'<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">' + #13#10 +
' <xs:element name="SYSMSG">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:sequence>' + #13#10 +
' <xs:element name="Livro">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:sequence>' + #13#10 +
' <xs:element name="Exemplares">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:sequence minOccurs="0" maxOccurs="unbounded">' + #13#10 +
' <xs:element name="Exemplar">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:attribute name="OID" type="xs:int" use="required"/>' + #13#10 +
' <xs:attribute name="Codigo" type="xs:string" use="required"/>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
' </xs:sequence>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
' </xs:sequence>' + #13#10 +
' <xs:attribute name="OID" type="xs:int" use="required"/>' + #13#10 +
' <xs:attribute name="Titulo" type="xs:string" use="required"/>' + #13#10 +
' <xs:attribute name="ISBN" type="xs:string" use="required"/>' + #13#10 +
' <xs:attribute name="Edicao" type="xs:string" use="required"/>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
' </xs:sequence>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
'</xs:schema>' + #13#10 +
'';
end;
function GetXSDIn_3226_smucCadastrarLivro_BuscandoLivro_RM_BUSCAR_LIVRO: String;
begin
Result := '<?xml version="1.0"?>' + #13#10 +
'<!--Created with Liquid XML Studio 6.1.18.0 - FREE Community Edition (http://www.liquid-technologies.com)-->' + #13#10 +
'<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">' + #13#10 +
' <xs:element name="SYSMSG">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:sequence>' + #13#10 +
' <xs:element name="Livro">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:attribute name="ISBN" use="optional" type="xs:string"/>' + #13#10 +
' <xs:attribute name="Titulo" use="optional" type="xs:string"/>' + #13#10 +
' <xs:attribute name="Edicao" use="optional" type="xs:string"/>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
' </xs:sequence>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
'</xs:schema>' + #13#10 +
'';
end;
function GetXSDOut_3226_smucCadastrarLivro_BuscandoLivro_RM_BUSCAR_LIVRO: String;
begin
Result := '<?xml version="1.0"?>' + #13#10 +
'<!--Created with Liquid XML Studio 6.1.18.0 - FREE Community Edition (http://www.liquid-technologies.com)-->' + #13#10 +
'<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">' + #13#10 +
' <xs:element name="SYSMSG">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:sequence>' + #13#10 +
' <xs:element name="Livros">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:sequence minOccurs="0" maxOccurs="unbounded">' + #13#10 +
' <xs:element name="Livro">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:attribute name="Titulo" type="xs:string" use="required"/>' + #13#10 +
' <xs:attribute name="ISBN" type="xs:string" use="required"/>' + #13#10 +
' <xs:attribute name="Edicao" type="xs:string" use="required"/>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
' </xs:sequence>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
' </xs:sequence>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
'</xs:schema>' + #13#10 +
'';
end;
function GetXSDIn_3226_smucCadastrarLivro_BuscandoLivro_RM_EXCLUIR_LIVRO: String;
begin
Result := '<?xml version="1.0"?>' + #13#10 +
'<!--Created with Liquid XML Studio 6.1.18.0 - FREE Community Edition (http://www.liquid-technologies.com)-->' + #13#10 +
'<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">' + #13#10 +
' <xs:element name="SYSMSG">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:sequence>' + #13#10 +
' <xs:element name="Livro">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:attribute name="OID" use="required" type="xs:string"/>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
' </xs:sequence>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
'</xs:schema>' + #13#10 +
'';
end;
function GetXSDOut_3226_smucCadastrarLivro_BuscandoLivro_RM_EXCLUIR_LIVRO: String;
begin
Result := '<?xml version="1.0"?>' + #13#10 +
'<!--Created with Liquid XML Studio 6.1.18.0 - FREE Community Edition (http://www.liquid-technologies.com)-->' + #13#10 +
'<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">' + #13#10 +
' <xs:element name="SYSMSG">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:sequence>' + #13#10 +
' <xs:element name="Livros">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:sequence minOccurs="0" maxOccurs="unbounded">' + #13#10 +
' <xs:element name="Livro">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:attribute name="Titulo" type="xs:string" use="required"/>' + #13#10 +
' <xs:attribute name="ISBN" type="xs:string" use="required"/>' + #13#10 +
' <xs:attribute name="Edicao" type="xs:string" use="required"/>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
' </xs:sequence>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
' </xs:sequence>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
'</xs:schema>' + #13#10 +
'';
end;
function GetXSDIn_3226_smucCadastrarLivro_CadastrandoLivro_RM_INCLUIR_EXEMPLAR: String;
begin
Result := '<?xml version="1.0"?>' + #13#10 +
'<!--Created with Liquid XML Studio 6.1.18.0 - FREE Community Edition (http://www.liquid-technologies.com)-->' + #13#10 +
'<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">' + #13#10 +
' <xs:element name="SYSMSG">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:sequence>' + #13#10 +
' <xs:element name="Exemplar">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:attribute name="Codigo" type="xs:string" use="required"/>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
' </xs:sequence>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
'</xs:schema>' + #13#10 +
'';
end;
function GetXSDOut_3226_smucCadastrarLivro_CadastrandoLivro_RM_INCLUIR_EXEMPLAR: String;
begin
Result := '<?xml version="1.0"?>' + #13#10 +
'<!--Created with Liquid XML Studio 6.1.18.0 - FREE Community Edition (http://www.liquid-technologies.com)-->' + #13#10 +
'<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">' + #13#10 +
' <xs:element name="SYSMSG">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:sequence>' + #13#10 +
' <xs:element name="Exemplares">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:sequence minOccurs="0" maxOccurs="unbounded">' + #13#10 +
' <xs:element name="Exemplar">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:attribute name="OID" type="xs:int" use="required"/>' + #13#10 +
' <xs:attribute name="Codigo" type="xs:string" use="required"/>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
' </xs:sequence>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
' </xs:sequence>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
'</xs:schema>' + #13#10 +
'';
end;
function GetXSDIn_3226_smucCadastrarLivro_CadastrandoLivro_RM_CONCLUIR_CADASTRO: String;
begin
Result := '<?xml version="1.0"?>' + #13#10 +
'<!--Created with Liquid XML Studio 6.1.18.0 - FREE Community Edition (http://www.liquid-technologies.com)-->' + #13#10 +
'<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">' + #13#10 +
' <xs:element name="SYSMSG">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:sequence>' + #13#10 +
' <xs:element name="Livro">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:attribute name="Titulo" type="xs:string" use="required"/>' + #13#10 +
' <xs:attribute name="ISBN" type="xs:string" use="required"/>' + #13#10 +
' <xs:attribute name="Edicao" type="xs:string" use="required"/>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
' </xs:sequence>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
'</xs:schema>' + #13#10 +
'';
end;
function GetXSDOut_3226_smucCadastrarLivro_CadastrandoLivro_RM_CONCLUIR_CADASTRO: String;
begin
Result := '<?xml version="1.0"?>' + #13#10 +
'<!--Created with Liquid XML Studio 6.1.18.0 - FREE Community Edition (http://www.liquid-technologies.com)-->' + #13#10 +
'<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">' + #13#10 +
' <xs:element name="SYSMSG">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:sequence>' + #13#10 +
' <xs:element name="Livro">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:sequence>' + #13#10 +
' <xs:element name="Exemplares">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:sequence minOccurs="0" maxOccurs="unbounded">' + #13#10 +
' <xs:element name="Exemplar">' + #13#10 +
' <xs:complexType>' + #13#10 +
' <xs:attribute name="OID" type="xs:int" use="required"/>' + #13#10 +
' <xs:attribute name="Codigo" type="xs:string" use="required"/>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
' </xs:sequence>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
' </xs:sequence>' + #13#10 +
' <xs:attribute name="OID" type="xs:int" use="required"/>' + #13#10 +
' <xs:attribute name="Titulo" type="xs:string" use="required"/>' + #13#10 +
' <xs:attribute name="ISBN" type="xs:string" use="required"/>' + #13#10 +
' <xs:attribute name="Edicao" type="xs:string" use="required"/>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
' </xs:sequence>' + #13#10 +
' <xs:anyAttribute processContents="skip"/>' + #13#10 +
' </xs:complexType>' + #13#10 +
' </xs:element>' + #13#10 +
'</xs:schema>' + #13#10 +
'';
end;
procedure RegisterUseCases1(piMetaModel: acMetaModel);
var
lUseCaseTicket: acUseCaseTicket;
......@@ -1798,6 +2209,8 @@ begin
NewUseCaseTicket_ucCadastroPerfil_1963(piMetaModel);
NewUseCaseTicket_ucCadastroUsuarioSistema_101(piMetaModel);
NewUseCaseTicket_ucEfetuarEmprestimo_3220(piMetaModel);
NewUseCaseTicket_ucConsultarEmprestimo_3222(piMetaModel);
NewUseCaseTicket_ucCadastrarLivro_3226(piMetaModel);
//Gerando StateMachine para o casu de uso 'ucImportaConfiguracaoSistema'
lUseCaseTicket := piMetaModel.UseCaseTicketByCode['1327'];
......@@ -2580,6 +2993,183 @@ begin
lTransition.XsdOut.XML := GetXSDOut_3220_smucEfetuarEmprestimo_Confirmando_RM_CANCELAR_CONFIRMACAO;
//Gerando StateMachine para o casu de uso 'ucConsultarEmprestimo'
lUseCaseTicket := piMetaModel.UseCaseTicketByCode['3222'];
lStateMachine := lUseCaseTicket.StateMachine;
lStateMachine.Name := 'smServer';
utState.Create(lStateMachine, 'Initializing');
lSubMachineState := utSubMachineState.Create(lStateMachine, 'UseCaseSubmachine');
lSubMachineUseCaseTicket := piMetaModel.UseCaseTicketByCode['3222'];
lSubMachineState.StateMachine := acUseCaseStateMachine.Create(lSubMachineUseCaseTicket, lSubMachineState);
utFinalState.Create(lStateMachine, 'smBase_FinalState');
//Define o InitialState do StateMachine
lStateMachine.InitialState := lStateMachine.FindState('Initializing');
//Adiciona as transicoes dos estados
lState := lStateMachine.FindState('Initializing');
lTransition := lState.NewOutgoingTransition('READY');
lTransition.SourceState := lState;
lTransition.TargetState := lStateMachine.FindState('UseCaseSubmachine');
lTransition.AddTrigger('READY');
lState := lStateMachine.FindState('UseCaseSubmachine');
lTransition := lState.NewOutgoingTransition('ABORT');
lTransition.SourceState := lState;
lTransition.TargetState := lStateMachine.FindState('smBase_FinalState');
lTransition.AddTrigger('UM_ABORT','4');
lTransition.AddEffect('EFFECT_Abort');
lTransition := lState.NewOutgoingTransition('TIMEOUTCHECK');
lTransition.SourceState := lState;
lTransition.TargetState := lState;
lTransition.AddTrigger('RM_TIMEOUT_CHECK','16');
lTransition.AddEffect('EFFECT_TimeOutCheck');
lTransition := lState.NewOutgoingTransition('GETTRIGGERSFROMCURRENTSTATE');
lTransition.SourceState := lState;
lTransition.TargetState := lState;
lTransition.AddTrigger('RM_GET_TRIGGERS_FROM_CURRENT_STATE');
lTransition.AddEffect('EFFECT_GetTriggersFromCurrentState');
lTransition := lState.NewOutgoingTransition('GETXSDBYTRIGGERFROMCURRENTSTATE');
lTransition.SourceState := lState;
lTransition.TargetState := lState;
lTransition.AddTrigger('RM_GET_XSD_BY_TRIGGER_FROM_CURRENT_STATE');
lTransition.AddEffect('EFFECT_GetXSDByTriggerFromCurrentState');
// SUBSTATEMACHINE smucConsultarEmprestimo ///////////////////////
lStateMachine := lUseCaseTicket.FindStateMachine('smServer');
lStateMachine := utSubMachineState(lStateMachine.FindState('UseCaseSubmachine')).StateMachine as acUseCaseStateMachine;
lStateMachine.Name := 'smucConsultarEmprestimo';
utState.Create(lStateMachine, 'Consultando');
//Define o InitialState do StateMachine
lStateMachine.InitialState := lStateMachine.FindState('Consultando');
//Adiciona as transicoes dos estados
lState := lStateMachine.FindState('Consultando');
lTransition := lState.NewOutgoingTransition('RM_CONSULTAR');
lTransition.SourceState := lState;
lTransition.TargetState := lState;
lTransition.AddTrigger('RM_CONSULTAR');
lTransition.AddEffect('Effect_Consultar');
lTransition.XsdIn.XML := GetXSDIn_3222_smucConsultarEmprestimo_Consultando_RM_CONSULTAR;
lTransition.XsdOut.XML := GetXSDOut_3222_smucConsultarEmprestimo_Consultando_RM_CONSULTAR;
//Gerando StateMachine para o casu de uso 'ucCadastrarLivro'
lUseCaseTicket := piMetaModel.UseCaseTicketByCode['3226'];
lStateMachine := lUseCaseTicket.StateMachine;
lStateMachine.Name := 'smServer';
utState.Create(lStateMachine, 'Initializing');
lSubMachineState := utSubMachineState.Create(lStateMachine, 'UseCaseSubmachine');
lSubMachineUseCaseTicket := piMetaModel.UseCaseTicketByCode['3226'];
lSubMachineState.StateMachine := acUseCaseStateMachine.Create(lSubMachineUseCaseTicket, lSubMachineState);
utFinalState.Create(lStateMachine, 'smBase_FinalState');
//Define o InitialState do StateMachine
lStateMachine.InitialState := lStateMachine.FindState('Initializing');
//Adiciona as transicoes dos estados
lState := lStateMachine.FindState('Initializing');
lTransition := lState.NewOutgoingTransition('READY');
lTransition.SourceState := lState;
lTransition.TargetState := lStateMachine.FindState('UseCaseSubmachine');
lTransition.AddTrigger('READY');
lState := lStateMachine.FindState('UseCaseSubmachine');
lTransition := lState.NewOutgoingTransition('ABORT');
lTransition.SourceState := lState;
lTransition.TargetState := lStateMachine.FindState('smBase_FinalState');
lTransition.AddTrigger('UM_ABORT','4');
lTransition.AddEffect('EFFECT_Abort');
lTransition := lState.NewOutgoingTransition('TIMEOUTCHECK');
lTransition.SourceState := lState;
lTransition.TargetState := lState;
lTransition.AddTrigger('RM_TIMEOUT_CHECK','16');
lTransition.AddEffect('EFFECT_TimeOutCheck');
lTransition := lState.NewOutgoingTransition('GETTRIGGERSFROMCURRENTSTATE');
lTransition.SourceState := lState;
lTransition.TargetState := lState;
lTransition.AddTrigger('RM_GET_TRIGGERS_FROM_CURRENT_STATE');
lTransition.AddEffect('EFFECT_GetTriggersFromCurrentState');
lTransition := lState.NewOutgoingTransition('GETXSDBYTRIGGERFROMCURRENTSTATE');
lTransition.SourceState := lState;
lTransition.TargetState := lState;
lTransition.AddTrigger('RM_GET_XSD_BY_TRIGGER_FROM_CURRENT_STATE');
lTransition.AddEffect('EFFECT_GetXSDByTriggerFromCurrentState');
// SUBSTATEMACHINE smucCadastrarLivro ///////////////////////
lStateMachine := lUseCaseTicket.FindStateMachine('smServer');
lStateMachine := utSubMachineState(lStateMachine.FindState('UseCaseSubmachine')).StateMachine as acUseCaseStateMachine;
lStateMachine.Name := 'smucCadastrarLivro';
utState.Create(lStateMachine, 'BuscandoLivro');
utState.Create(lStateMachine, 'CadastrandoLivro');
//Define o InitialState do StateMachine
lStateMachine.InitialState := lStateMachine.FindState('BuscandoLivro');
//Adiciona as transicoes dos estados
lState := lStateMachine.FindState('BuscandoLivro');
lTransition := lState.NewOutgoingTransition('RM_INCLUIR_LIVRO');
lTransition.SourceState := lState;
lTransition.TargetState := lStateMachine.FindState('CadastrandoLivro');
lTransition.AddTrigger('RM_INCLUIR_LIVRO');
lTransition.AddEffect('Effect_IncluirLivro');
lTransition.XsdOut.XML := GetXSDOut_3226_smucCadastrarLivro_BuscandoLivro_RM_INCLUIR_LIVRO;
lTransition := lState.NewOutgoingTransition('RM_EDITAR_LIVRO');
lTransition.SourceState := lState;
lTransition.TargetState := lStateMachine.FindState('CadastrandoLivro');
lTransition.AddTrigger('RM_EDITAR_LIVRO');
lTransition.AddEffect('Effect_EditarLivro');
lTransition.XsdIn.XML := GetXSDIn_3226_smucCadastrarLivro_BuscandoLivro_RM_EDITAR_LIVRO;
lTransition.XsdOut.XML := GetXSDOut_3226_smucCadastrarLivro_BuscandoLivro_RM_EDITAR_LIVRO;
lTransition := lState.NewOutgoingTransition('RM_BUSCAR_LIVRO');
lTransition.SourceState := lState;
lTransition.TargetState := lState;
lTransition.AddTrigger('RM_BUSCAR_LIVRO');
lTransition.AddEffect('Effect_BuscarLivro');
lTransition.XsdIn.XML := GetXSDIn_3226_smucCadastrarLivro_BuscandoLivro_RM_BUSCAR_LIVRO;
lTransition.XsdOut.XML := GetXSDOut_3226_smucCadastrarLivro_BuscandoLivro_RM_BUSCAR_LIVRO;
lTransition := lState.NewOutgoingTransition('RM_EXCLUIR_LIVRO');
lTransition.SourceState := lState;
lTransition.TargetState := lState;
lTransition.AddTrigger('RM_EXCLUIR_LIVRO');
lTransition.AddEffect('Effect_ExcluirLivro');
lTransition.XsdIn.XML := GetXSDIn_3226_smucCadastrarLivro_BuscandoLivro_RM_EXCLUIR_LIVRO;
lTransition.XsdOut.XML := GetXSDOut_3226_smucCadastrarLivro_BuscandoLivro_RM_EXCLUIR_LIVRO;
lState := lStateMachine.FindState('CadastrandoLivro');
lTransition := lState.NewOutgoingTransition('RM_CANCELAR_CADASTRO');
lTransition.SourceState := lState;
lTransition.TargetState := lStateMachine.FindState('BuscandoLivro');
lTransition.AddTrigger('RM_CANCELAR_CADASTRO');
lTransition.AddEffect('Effect_CancelarCadastro');
lTransition := lState.NewOutgoingTransition('RM_INCLUIR_EXEMPLAR');
lTransition.SourceState := lState;
lTransition.TargetState := lState;
lTransition.AddTrigger('RM_INCLUIR_EXEMPLAR');
lTransition.AddEffect('Effect_IncluirExemplar');
lTransition.XsdIn.XML := GetXSDIn_3226_smucCadastrarLivro_CadastrandoLivro_RM_INCLUIR_EXEMPLAR;
lTransition.XsdOut.XML := GetXSDOut_3226_smucCadastrarLivro_CadastrandoLivro_RM_INCLUIR_EXEMPLAR;
lTransition := lState.NewOutgoingTransition('RM_EXCLUIR_EXEMPLAR');
lTransition.SourceState := lState;
lTransition.TargetState := lState;
lTransition.AddTrigger('RM_EXCLUIR_EXEMPLAR');
lTransition.AddEffect('Effect_ExcluirExemplar');
lTransition := lState.NewOutgoingTransition('RM_CONCLUIR_CADASTRO');
lTransition.SourceState := lState;
lTransition.TargetState := lStateMachine.FindState('BuscandoLivro');
lTransition.AddTrigger('RM_CONCLUIR_CADASTRO');
lTransition.AddEffect('Effect_ConcluirCadastro');
lTransition.XsdIn.XML := GetXSDIn_3226_smucCadastrarLivro_CadastrandoLivro_RM_CONCLUIR_CADASTRO;
lTransition.XsdOut.XML := GetXSDOut_3226_smucCadastrarLivro_CadastrandoLivro_RM_CONCLUIR_CADASTRO;
end;
procedure RegisterModelMappings(piMetaModel: acMetaModel);
......
......@@ -13,11 +13,13 @@ type
private
FDataInicio: acDateTime;
FDataDevolucaoPrevista: acDateTime;
FDataDevolucao: acDateTime;
fExemplar: acRelationPartnerShip;
fUsuario: acRelationPartnerShip;
published
property DataInicio: acDateTime read FDataInicio write FDataInicio;
property DataDevolucaoPrevista: acDateTime read FDataDevolucaoPrevista write FDataDevolucaoPrevista;
property DataDevolucao: acDateTime read FDataDevolucao write FDataDevolucao;
property Exemplar: acRelationPartnerShip read fExemplar write fExemplar;
property Usuario: acRelationPartnerShip read fUsuario write fUsuario;
end;
......@@ -29,6 +31,7 @@ begin
piField.AddAttribute('OID').AsString := Self.IDO.AsString;
piField.AddAttribute('DataInicio').AsDate := Self.DataInicio.Value;
piField.AddAttribute('DataDevolucaoPrevista').AsDate := Self.DataDevolucaoPrevista.Value;
piField.AddAttribute('DataDevolucao').AsDate := Self.DataDevolucao.Value;
end;
initialization
......
......@@ -29,6 +29,7 @@ begin
piField.AddAttribute('OID').AsString := Self.IDO.AsString;
piField.AddAttribute('Titulo').AsString := Self.Titulo.AsString;
piField.AddAttribute('ISBN').AsString := Self.ISBN.AsString;
piField.AddAttribute('Edicao').AsString := Self.Edicao.AsString;
end;
initialization
......
unit svuHelloWorld;
unit svuHelloWorld;
interface
......@@ -125,3 +125,4 @@ finalization
end.
<?xml version="1.0"?>
<!--Created with Liquid XML Studio 6.1.18.0 - FREE Community Edition (http://www.liquid-technologies.com)-->
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="SYSMSG">
<xs:complexType>
<xs:sequence>
<xs:element name="Livro">
<xs:complexType>
<xs:attribute name="ISBN" use="optional" type="xs:string"/>
<xs:attribute name="Titulo" use="optional" type="xs:string"/>
<xs:attribute name="Edicao" use="optional" type="xs:string"/>
<xs:anyAttribute processContents="skip"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:anyAttribute processContents="skip"/>
</xs:complexType>
</xs:element>
</xs:schema>
<?xml version="1.0"?>
<!--Created with Liquid XML Studio 6.1.18.0 - FREE Community Edition (http://www.liquid-technologies.com)-->
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="SYSMSG">
<xs:complexType>
<xs:sequence>
<xs:element name="Livros">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="Livro">
<xs:complexType>
<xs:attribute name="Titulo" type="xs:string" use="required"/>
<xs:attribute name="ISBN" type="xs:string" use="required"/>
<xs:attribute name="Edicao" type="xs:string" use="required"/>
<xs:anyAttribute processContents="skip"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:anyAttribute processContents="skip"/>
</xs:complexType>
</xs:element>
</xs:schema>
<?xml version="1.0"?>
<!--Created with Liquid XML Studio 6.1.18.0 - FREE Community Edition (http://www.liquid-technologies.com)-->
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="SYSMSG">
<xs:complexType>
<xs:sequence>
<xs:element name="Usuario">
<xs:complexType>
<xs:attribute name="OID" type="xs:string" use="optional"/>
<xs:anyAttribute processContents="skip"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:anyAttribute processContents="skip"/>
</xs:complexType>
</xs:element>
</xs:schema>
<?xml version="1.0"?>
<!--Created with Liquid XML Studio 6.1.18.0 - FREE Community Edition (http://www.liquid-technologies.com)-->
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="SYSMSG">
<xs:complexType>
<xs:sequence>
<xs:element name="Emprestimos">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="Emprestimo">
<xs:complexType>
<xs:sequence>
<xs:element name="Usuario">
<xs:complexType>
<xs:attribute name="OID" type="xs:string" use="required"/>
<xs:attribute name="Nome" type="xs:string" use="required"/>
<xs:attribute name="CPF" type="xs:string" use="required"/>
<xs:anyAttribute processContents="skip"/>
</xs:complexType>
</xs:element>
<xs:element name="Exemplar">
<xs:complexType>
<xs:sequence>
<xs:element name="Livro">
<xs:complexType>
<xs:attribute name="Titulo" type="xs:string" use="required"/>
<xs:attribute name="ISBN" type="xs:string" use="required"/>
<xs:anyAttribute processContents="skip"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Codigo" type="xs:string" use="required"/>
<xs:anyAttribute processContents="skip"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="DataInicio" type="xs:date" use="required"/>
<xs:attribute name="DataDevolucaoPrevista" type="xs:date" use="required"/>
<xs:attribute name="DataDevolucao" type="xs:date" use="required"/>
<xs:attribute name="OID" type="xs:string" use="required"/>
<xs:anyAttribute processContents="skip"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:anyAttribute processContents="skip"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:anyAttribute processContents="skip"/>
</xs:complexType>
</xs:element>
</xs:schema>
unit ucuCadastrarLivro;
interface
uses
utuStateMachine, utuRequest, ucuUseCase, acuFramework, nguLivro;
type
ucCadastrarLivro = class(ucUseCase)
private
fLivro : ngLivro;
fSavePoint : acPersistenceSessionSavePoint;
public
procedure Initialize; Override;
procedure Finalize; Override;
published
procedure Effect_IncluirLivro(piRequest: utRequest; piTransition: utTransition);
procedure Effect_EditarLivro(piRequest: utRequest; piTransition: utTransition);
procedure Effect_BuscarLivro(piRequest: utRequest; piTransition: utTransition);
procedure Effect_ExcluirLivro(piRequest: utRequest; piTransition: utTransition);
procedure Effect_CancelarCadastro(piRequest: utRequest; piTransition: utTransition);
procedure Effect_IncluirExemplar(piRequest: utRequest; piTransition: utTransition);
procedure Effect_ExcluirExemplar(piRequest: utRequest; piTransition: utTransition);
procedure Effect_ConcluirCadastro(piRequest: utRequest; piTransition: utTransition);
end;
implementation
uses
ucuManager,
utuMessage,
acuObject,
utuEmprestimoOQL,
nguExemplar,
nguSituacao;
procedure ucCadastrarLivro.Initialize;
begin
inherited;
end;
procedure ucCadastrarLivro.Finalize;
begin
inherited;
end;
procedure ucCadastrarLivro.Effect_IncluirLivro(piRequest: utRequest; piTransition: utTransition);
var
lFieldLivro : utField;
begin
fSavePoint := Session.AddSavePoint;
try
fLivro := ngLivro.CreateNew(Self.Session);
lFieldLivro := piRequest.Response.RootField.AddField('Livro');
lFieldLivro.AddAttribute('OID').AsString := fLivro.IDO.AsString;
except
Session.RollBackToSavePoint(fSavePoint);
raise;
end;
piRequest.Processed := True;
end;
procedure ucCadastrarLivro.Effect_EditarLivro(piRequest: utRequest; piTransition: utTransition);
begin
piRequest.Processed := True;
end;
procedure ucCadastrarLivro.Effect_BuscarLivro(piRequest: utRequest; piTransition: utTransition);
var
lFieldLivro,
lFieldLivros : utField;
lListLivros : acPersistentObjectList;
lEnumLivro : acEnumerator;
lLivro : ngLivro;
lOQL : IObterLivros;
begin
lFieldLivro := piRequest.Message.RootField.FieldByName('Livro');
lListLivros := acPersistentObjectList.Create(ngLivro);
try
lOQL := utEmprestimoOQL.ObterLivros(Self.Session);
if lFieldLivro.HasAttribute('Titulo')
then lOQL.Param_titulo.Value := lFieldLivro.AttributeByName('Titulo').AsString
else lOQL.Param_titulo.SetNull;
if lFieldLivro.HasAttribute('ISBN')
then lOQL.Param_isbn.Value := lFieldLivro.AttributeByName('ISBN').AsString
else lOQL.Param_isbn.SetNull;
if lFieldLivro.HasAttribute('Edicao')
then lOQL.Param_edicao.Value := lFieldLivro.AttributeByName('Edicao').AsString
else lOQL.Param_edicao.SetNull;
lOQL.LoadList(lListLivros);
lEnumLivro := lListLivros.GetEnumerator;
try
lFieldLivros := piRequest.Response.RootField.AddField('Livros');
while not lEnumLivro.EOL do
begin
lLivro := lEnumLivro.Current as ngLivro;
lLivro.toXML(lFieldLivros.AddField('Livro'));
lEnumLivro.MoveNext;
end;
finally
lEnumLivro.Free;
end;
finally
lListLivros.Free;
end;
piRequest.Processed := True;
end;
procedure ucCadastrarLivro.Effect_ExcluirLivro(piRequest: utRequest; piTransition: utTransition);
var
lFieldLivro,
lFieldLivros,
lFieldResult : utField;
lListLivros : acPersistentObjectList;
lEnumLivro : acEnumerator;
lLivro : ngLivro;
lOQL : IContarEmprestimosLivro;
lSavePoint : acPersistenceSessionSavePoint;
begin
lFieldLivro := piRequest.Message.RootField.FieldByName('Livro');
lSavePoint := Session.AddSavePoint;
try
lOQL := utEmprestimoOQL.ContarEmprestimosLivro(Self.Session);
lOQL.Param_oid.Value := lFieldLivro.AttributeByName('OID').AsInteger;
lFieldResult := utField.Create;
try
lOQL.LoadDataSet(lFieldResult);
if lFieldResult.ValueByPath('DATAPACKET.ROWDATA.ROW.@C0').AsInteger > 0
then raise EucException.Create('No possvel excluir o livro, ele possui pelo menos um exemplar com emprstimo associado.');
lLivro := Session.LoadObject(ngLivro, acOIDInt.Create(lFieldLivro.AttributeByName('OID').AsInteger)) as ngLivro;
Session.DeleteObject(lLivro);
Session.Save;
finally
lFieldResult.Free;
end;
except
Session.RollBackToSavePoint(lSavePoint);
raise;
end;
lListLivros := acPersistentObjectList.Create(ngLivro);
try
Self.Session.LoadAllInstances(ngLivro, lListLivros);
lEnumLivro := lListLivros.GetEnumerator;
try
lFieldLivros := piRequest.Response.RootField.AddField('Livros');
while not lEnumLivro.EOL do
begin
lLivro := lEnumLivro.Current as ngLivro;
lLivro.toXML(lFieldLivros.AddField('Livro'));
lEnumLivro.MoveNext;
end;
finally
lEnumLivro.Free;
end;
finally
lListLivros.Free;
end;
piRequest.Processed := True;
end;
procedure ucCadastrarLivro.Effect_CancelarCadastro(piRequest: utRequest; piTransition: utTransition);
begin
if Assigned(fSavePoint)
then Session.RollBackToSavePoint(fSavePoint);
piRequest.Processed := True;
end;
procedure ucCadastrarLivro.Effect_IncluirExemplar(piRequest: utRequest; piTransition: utTransition);
var
lFieldExemplar,
lFieldExemplares : utField;
lExemplar : ngExemplar;
lEnumExemplar : acEnumerator;
begin
lFieldExemplar := piRequest.Message.RootField.FieldByName('Exemplar');
lExemplar := ngExemplar.CreateNew(Self.Session);
lExemplar.Codigo.AsString := lFieldExemplar.AttributeByName('Codigo').AsString;
lExemplar.Situacao.Partner := Session.LoadObject(ngSituacao, acOIDInt.Create(1));
fLivro.Exemplares.Add(lExemplar);
lFieldExemplares := piRequest.Response.RootField.AddField('Exemplares');
lEnumExemplar := fLivro.Exemplares.GetEnumerator;
try
while not lEnumExemplar.EOL do
begin
lExemplar := lEnumExemplar.Current as ngExemplar;
lExemplar.toXML(lFieldExemplares.AddField('Exemplar'));
lEnumExemplar.MoveNext;
end;
finally
lEnumExemplar.Free;
end;
piRequest.Processed := True;
end;
procedure ucCadastrarLivro.Effect_ExcluirExemplar(piRequest: utRequest; piTransition: utTransition);
begin
piRequest.Processed := True;
end;
procedure ucCadastrarLivro.Effect_ConcluirCadastro(piRequest: utRequest; piTransition: utTransition);
var
lSavePoint : acPersistenceSessionSavePoint;
lFieldLivroIn,
lFieldLivroOut,
lFieldExemplares : utField;
lExemplar : ngExemplar;
lEnumExemplar : acEnumerator;
begin
lSavePoint := Self.Session.AddSavePoint;
try
lFieldLivroIn := piRequest.Message.RootField.FieldByName('Livro');
fLivro.Titulo.AsString := lFieldLivroIn.AttributeByName('Titulo').AsString;
fLivro.ISBN.AsString := lFieldLivroIn.AttributeByName('ISBN').AsString;
fLivro.Edicao.AsString := lFieldLivroIn.AttributeByName('Edicao').AsString;
Session.Save;
lFieldLivroOut := piRequest.Response.RootField.AddField('Livro');
fLivro.toXML(lFieldLivroOut);
lFieldExemplares := lFieldLivroOut.AddField('Exemplares');
lEnumExemplar := fLivro.Exemplares.GetEnumerator;
try
while not lEnumExemplar.EOL do
begin
lExemplar := lEnumExemplar.Current as ngExemplar;
lExemplar.toXML(lFieldExemplares.AddField('Exemplar'));
lEnumExemplar.MoveNext;
end;
finally
lEnumExemplar.Free;
end;
except
Session.RollBackToSavePoint(lSavePoint);
raise;
end;
piRequest.Processed := True;
end;
initialization
gucManager.RegisterClass(3226,ucCadastrarLivro);
end.
unit ucuConsultarEmprestimo;
interface
uses
utuStateMachine, utuRequest, ucuUseCase, acuFramework;
type
ucConsultarEmprestimo = class(ucUseCase)
public
procedure Initialize; Override;
procedure Finalize; Override;
published
procedure Effect_Consultar(piRequest: utRequest; piTransition: utTransition);
end;
implementation
uses
ucuManager,
utuMessage,
acuObject,
utuEmprestimoOQL,
nguUsuario,
nguLivro,
nguExemplar,
nguEmprestimo,
SysUtils,
DateUtils;
procedure ucConsultarEmprestimo.Initialize;
begin
inherited;
end;
procedure ucConsultarEmprestimo.Finalize;
begin
inherited;
end;
procedure ucConsultarEmprestimo.Effect_Consultar(piRequest: utRequest; piTransition: utTransition);
var
lEnumEmprestimo : acEnumerator;
lExemplar : ngExemplar;
lEmprestimo : ngEmprestimo;
lLivro : ngLivro;
lListEmprestimos : acPersistentObjectList;
lUsuario : ngUsuario;
lOQL: IObterEmprestimos;
lFieldEmprestimos,
lFieldEmprestimo,
lFieldUsuario,
lFieldLivro,
lFieldExemplar,
lFieldUsuarioIn : utField;
begin
lOQL := utEmprestimoOQL.ObterEmprestimos(Self.Session);
lListEmprestimos := acPersistentObjectList.Create(ngEmprestimo);
try
lFieldUsuarioIn := piRequest.Message.RootField.FieldByName('Usuario');
if lFieldUsuarioIn.HasAttribute('OID')
then lOQL.Param_oid.Value := lFieldUsuarioIn.AttributeByName('OID').AsInteger
else lOQL.Param_oid.SetNull;
if lFieldUsuarioIn.HasAttribute('Nome')
then lOQL.Param_nome.Value := lFieldUsuarioIn.AttributeByName('Nome').AsString
else lOQL.Param_nome.SetNull;
if lFieldUsuarioIn.HasAttribute('CPF')
then lOQL.Param_cpf.Value := lFieldUsuarioIn.AttributeByName('CPF').AsString
else lOQL.Param_cpf.SetNull;
lOQL.LoadList(lListEmprestimos);
lEnumEmprestimo := lListEmprestimos.GetEnumerator;
try
lFieldEmprestimos := piRequest.Response.RootField.AddField('Emprestimos');
while not lEnumEmprestimo.EOL do
begin
//Tag de Emprestimo
lEmprestimo := lEnumEmprestimo.Current as ngEmprestimo;
lFieldEmprestimo := lFieldEmprestimos.AddField('Emprestimo');
lEmprestimo.toXML(lFieldEmprestimo);
//Tag de Usurio
lUsuario := lEmprestimo.Usuario.Partner as ngUsuario;
lFieldUsuario := lFieldEmprestimo.AddField('Usuario');
lUsuario.toXML(lFieldUsuario);
//Tag de Exemplar
lExemplar := lEmprestimo.Exemplar.Partner as ngExemplar;
lFieldExemplar := lFieldEmprestimo.AddField('Exemplar');
lExemplar.toXML(lFieldExemplar);
//Tag de Livro
lFieldLivro := lFieldExemplar.AddField('Livro');
lLivro := lExemplar.Livro.Partner as ngLivro;
lLivro.toXML(lFieldLivro);
lEnumEmprestimo.MoveNext;
end;
finally
lEnumEmprestimo.Free;
end;
finally
lListEmprestimos.Free;
end;
piRequest.Processed := True;
end;
initialization
gucManager.RegisterClass(3222,ucConsultarEmprestimo);
end.
......@@ -6,19 +6,43 @@ uses acuOQL, acuFramework;
type
IContarEmprestimosExemplar = interface(IDataSetOQLQuery)
function Param_oid: acOQLParamInt;
end;
IContarEmprestimosLivro = interface(IDataSetOQLQuery)
function Param_oid: acOQLParamInt;
end;
IObterEmprestimos = interface(IOQLQuery)
function Param_oid: acOQLParamInt;
function Param_nome: acOQLParamString;
function Param_cpf: acOQLParamString;
end;
IObterExemplares = interface(IOQLQuery)
function Param_titulo: acOQLParamString;
function Param_isbn: acOQLParamString;
function Param_codigo: acOQLParamString;
end;
IObterLivros = interface(IOQLQuery)
function Param_titulo: acOQLParamString;
function Param_isbn: acOQLParamString;
function Param_edicao: acOQLParamString;
end;
IObterUsuarios = interface(IOQLQuery)
function Param_nome: acOQLParamString;
function Param_cpf: acOQLParamString;
end;
utEmprestimoOQL = class
class function ContarEmprestimosExemplar(piSessao: acPersistenceSession): IContarEmprestimosExemplar;
class function ContarEmprestimosLivro(piSessao: acPersistenceSession): IContarEmprestimosLivro;
class function ObterEmprestimos(piSessao: acPersistenceSession): IObterEmprestimos;
class function ObterExemplares(piSessao: acPersistenceSession): IObterExemplares;
class function ObterLivros(piSessao: acPersistenceSession): IObterLivros;
class function ObterUsuarios(piSessao: acPersistenceSession): IObterUsuarios;
end;
......@@ -26,17 +50,68 @@ implementation
type
TContarEmprestimosExemplar = class(acDataSetOQLQuery, IContarEmprestimosExemplar)
function Param_oid: acOQLParamInt;
end;
TContarEmprestimosLivro = class(acDataSetOQLQuery, IContarEmprestimosLivro)
function Param_oid: acOQLParamInt;
end;
TObterEmprestimos = class(acOQLQuery, IObterEmprestimos)
function Param_oid: acOQLParamInt;
function Param_nome: acOQLParamString;
function Param_cpf: acOQLParamString;
end;
TObterExemplares = class(acOQLQuery, IObterExemplares)
function Param_titulo: acOQLParamString;
function Param_isbn: acOQLParamString;
function Param_codigo: acOQLParamString;
end;
TObterLivros = class(acOQLQuery, IObterLivros)
function Param_titulo: acOQLParamString;
function Param_isbn: acOQLParamString;
function Param_edicao: acOQLParamString;
end;
TObterUsuarios = class(acOQLQuery, IObterUsuarios)
function Param_nome: acOQLParamString;
function Param_cpf: acOQLParamString;
end;
{ TContarEmprestimosExemplar }
function TContarEmprestimosExemplar.Param_oid: acOQLParamInt;
begin
result := acOQLParamInt(Self.ParamByName('oid'));
end;
{ TContarEmprestimosLivro }
function TContarEmprestimosLivro.Param_oid: acOQLParamInt;
begin
result := acOQLParamInt(Self.ParamByName('oid'));
end;
{ TObterEmprestimos }
function TObterEmprestimos.Param_oid: acOQLParamInt;
begin
result := acOQLParamInt(Self.ParamByName('oid'));
end;
function TObterEmprestimos.Param_nome: acOQLParamString;
begin
result := acOQLParamString(Self.ParamByName('nome'));
end;
function TObterEmprestimos.Param_cpf: acOQLParamString;
begin
result := acOQLParamString(Self.ParamByName('cpf'));
end;
{ TObterExemplares }
function TObterExemplares.Param_titulo: acOQLParamString;
......@@ -54,6 +129,23 @@ begin
result := acOQLParamString(Self.ParamByName('codigo'));
end;
{ TObterLivros }
function TObterLivros.Param_titulo: acOQLParamString;
begin
result := acOQLParamString(Self.ParamByName('titulo'));
end;
function TObterLivros.Param_isbn: acOQLParamString;
begin
result := acOQLParamString(Self.ParamByName('isbn'));
end;
function TObterLivros.Param_edicao: acOQLParamString;
begin
result := acOQLParamString(Self.ParamByName('edicao'));
end;
{ TObterUsuarios }
function TObterUsuarios.Param_nome: acOQLParamString;
......@@ -68,6 +160,35 @@ end;
{ utOQLs }
class function utEmprestimoOQL.ContarEmprestimosExemplar(piSessao: acPersistenceSession): IContarEmprestimosExemplar;
begin
result := TContarEmprestimosExemplar.Create(pisessao,
'SELECT count(*) as qnt' + #13#10 +
'FROM ngExemplar,' + #13#10 +
' ngExemplar.Emprestimos' + #13#10 +
'WHERE ngExemplar.OID = ?oid:acInt');
end;
class function utEmprestimoOQL.ContarEmprestimosLivro(piSessao: acPersistenceSession): IContarEmprestimosLivro;
begin
result := TContarEmprestimosLivro.Create(pisessao,
'SELECT count(*) as qnt' + #13#10 +
'FROM ngLivro,' + #13#10 +
' ngLivro.Exemplares,' + #13#10 +
' ngLivro.Exemplares.Emprestimos' + #13#10 +
'WHERE ngLivro.OID = ?oid:acInt');
end;
class function utEmprestimoOQL.ObterEmprestimos(piSessao: acPersistenceSession): IObterEmprestimos;
begin
result := TObterEmprestimos.Create(pisessao,
'SELECT ngEmprestimo' + #13#10 +
'FROM ngEmprestimo' + #13#10 +
'WHERE (ngEmprestimo.Usuario.OID = ?oid:acInt OR ?oid:acInt IS NULL)' + #13#10 +
' AND(ngEmprestimo.Usuario.Nome LIKE ''%''+?nome:acString+''%'' OR ?nome:acString IS NULL)' + #13#10 +
' AND (ngEmprestimo.Usuario.CPF = ?cpf:acString OR ?cpf:acString IS NULL)');
end;
class function utEmprestimoOQL.ObterExemplares(piSessao: acPersistenceSession): IObterExemplares;
begin
result := TObterExemplares.Create(pisessao,
......@@ -80,6 +201,17 @@ begin
'ORDER BY ngExemplar.Livro.OID ASC');
end;
class function utEmprestimoOQL.ObterLivros(piSessao: acPersistenceSession): IObterLivros;
begin
result := TObterLivros.Create(pisessao,
'SELECT ngLivro' + #13#10 +
'FROM ngLivro' + #13#10 +
'WHERE (ngLivro.Titulo LIKE ''%''+?titulo:acString+''%'' OR ?titulo:acString IS NULL)' + #13#10 +
' AND (ngLivro.ISBN = ?isbn:acString OR ?isbn:acString IS NULL)' + #13#10 +
' AND (ngLivro.Edicao = ?edicao:acString OR ?edicao:acString IS NULL)' + #13#10 +
'ORDER BY ngLivro.Titulo ASC');
end;
class function utEmprestimoOQL.ObterUsuarios(piSessao: acPersistenceSession): IObterUsuarios;
begin
result := TObterUsuarios.Create(pisessao,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment