Subversion Repositories bacoAlunos

Rev

Rev 1863 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
       PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
       "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

    <!-- Layer 1 -->
    <class name="pt.estgp.estgweb.domain.RepositoryFile" table="repositoryfile" abstract="true">
        <meta attribute="extends">pt.estgp.estgweb.domain.OwnedDomainObject</meta>
        <meta attribute="scope-class">public abstract</meta>
        <id name="id" type="long">
            <generator class="native"/>
        </id>
        <discriminator column="discrimitator"/>
        <timestamp   name="updateDate" unsaved-value="null"/>
        <property name="saveDate" type="timestamp"/>
        <many-to-one name="owner" class="pt.estgp.estgweb.domain.GenericUser" outer-join="true" lazy="proxy"/>
        <many-to-one name="lastVersion" class="pt.estgp.estgweb.domain.RepositoryFileVersion" outer-join="true" lazy="false"/>
        <property name="accessControl" type="string"/>
        <property name="sourceModule" type="pt.estgp.estgweb.domain.typesgen.repository.AbstractRepositorySourceModuleEnhancedType">
            <meta attribute="property-type">pt.estgp.estgweb.domain.typesgen.repository.AbstractRepositorySourceModuleInterfacePlugin</meta>
        </property>
        <property name="deleted" type="boolean" index="deletedIndex"/>
        <set name="repositoryFileVersions" lazy="true" order-by="saveDate desc">
            <key column="repositoryFile"/>
            <one-to-many class="pt.estgp.estgweb.domain.RepositoryFileVersionImpl"/>
        </set>
        <subclass name="pt.estgp.estgweb.domain.RepositoryFileImpl" discriminator-value="RepositoryFileImpl"/>
    </class>

    <class name="pt.estgp.estgweb.domain.RepositoryFileVersion" table="repositoryfileversion" abstract="true">
        <meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
        <meta attribute="scope-class">public abstract</meta>
        <id name="id" type="long">
            <generator class="native"/>
        </id>
        <discriminator column="discrimitator"/>
        <property name="saveDate" type="timestamp"/>
        <property name="name" type="string"/>
        <property name="contentType" type="string"/>
        <property name="extension" type="string"/>
        <property name="size" type="int"/>
        <property name="description" type="text"/>
        <property name="md5checksum" type="string" index="md5checksumIndex"/>
        <!--When version already exist we refer here for it in order to avoid duplicate in FileSystem-->
        <!-- no Servico o metodo de getInputStream vai buscar o real pela verificacao do Md5 e dos Bytes caso seja encontrado-->
        <many-to-one name="mirrorRepositoryFileVersion" class="pt.estgp.estgweb.domain.RepositoryFileVersionImpl" outer-join="true" lazy="false" index="mirroredVIndex">
            <column name="mirroredFileVersion"/>
        </many-to-one>
        <set name="mirroredRepositoryFileVersions" lazy="true" order-by="saveDate desc">
            <key column="mirroredFileVersion"/>
            <one-to-many class="pt.estgp.estgweb.domain.RepositoryFileVersionImpl"/>
        </set>
        <many-to-one name="repositoryFile" class="pt.estgp.estgweb.domain.RepositoryFileImpl" outer-join="true" lazy="false"/>
        <subclass name="pt.estgp.estgweb.domain.RepositoryFileVersionImpl" discriminator-value="RepositoryFileVersionImpl"/>
    </class>



    <!-- Layer 2 Logica do Negocio Repositorio Digital Alto Nivel como é o VFS por exemplo -->


    <class name="pt.estgp.estgweb.domain.RepositoryDocument" table="repositorydocument" abstract="true">
        <meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
        <meta attribute="scope-class">public abstract</meta>
        <id name="id" type="long">
            <generator class="native"/>
        </id>
        <discriminator column="discrimitator"/>
        <timestamp   name="updateDate" unsaved-value="null"/>
        <property name="saveDate" type="timestamp"/>
        <property name="visible" type="boolean"/>
        <property name="internalIdentifier" type="string"/>
        <property name="title" type="string">
            <column name="title" sql-type="TEXT"/>
        </property>
        <property name="subtitle" type="string"/>
        <property name="description" type="string">
            <column name="description" sql-type="TEXT"/>
        </property>
        <property name="subject" type="string">
            <column name="subject" sql-type="TEXT"/>
        </property>
        <property name="publisher" type="string"/>
        <property name="authorsJson" type="pt.estgp.estgweb.domain.typesgen.repositorydocuments.EnhancedDocumentPersons">
            <meta attribute="property-type">pt.estgp.estgweb.domain.typesgen.repositorydocuments.DocumentPersons</meta>
            <column name="authorsJson" sql-type="TEXT"/>
        </property>
        <property name="contributorsJson" type="pt.estgp.estgweb.domain.typesgen.repositorydocuments.EnhancedDocumentPersons">
            <meta attribute="property-type">pt.estgp.estgweb.domain.typesgen.repositorydocuments.DocumentPersons</meta>
            <column name="contributorsJson" sql-type="TEXT"/>
        </property>
        <property name="publishDate" type="timestamp"/>
        <property name="closeDate" type="timestamp"/>
        <property name="historyEdit" type="string">
            <column name="historyEdit" sql-type="TEXT"/>
        </property>
        <many-to-one name="collection" class="pt.estgp.estgweb.domain.RepositoryDocumentCollectionImpl" outer-join="true" lazy="false"/>

        <many-to-one name="owner" class="pt.estgp.estgweb.domain.User" outer-join="true" lazy="false"/>

        <set name="repositoryDocumentFiles" lazy="true" order-by="saveDate desc">
            <key column="repositoryDocument"/>
            <one-to-many class="pt.estgp.estgweb.domain.RepositoryDocumentFileImpl"/>
        </set>
        <subclass name="pt.estgp.estgweb.domain.RepositoryDocumentImpl" discriminator-value="RepositoryDocumentImpl"/>
    </class>

    <class name="pt.estgp.estgweb.domain.RepositoryDocumentCollection" table="repositorydocumentcollection" abstract="true">
        <meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
        <meta attribute="scope-class">public abstract</meta>
        <id name="id" type="long">
            <generator class="native"/>
        </id>
        <discriminator column="discrimitator"/>
        <timestamp   name="updateDate" unsaved-value="null"/>
        <property name="saveDate" type="timestamp"/>
        <property name="visible" type="boolean"/>
        <property name="sortField" type="string">
            <column name="sortField" default="0"/>
        </property>
        <property name="name" type="string"/>
        <property name="description" type="string">
            <column name="description" sql-type="TEXT"/>
        </property>
        <property name="legacyUrl" type="string"/>
        <many-to-one name="parent" class="pt.estgp.estgweb.domain.RepositoryDocumentCollectionImpl" outer-join="true" lazy="false"/>
        <set name="childs" lazy="true" order-by="sortField asc">
            <key column="parent"/>
            <one-to-many class="pt.estgp.estgweb.domain.RepositoryDocumentCollectionImpl"/>
        </set>
        <set name="collectionManagers" table="repositorycollectionmanagers">
            <key column="collection_id"/>
            <many-to-many column="user_id" class="pt.estgp.estgweb.domain.UserImpl"/>
        </set>
        <subclass name="pt.estgp.estgweb.domain.RepositoryDocumentCollectionImpl" discriminator-value="RepositoryDocumentCollectionImpl"/>
    </class>


    <class name="pt.estgp.estgweb.domain.RepositoryDocumentFile" table="repositorydocumentfile" abstract="true">
        <meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
        <meta attribute="scope-class">public abstract</meta>
        <id name="id" type="long">
            <generator class="native"/>
        </id>
        <discriminator column="discrimitator"/>
        <timestamp   name="updateDate" unsaved-value="null"/>
        <property name="saveDate" type="timestamp"/>
        <property name="visible" type="boolean"/>
        <property name="title" type="string">
            <column name="title" sql-type="TEXT"/>
        </property>
        <property name="description" type="string">
            <column name="description" sql-type="TEXT"/>
        </property>
        <property name="repositoryFileProxy"
                 type="pt.estgp.estgweb.domain.typesgenservices.repositorydocuments.EnhancedRepositoryFileProxy">
            <meta attribute="property-type">pt.estgp.estgweb.domain.typesgenservices.repositorydocuments.RepositoryFileProxy</meta>
            <column name="repositoryStream" sql-type="VARCHAR(255)"/>
        </property>
        <!--<property name="repositoryStream" type="string" index="repositoryStreamIndex">
           <column name="repositoryStream" sql-type="VARCHAR(255)"/>
       </property>-->

        <subclass name="pt.estgp.estgweb.domain.RepositoryDocumentFileImpl" discriminator-value="RepositoryDocumentFileImpl"/>
    </class>

    <class name="pt.estgp.estgweb.domain.RepositoryDocumentInterface" table="repositorydocumentinterface" abstract="true">
        <meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
        <meta attribute="scope-class">public abstract</meta>
        <id name="id" type="long">
            <generator class="native"/>
        </id>
        <discriminator column="discrimitator"/>
        <timestamp   name="updateDate" unsaved-value="null"/>
        <property name="saveDate" type="timestamp"/>
        <property name="visible" type="boolean"/>
        <property name="slug" type="string"/>
        <property name="adminDescription" type="string">
            <column name="admin_description" sql-type="TEXT"/>
        </property>
        <property name="repositoryInterface" type="pt.estgp.estgweb.domain.typesgen.repositorydocuments.EnhancedRepositoryInterface">
            <meta attribute="property-type">pt.estgp.estgweb.domain.typesgen.repositorydocuments.RepositoryInterface</meta>
            <column name="repositoryInterfaceJson" sql-type="TEXT"/>
        </property>
        <subclass name="pt.estgp.estgweb.domain.RepositoryDocumentInterfaceImpl" discriminator-value="RepositoryDocumentInterfaceImpl"/>
    </class>
</hibernate-mapping>