Search in sources :

Example 26 with Mapper

use of com.axelor.db.mapper.Mapper in project axelor-open-suite by axelor.

the class DataBackupRestoreService method importObjectWithByteArray.

public Object importObjectWithByteArray(Object bean, Map<String, Object> values) throws IOException {
    assert bean instanceof Model;
    final Path path = (Path) values.get("__path__");
    Mapper mapper = Mapper.of(bean.getClass());
    for (String fieldName : values.keySet()) {
        if (fieldName.startsWith("byte_")) {
            String fileName = (String) values.get(fieldName);
            if (Strings.isNullOrEmpty((fileName))) {
                return bean;
            }
            try {
                final File image = path.resolve(fileName).toFile();
                byte[] bytes = new byte[(int) image.length()];
                bytes = java.nio.file.Files.readAllBytes(image.toPath());
                mapper.set(bean, fieldName.substring(5), bytes);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    return bean;
}
Also used : Path(java.nio.file.Path) Mapper(com.axelor.db.mapper.Mapper) Model(com.axelor.db.Model) File(java.io.File) MetaFile(com.axelor.meta.db.MetaFile) IOException(java.io.IOException)

Example 27 with Mapper

use of com.axelor.db.mapper.Mapper in project axelor-open-suite by axelor.

the class ObjectDataConfigExportManagementRepository method save.

@Override
public ObjectDataConfigExport save(ObjectDataConfigExport entity) {
    try {
        Class<? extends Model> klass = (Class<? extends Model>) Class.forName(entity.getModelSelect());
        JpaRepository<? extends Model> repo = JpaRepository.of(klass);
        Object obj = repo.all().filter("self.id = ?", entity.getModelSelectId()).fetchOne();
        if (obj != null) {
            Mapper mapper = Mapper.of(obj.getClass());
            if (mapper.getNameField() != null && mapper.getNameField().get(obj) != null) {
                entity.setRecordName(mapper.getNameField().get(obj).toString());
            } else {
                entity.setRecordName(mapper.get(obj, "id").toString());
            }
        }
    } catch (ClassNotFoundException e) {
        TraceBackService.trace(e);
    }
    return super.save(entity);
}
Also used : Mapper(com.axelor.db.mapper.Mapper) Model(com.axelor.db.Model)

Example 28 with Mapper

use of com.axelor.db.mapper.Mapper in project axelor-open-suite by axelor.

the class WkfCommonServiceImpl method addProperties.

@Override
public Model addProperties(Map<String, String> propertyMap, Model model, ModelElementInstance element) {
    Mapper mapper = Mapper.of(EntityHelper.getEntityClass(model));
    for (String property : propertyMap.keySet()) {
        Object value = element.getAttributeValueNs(BpmnParser.CAMUNDA_BPMN_EXTENSIONS_NS, propertyMap.get(property));
        if (value != null && value.equals("undefined")) {
            value = null;
        }
        Property field = mapper.getProperty(property);
        if (field.isReference()) {
            try {
                value = JpaRepository.of((Class<? extends Model>) field.getTarget()).all().filter("self.name = ?1", value).fetchOne();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        mapper.set(model, property, value);
    }
    return model;
}
Also used : Mapper(com.axelor.db.mapper.Mapper) Property(com.axelor.db.mapper.Property) AxelorException(com.axelor.exception.AxelorException)

Example 29 with Mapper

use of com.axelor.db.mapper.Mapper in project axelor-open-suite by axelor.

the class ProductCompanyServiceImpl method get.

@Override
@CallMethod
public Object get(Product originalProduct, String fieldName, Company company) throws AxelorException {
    Mapper mapper = Mapper.of(Product.class);
    Product product = findAppropriateProductCompany(originalProduct, fieldName, company);
    return mapper.get(product, fieldName);
}
Also used : Mapper(com.axelor.db.mapper.Mapper) Product(com.axelor.apps.base.db.Product) CallMethod(com.axelor.meta.CallMethod)

Example 30 with Mapper

use of com.axelor.db.mapper.Mapper in project axelor-open-suite by axelor.

the class ProductCompanyServiceImpl method set.

@Override
@CallMethod
public void set(Product originalProduct, String fieldName, Object fieldValue, Company company) throws AxelorException {
    Mapper mapper = Mapper.of(Product.class);
    Product product = findAppropriateProductCompany(originalProduct, fieldName, company);
    mapper.set(product, fieldName, fieldValue);
}
Also used : Mapper(com.axelor.db.mapper.Mapper) Product(com.axelor.apps.base.db.Product) CallMethod(com.axelor.meta.CallMethod)

Aggregations

Mapper (com.axelor.db.mapper.Mapper)44 Property (com.axelor.db.mapper.Property)19 AxelorException (com.axelor.exception.AxelorException)13 Model (com.axelor.db.Model)12 MetaField (com.axelor.meta.db.MetaField)10 ArrayList (java.util.ArrayList)10 MetaModel (com.axelor.meta.db.MetaModel)7 File (java.io.File)6 IOException (java.io.IOException)6 FileField (com.axelor.apps.base.db.FileField)5 Transactional (com.google.inject.persist.Transactional)5 TraceBackService (com.axelor.exception.service.TraceBackService)4 MetaFiles (com.axelor.meta.MetaFiles)4 MetaModelRepository (com.axelor.meta.db.repo.MetaModelRepository)4 List (java.util.List)4 Inflector (com.axelor.common.Inflector)3 MetaFile (com.axelor.meta.db.MetaFile)3 MetaJsonField (com.axelor.meta.db.MetaJsonField)3 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)3 Strings (com.google.common.base.Strings)3