All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.nuiton.topia.it.legacy.TopiaItLegacyBinderHelper Maven / Gradle / Ivy

The newest version!
package org.nuiton.topia.it.legacy;

/*-
 * #%L
 * ToPIA :: IT
 * %%
 * Copyright (C) 2004 - 2024 Code Lutin
 * %%
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Lesser Public License for more details.
 * 
 * You should have received a copy of the GNU General Lesser Public
 * License along with this program.  If not, see
 * .
 * #L%
 */

import org.nuiton.topia.it.legacy.test.ano1882.FrenchCompany;
import org.nuiton.topia.it.legacy.test.entities.Person;
import org.nuiton.topia.it.legacy.test.entities.Pet;
import org.nuiton.topia.it.legacy.test.entities.Race;
import org.nuiton.topia.it.legacy.topiatest.Address;
import org.nuiton.topia.it.legacy.topiatest.Bill;
import org.nuiton.topia.it.legacy.topiatest.Company;
import org.nuiton.topia.it.legacy.topiatest.Department;
import org.nuiton.topia.it.legacy.topiatest.Employe;
import org.nuiton.topia.it.legacy.topiatest.GeneralizedNaturalizedEntity;
import org.nuiton.topia.it.legacy.topiatest.NaturalizedEntity;
import org.nuiton.topia.it.legacy.topiatest.Personne;
import org.nuiton.topia.it.legacy.topiatest.Product;
import org.nuiton.topia.it.legacy.topiatest.QueriedEntity;
import org.nuiton.topia.it.legacy.topiatest.Store;
import org.nuiton.topia.it.legacy.topiatest.Type;
import org.nuiton.topia.it.legacy.topiatest.deletetest.Contact2;
import org.nuiton.topia.it.legacy.topiatest.deletetest.Telephone2;
import org.nuiton.topia.persistence.TopiaEntity;
import org.nuiton.topia.persistence.util.TopiaEntityBinder;
import org.nuiton.topia.persistence.util.TopiaEntityHelper;
import org.nuiton.util.beans.BinderFactory;
import org.nuiton.util.beans.BinderModelBuilder;

public class TopiaItLegacyBinderHelper extends BinderFactory {

    public static  TopiaEntityBinder getTopiaBinder(Class entityClass, String contextName) {
        return (TopiaEntityBinder) newBinder(entityClass, entityClass, contextName, TopiaEntityBinder.class);
    }

    public static  TopiaEntityBinder getSimpleTopiaBinder(Class entityClass) {
        return getTopiaBinder(entityClass, "TopiaItLegacy");
    }

    public static void registerTopiaBinder(BinderModelBuilder builder, String contextName) {
       registerBinderModel(builder, contextName);
    }

    public static  TopiaEntityBinder registerTopiaBinder(Class entityClass, BinderModelBuilder builder, String contextName) {
       registerBinderModel(builder, contextName);
       return getTopiaBinder(entityClass, contextName);
    }

    public static  void copy(String contextName, E source, E target, boolean tech) {
        Class entityClass = (Class) TopiaEntityHelper.getContractClass(TopiaItLegacyEntityEnum.values(), target.getClass());
        TopiaEntityBinder binder = getTopiaBinder(entityClass, contextName);
        if (binder == null) {
            throw new NullPointerException("Could not find a simple topia binder of type : " + target.getClass());
        }
        binder.load(source, target, tech);
    }

    public static  void simpleCopy(E source, E target, boolean tech) {
        Class entityClass = (Class) TopiaEntityHelper.getContractClass(TopiaItLegacyEntityEnum.values(), target.getClass());
        TopiaEntityBinder binder = getSimpleTopiaBinder(entityClass);
        if (binder == null) {
            throw new NullPointerException("Could not find a simple topia binder of type : " + target.getClass());
        }
        binder.load(source, target, tech);
    }

    protected static void initBinders() {
        BinderModelBuilder builderFrenchCompany =
            BinderModelBuilder.newEmptyBuilder(FrenchCompany.class);
        builderFrenchCompany.addSimpleProperties(
            FrenchCompany.PROPERTY_S_IREN,
            FrenchCompany.PROPERTY_SIREN2
        );
        registerTopiaBinder(builderFrenchCompany, "TopiaItLegacy");
    
        BinderModelBuilder builderPerson =
            BinderModelBuilder.newEmptyBuilder(Person.class);
        builderPerson.addSimpleProperties(
            Person.PROPERTY_NAME,
            Person.PROPERTY_FIRSTNAME
        );
        registerTopiaBinder(builderPerson, "TopiaItLegacy");
    
        BinderModelBuilder builderPet =
            BinderModelBuilder.newEmptyBuilder(Pet.class);
        builderPet.addSimpleProperties(
            Pet.PROPERTY_RACE,
            Pet.PROPERTY_PERSON,
            Pet.PROPERTY_TYPE,
            Pet.PROPERTY_NAME
        );
        registerTopiaBinder(builderPet, "TopiaItLegacy");
    
        BinderModelBuilder builderRace =
            BinderModelBuilder.newEmptyBuilder(Race.class);
        builderRace.addSimpleProperties(
            Race.PROPERTY_NAME
        );
        registerTopiaBinder(builderRace, "TopiaItLegacy");
    
        BinderModelBuilder builderAddress =
            BinderModelBuilder.newEmptyBuilder(Address.class);
        builderAddress.addSimpleProperties(
            Address.PROPERTY_CITY,
            Address.PROPERTY_ADRESS
        );
        registerTopiaBinder(builderAddress, "TopiaItLegacy");
    
        BinderModelBuilder builderBill =
            BinderModelBuilder.newEmptyBuilder(Bill.class);
        builderBill.addSimpleProperties(
            Bill.PROPERTY_DATE,
            Bill.PROPERTY_PAID,
            Bill.PROPERTY_COST
        );
        registerTopiaBinder(builderBill, "TopiaItLegacy");
    
        BinderModelBuilder builderCompany =
            BinderModelBuilder.newEmptyBuilder(Company.class);
        builderCompany.addSimpleProperties(
            Company.PROPERTY_SIRET,
            Company.PROPERTY_NAME
        );
        registerTopiaBinder(builderCompany, "TopiaItLegacy");
    
        BinderModelBuilder builderDepartment =
            BinderModelBuilder.newEmptyBuilder(Department.class);
        builderDepartment.addSimpleProperties(
            Department.PROPERTY_LEADER,
            Department.PROPERTY_NAME,
            Department.PROPERTY_COMPANY
        );
        registerTopiaBinder(builderDepartment, "TopiaItLegacy");
    
        BinderModelBuilder builderEmploye =
            BinderModelBuilder.newEmptyBuilder(Employe.class);
        builderEmploye.addSimpleProperties(
            Employe.PROPERTY_OTHER_GENDER,
            Employe.PROPERTY_ADDRESS,
            Employe.PROPERTY_SALARY,
            Employe.PROPERTY_NAME,
            Employe.PROPERTY_GENDER
        );
        registerTopiaBinder(builderEmploye, "TopiaItLegacy");
    
        BinderModelBuilder builderGeneralizedNaturalizedEntity =
            BinderModelBuilder.newEmptyBuilder(GeneralizedNaturalizedEntity.class);
        builderGeneralizedNaturalizedEntity.addSimpleProperties(
            GeneralizedNaturalizedEntity.PROPERTY_NATURAL_ID_NULL,
            GeneralizedNaturalizedEntity.PROPERTY_NATURAL_ID_NOT_NULL
        );
        registerTopiaBinder(builderGeneralizedNaturalizedEntity, "TopiaItLegacy");
    
        BinderModelBuilder builderNaturalizedEntity =
            BinderModelBuilder.newEmptyBuilder(NaturalizedEntity.class);
        builderNaturalizedEntity.addSimpleProperties(
            NaturalizedEntity.PROPERTY_NATURAL_ID_NULL,
            NaturalizedEntity.PROPERTY_NATURAL_ID_NOT_NULL
        );
        registerTopiaBinder(builderNaturalizedEntity, "TopiaItLegacy");
    
        BinderModelBuilder builderPersonne =
            BinderModelBuilder.newEmptyBuilder(Personne.class);
        builderPersonne.addSimpleProperties(
            Personne.PROPERTY_OTHER_GENDER,
            Personne.PROPERTY_ADDRESS,
            Personne.PROPERTY_NAME,
            Personne.PROPERTY_GENDER
        );
        registerTopiaBinder(builderPersonne, "TopiaItLegacy");
    
        BinderModelBuilder builderProduct =
            BinderModelBuilder.newEmptyBuilder(Product.class);
        builderProduct.addSimpleProperties(
            Product.PROPERTY_NAME,
            Product.PROPERTY_TYPE
        );
        registerTopiaBinder(builderProduct, "TopiaItLegacy");
    
        BinderModelBuilder builderQueriedEntity =
            BinderModelBuilder.newEmptyBuilder(QueriedEntity.class);
        builderQueriedEntity.addSimpleProperties(
            QueriedEntity.PROPERTY_TEST_ADD
        );
        registerTopiaBinder(builderQueriedEntity, "TopiaItLegacy");
    
        BinderModelBuilder builderStore =
            BinderModelBuilder.newEmptyBuilder(Store.class);
        builderStore.addSimpleProperties(
            Store.PROPERTY_NAME
        );
        registerTopiaBinder(builderStore, "TopiaItLegacy");
    
        BinderModelBuilder builderType =
            BinderModelBuilder.newEmptyBuilder(Type.class);
        builderType.addSimpleProperties(
            Type.PROPERTY_NAME
        );
        registerTopiaBinder(builderType, "TopiaItLegacy");
    
        BinderModelBuilder builderContact2 =
            BinderModelBuilder.newEmptyBuilder(Contact2.class);
        builderContact2.addSimpleProperties(
            Contact2.PROPERTY_CONTACT_VALUE,
            Contact2.PROPERTY_TYPE
        );
        registerTopiaBinder(builderContact2, "TopiaItLegacy");
    
        BinderModelBuilder builderTelephone2 =
            BinderModelBuilder.newEmptyBuilder(Telephone2.class);
        builderTelephone2.addSimpleProperties(
            Telephone2.PROPERTY_CONTACT_VALUE,
            Telephone2.PROPERTY_TYPE,
            Telephone2.PROPERTY_COUNTRY,
            Telephone2.PROPERTY_PREFIX
        );
        registerTopiaBinder(builderTelephone2, "TopiaItLegacy");
    }

    static {
    
        initBinders();

    }

} //TopiaItLegacyBinderHelper




© 2015 - 2025 Weber Informatics LLC | Privacy Policy