use of com.agiletec.aps.system.common.entity.IEntityManager in project entando-core by entando.
the class ApiEntityTypeInterface method addEntityType.
public StringApiResponse addEntityType(JAXBEntityType jaxbEntityType) throws Throwable {
StringApiResponse response = new StringApiResponse();
try {
IEntityManager manager = this.getEntityManager();
String typeCode = jaxbEntityType.getTypeCode();
IApsEntity masterEntityType = manager.getEntityPrototype(typeCode);
if (null != masterEntityType) {
throw new ApiException(IApiErrorCodes.API_VALIDATION_ERROR, this.getTypeLabel() + " with code '" + typeCode + "' already exists");
}
if (typeCode == null || typeCode.length() != 3) {
throw new ApiException(IApiErrorCodes.API_VALIDATION_ERROR, "Invalid type code - '" + typeCode + "'");
}
Map<String, AttributeInterface> attributes = manager.getEntityAttributePrototypes();
IApsEntity newEntityType = jaxbEntityType.buildEntityType(manager.getEntityClass(), attributes);
this.checkNewEntityType(jaxbEntityType, newEntityType, response);
((IEntityTypesConfigurer) manager).addEntityPrototype(newEntityType);
response.setResult(IResponseBuilder.SUCCESS, null);
} catch (ApiException ae) {
response.addErrors(ae.getErrors());
response.setResult(IResponseBuilder.FAILURE, null);
} catch (Throwable t) {
_logger.error("Error extracting entity type", t);
// ApsSystemUtils.logThrowable(t, this, "getEntityType");
throw new ApsSystemException("Error extracting entity type", t);
}
return response;
}
use of com.agiletec.aps.system.common.entity.IEntityManager in project entando-core by entando.
the class ApiEntityTypeInterface method getEntityType.
public JAXBEntityType getEntityType(Properties properties) throws Throwable {
JAXBEntityType jaxbEntityType = null;
try {
IEntityManager manager = this.getEntityManager();
String typeCode = properties.getProperty(this.getTypeCodeParamName());
IApsEntity masterEntityType = manager.getEntityPrototype(typeCode);
if (null == masterEntityType) {
throw new ApiException(IApiErrorCodes.API_VALIDATION_ERROR, this.getTypeLabel() + " with code '" + typeCode + "' does not exist");
}
jaxbEntityType = this.createJAXBEntityType(masterEntityType);
} catch (ApiException ae) {
throw ae;
} catch (Throwable t) {
_logger.error("Error extracting entity type", t);
// ApsSystemUtils.logThrowable(t, this, "getEntityType");
throw new ApsSystemException("Error extracting entity type", t);
}
return jaxbEntityType;
}
use of com.agiletec.aps.system.common.entity.IEntityManager in project entando-core by entando.
the class ApiEntityTypeInterface method getEntityTypes.
public StringListApiResponse getEntityTypes(Properties properties) throws Throwable {
StringListApiResponse response = new StringListApiResponse();
try {
IEntityManager manager = this.getEntityManager();
Map<String, IApsEntity> prototypes = manager.getEntityPrototypes();
List<String> codes = new ArrayList<String>();
codes.addAll(prototypes.keySet());
Collections.sort(codes);
response.setResult(codes, null);
} catch (Throwable t) {
_logger.error("Error extracting entity type codes", t);
// ApsSystemUtils.logThrowable(t, this, "getEntityTypes");
throw new ApsSystemException("Error extracting entity type codes", t);
}
return response;
}
use of com.agiletec.aps.system.common.entity.IEntityManager in project entando-core by entando.
the class AbstractEntityService method addEntityType.
protected synchronized O addEntityType(String entityManagerCode, EntityTypeDtoRequest bodyRequest, BindingResult bindingResult) {
O response = null;
IEntityManager entityManager = this.extractEntityManager(entityManagerCode);
try {
IDtoBuilder<I, O> builder = this.getEntityTypeFullDtoBuilder(entityManager);
if (null != entityManager.getEntityPrototype(bodyRequest.getCode())) {
this.addError(EntityTypeValidator.ERRCODE_ENTITY_TYPE_ALREADY_EXISTS, bindingResult, new String[] { bodyRequest.getCode() }, "entityType.exists");
}
I entityPrototype = this.createEntityType(entityManager, bodyRequest, bindingResult);
if (bindingResult.hasErrors()) {
return response;
} else {
((IEntityTypesConfigurer) entityManager).addEntityPrototype(entityPrototype);
response = builder.convert(entityPrototype);
}
} catch (Throwable e) {
logger.error("Error adding entity type", e);
throw new RestServerError("error add entity type", e);
}
return response;
}
use of com.agiletec.aps.system.common.entity.IEntityManager in project entando-core by entando.
the class AbstractEntityService method getFullEntityType.
protected O getFullEntityType(String entityManagerCode, String entityTypeCode) {
IEntityManager entityManager = this.extractEntityManager(entityManagerCode);
I entityType = (I) entityManager.getEntityPrototype(entityTypeCode);
if (null == entityManager) {
logger.warn("no entity type found with code {}", entityTypeCode);
throw new RestRourceNotFoundException("entityTypeCode", entityTypeCode);
}
O type = this.convertEntityType(entityManager, entityType);
type.setStatus(String.valueOf(entityManager.getStatus(entityTypeCode)));
return type;
}
Aggregations