CacheObjectsMapper.java

package sk.iway.iwcm.components.memory_cleanup.cache_objects;

import org.apache.struts.util.ResponseUtils;
import org.springframework.stereotype.Component;
import sk.iway.iwcm.CacheBean;
import sk.iway.iwcm.doc.DocDetails;
import sk.iway.iwcm.stat.BrowserDetector;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Component
public class CacheObjectsMapper {

    List<CacheDto> beanListToDtoList(List<CacheBean> cacheBeans) {
        long counter = 0;
        List<CacheDto> cacheDtoList = new ArrayList<>();

        for (CacheBean bean : cacheBeans) {
            long size = bean.getName().length();
            CacheDto cacheDto = new CacheDto();

            cacheDto.setId(++counter);
            cacheDto.setName(bean.getName());
            cacheDto.setExpirationDate(new Date(bean.getExpiryTime()));

            try {
                cacheDto.setToStringObjectValue(bean.getObject().getClass().toString() + "\n" + ResponseUtils.filter(bean.getObject().toString()));

                if (bean.getObject() != null) {
                    if (bean.getObject() instanceof String) {
                        size = ((String) bean.getObject()).length() + 80;
                    } else if (bean.getObject() instanceof DocDetails) {
                        size = ((DocDetails) bean.getObject()).getData().length() + ((DocDetails) bean.getObject()).getTitle().length() + 80;
                        size = size * 2;
                    } else if (bean.getObject() instanceof BrowserDetector) {
                        size = ((BrowserDetector) bean.getObject()).getUserAgentString().length() + 80;
                    }
                }
            } catch (Exception ex) {
                size += 1000;
            }

            cacheDto.setSize(size);
            cacheDtoList.add(cacheDto);
        }

        return cacheDtoList;
    }
}