
com.hp.octane.integrations.dto.entities.impl.EntityImpl Maven / Gradle / Ivy
package com.hp.octane.integrations.dto.entities.impl;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonValue;
import com.hp.octane.integrations.dto.DTOFactory;
import com.hp.octane.integrations.dto.entities.Entity;
import com.hp.octane.integrations.dto.entities.EntityConstants;
import com.hp.octane.integrations.dto.entities.ResponseEntityList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class EntityImpl implements Entity {
private static final String COLLECTION_TOTAL_COUNT_FIELD = "total_count";
private static final String COLLECTION_DATA_FIELD = "data";
private Map fields = new HashMap<>();
private static final DTOFactory dtoFactory = DTOFactory.getInstance();
@Override
public Object getField(String fieldName) {
return fields.get(fieldName);
}
@JsonAnySetter
@Override
public Entity setField(String fieldName, Object fieldValue) {
Object myFieldValue = fieldValue;
if (fieldValue instanceof Map) {
Map map = (Map) fieldValue;
if (map.containsKey(EntityConstants.Base.TYPE_FIELD_NAME)) {
myFieldValue = deserializeEntityFromMap(map);
} else if (map.containsKey(COLLECTION_DATA_FIELD) && map.containsKey(COLLECTION_TOTAL_COUNT_FIELD)) {
myFieldValue = deserializeEntityListFromMap(map);
}
}
fields.put(fieldName, myFieldValue);
return this;
}
private ResponseEntityList deserializeEntityListFromMap(Map map) {
ResponseEntityList list = dtoFactory.newDTO(ResponseEntityList.class);
list.setTotalCount((int) map.get(COLLECTION_TOTAL_COUNT_FIELD));
List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy