Package lv.odylab.evemanage.application

Source Code of lv.odylab.evemanage.application.EveManageDtoMapperImpl

package lv.odylab.evemanage.application;

import lv.odylab.eveapi.parser.method.account.character.ApiAccountCharacterRow;
import lv.odylab.eveapi.parser.method.character.sheet.ApiCharacterGenericRow;
import lv.odylab.eveapi.parser.method.character.sheet.ApiCharacterSheetResult;
import lv.odylab.eveapi.parser.method.common.accbalance.ApiAccountBalanceRow;
import lv.odylab.eveapi.parser.method.common.industryjob.ApiIndustryJobRow;
import lv.odylab.eveapi.parser.method.corporation.sheet.ApiCorporationSheetResult;
import lv.odylab.evecentralapi.parser.method.marketstat.MarketStatType;
import lv.odylab.evedb.rpc.dto.InvBlueprintTypeDto;
import lv.odylab.evedb.rpc.dto.InvTypeBasicInfoDto;
import lv.odylab.evedb.rpc.dto.InvTypeMaterialDto;
import lv.odylab.evedb.rpc.dto.RamTypeRequirementDto;
import lv.odylab.evemanage.application.exception.validation.InvalidPriceException;
import lv.odylab.evemanage.client.rpc.PathExpression;
import lv.odylab.evemanage.client.rpc.dto.ItemTypeDto;
import lv.odylab.evemanage.client.rpc.dto.blueprint.BlueprintDto;
import lv.odylab.evemanage.client.rpc.dto.blueprint.MaterialDto;
import lv.odylab.evemanage.client.rpc.dto.blueprint.RequirementDto;
import lv.odylab.evemanage.client.rpc.dto.calculation.CalculationDto;
import lv.odylab.evemanage.client.rpc.dto.calculation.CalculationItemDto;
import lv.odylab.evemanage.client.rpc.dto.eve.ApiKeyCharacterInfoDto;
import lv.odylab.evemanage.client.rpc.dto.eve.ApiKeyDto;
import lv.odylab.evemanage.client.rpc.dto.eve.CharacterDto;
import lv.odylab.evemanage.client.rpc.dto.eve.CharacterInfoDto;
import lv.odylab.evemanage.client.rpc.dto.eve.CharacterNameDto;
import lv.odylab.evemanage.client.rpc.dto.priceset.PriceSetDto;
import lv.odylab.evemanage.client.rpc.dto.priceset.PriceSetItemDto;
import lv.odylab.evemanage.client.rpc.dto.priceset.PriceSetNameDto;
import lv.odylab.evemanage.client.rpc.dto.user.UserDto;
import lv.odylab.evemanage.domain.blueprint.Blueprint;
import lv.odylab.evemanage.domain.calculation.Calculation;
import lv.odylab.evemanage.domain.calculation.CalculationItem;
import lv.odylab.evemanage.domain.eve.ApiKey;
import lv.odylab.evemanage.domain.eve.ApiKeyCharacterInfo;
import lv.odylab.evemanage.domain.eve.Character;
import lv.odylab.evemanage.domain.priceset.PriceSet;
import lv.odylab.evemanage.domain.priceset.PriceSetItem;
import lv.odylab.evemanage.domain.user.CharacterInfo;
import lv.odylab.evemanage.domain.user.User;
import lv.odylab.evemanage.integration.eveapi.dto.AccountBalanceDto;
import lv.odylab.evemanage.integration.eveapi.dto.AccountCharacterDto;
import lv.odylab.evemanage.integration.eveapi.dto.CharacterSheetDto;
import lv.odylab.evemanage.integration.eveapi.dto.CorporationSheetDto;
import lv.odylab.evemanage.integration.eveapi.dto.IndustryJobDto;
import lv.odylab.evemanage.integration.evecentralapi.dto.MarketStatDto;
import lv.odylab.evemanage.integration.evedb.dto.BlueprintDetailsDto;
import lv.odylab.evemanage.integration.evedb.dto.BlueprintTypeDto;
import lv.odylab.evemanage.integration.evedb.dto.TypeMaterialDto;
import lv.odylab.evemanage.integration.evedb.dto.TypeRequirementDto;
import lv.odylab.evemanage.integration.evemetricsapi.dto.ItemPriceDto;
import lv.odylab.evemanage.service.priceset.PriceSetItemDtoComparator;
import lv.odylab.evemetricsapi.parser.method.itemprice.ItemPriceType;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class EveManageDtoMapperImpl implements EveManageDtoMapper {

    @Override
    public UserDto map(User user, Class<UserDto> userDtoClass) {
        UserDto userDto = new UserDto();
        userDto.setId(user.getId());
        CharacterInfo mainCharacterInfo = user.getMainCharacterInfo();
        if (mainCharacterInfo != null) {
            CharacterDto mainCharacter = map(mainCharacterInfo, CharacterDto.class);
            userDto.setMainCharacter(mainCharacter);
        }
        return userDto;
    }

    @Override
    public BlueprintDto map(Blueprint blueprint, Class<BlueprintDto> blueprintDtoClass) {
        BlueprintDto blueprintDto = new BlueprintDto();
        blueprintDto.setId(blueprint.getId());
        blueprintDto.setItemID(blueprint.getItemID());
        blueprintDto.setItemTypeID(blueprint.getItemTypeID());
        blueprintDto.setItemTypeName(blueprint.getItemTypeName());
        blueprintDto.setProductTypeID(blueprint.getProductTypeID());
        blueprintDto.setProductTypeName(blueprint.getProductTypeName());
        blueprintDto.setProductCategoryID(blueprint.getProductTypeCategoryID());
        blueprintDto.setProductGraphicIcon(blueprint.getProductGraphicIcon());
        blueprintDto.setProductivityLevel(blueprint.getProductivityLevel());
        blueprintDto.setMaterialLevel(blueprint.getMaterialLevel());
        if (blueprint.getAttachedCharacterInfo() != null) {
            blueprintDto.setAttachedCharacterInfo(mapForCharacterInfo(blueprint.getAttachedCharacterInfo(), CharacterInfoDto.class));
        }
        blueprintDto.setSharingLevel(blueprint.getSharingLevel());
        return blueprintDto;
    }

    @Override
    public MaterialDto map(TypeMaterialDto typeMaterial, Class<MaterialDto> blueprintMaterialDtoClass) {
        MaterialDto materialDto = new MaterialDto();
        materialDto.setMaterialTypeID(typeMaterial.getMaterialTypeID());
        materialDto.setMaterialTypeName(typeMaterial.getMaterialTypeName());
        materialDto.setMaterialTypeCategoryID(typeMaterial.getMaterialTypeCategoryID());
        materialDto.setQuantity(typeMaterial.getQuantity());
        materialDto.setMaterialTypeGraphicIcon(typeMaterial.getMaterialTypeGraphicIcon());
        return materialDto;
    }

    @Override
    public TypeMaterialDto map(InvTypeMaterialDto invTypeMaterialDto, Class<TypeMaterialDto> typeMaterialDtoClass) {
        TypeMaterialDto typeMaterialDto = new TypeMaterialDto();
        typeMaterialDto.setMaterialTypeID(invTypeMaterialDto.getMaterialTypeID());
        typeMaterialDto.setMaterialTypeName(invTypeMaterialDto.getMaterialTypeName());
        typeMaterialDto.setMaterialTypeCategoryID(invTypeMaterialDto.getMaterialTypeCategoryID());
        typeMaterialDto.setQuantity(invTypeMaterialDto.getQuantity());
        typeMaterialDto.setMaterialTypeGraphicIcon(invTypeMaterialDto.getMaterialTypeIcon());
        return typeMaterialDto;
    }

    @Override
    public MaterialDto map(InvTypeMaterialDto invTypeMaterialDto, Class<MaterialDto> materialDtoClass) {
        MaterialDto materialDto = new MaterialDto();
        materialDto.setMaterialTypeID(invTypeMaterialDto.getMaterialTypeID());
        materialDto.setMaterialTypeName(invTypeMaterialDto.getMaterialTypeName());
        materialDto.setMaterialTypeCategoryID(invTypeMaterialDto.getMaterialTypeCategoryID());
        materialDto.setQuantity(invTypeMaterialDto.getQuantity());
        materialDto.setMaterialTypeGraphicIcon(invTypeMaterialDto.getMaterialTypeIcon());
        return materialDto;
    }

    @Override
    public RequirementDto map(RamTypeRequirementDto ramTypeRequirementDto, Class<RequirementDto> requirementDtoClass) {
        RequirementDto requirementDto = new RequirementDto();
        requirementDto.setActivityID(ramTypeRequirementDto.getActivityID());
        requirementDto.setActivityName(ramTypeRequirementDto.getActivityName());
        requirementDto.setRequiredTypeID(ramTypeRequirementDto.getRequiredTypeID());
        requirementDto.setRequiredTypeName(ramTypeRequirementDto.getRequiredTypeName());
        requirementDto.setRequiredTypeCategoryID(ramTypeRequirementDto.getRequiredTypeCategoryID());
        requirementDto.setRequiredTypeGroupID(ramTypeRequirementDto.getRequiredTypeGroupID());
        requirementDto.setRequiredTypeGroupName(ramTypeRequirementDto.getRequiredTypeGroupName());
        requirementDto.setQuantity(ramTypeRequirementDto.getQuantity());
        requirementDto.setDamagePerJob(new BigDecimal(ramTypeRequirementDto.getDamagePerJob()));
        requirementDto.setRequiredTypeNameGraphicIcon(ramTypeRequirementDto.getRequiredTypeIcon());
        return requirementDto;
    }

    @Override
    public BlueprintDetailsDto map(lv.odylab.evedb.rpc.dto.BlueprintDetailsDto blueprintDetailsDto, Class<BlueprintDetailsDto> blueprintDetailsDtoClass) {
        BlueprintDetailsDto blueprintDetails = new BlueprintDetailsDto();
        blueprintDetails.setBlueprintTypeDto(map(blueprintDetailsDto.getInvBlueprintTypeDto(), BlueprintTypeDto.class));

        List<TypeMaterialDto> materialDtos = new ArrayList<TypeMaterialDto>();
        for (InvTypeMaterialDto invTypeMaterialDto : blueprintDetailsDto.getMaterialDtos()) {
            materialDtos.add(map(invTypeMaterialDto, TypeMaterialDto.class));
        }
        List<TypeRequirementDto> manufacturingRequirementDtos = new ArrayList<TypeRequirementDto>();
        for (RamTypeRequirementDto ramTypeRequirementDto : blueprintDetailsDto.getManufacturingRequirementDtos()) {
            manufacturingRequirementDtos.add(map(ramTypeRequirementDto, TypeRequirementDto.class));
        }
        List<TypeRequirementDto> timeProductivityRequirementDtos = new ArrayList<TypeRequirementDto>();
        for (RamTypeRequirementDto ramTypeRequirementDto : blueprintDetailsDto.getTimeProductivityRequirementDtos()) {
            timeProductivityRequirementDtos.add(map(ramTypeRequirementDto, TypeRequirementDto.class));
        }
        List<TypeRequirementDto> materialProductivityRequirementDtos = new ArrayList<TypeRequirementDto>();
        for (RamTypeRequirementDto ramTypeRequirementDto : blueprintDetailsDto.getMaterialProductivityRequirementDtos()) {
            materialProductivityRequirementDtos.add(map(ramTypeRequirementDto, TypeRequirementDto.class));
        }
        List<TypeRequirementDto> copyingRequirementDtos = new ArrayList<TypeRequirementDto>();
        for (RamTypeRequirementDto ramTypeRequirementDto : blueprintDetailsDto.getCopyingRequirementDtos()) {
            copyingRequirementDtos.add(map(ramTypeRequirementDto, TypeRequirementDto.class));
        }
        List<TypeRequirementDto> reverseEngineeringRequirementDtos = new ArrayList<TypeRequirementDto>();
        for (RamTypeRequirementDto ramTypeRequirementDto : blueprintDetailsDto.getReverseEngineeringRequirementDtos()) {
            reverseEngineeringRequirementDtos.add(map(ramTypeRequirementDto, TypeRequirementDto.class));
        }
        List<TypeRequirementDto> inventionRequirementDtos = new ArrayList<TypeRequirementDto>();
        for (RamTypeRequirementDto ramTypeRequirementDto : blueprintDetailsDto.getInventionRequirementDtos()) {
            inventionRequirementDtos.add(map(ramTypeRequirementDto, TypeRequirementDto.class));
        }
        blueprintDetails.setMaterialDtos(materialDtos);
        blueprintDetails.setManufacturingRequirementDtos(manufacturingRequirementDtos);
        blueprintDetails.setTimeProductivityRequirementDtos(timeProductivityRequirementDtos);
        blueprintDetails.setMaterialProductivityRequirementDtos(materialProductivityRequirementDtos);
        blueprintDetails.setCopyingRequirementDtos(copyingRequirementDtos);
        blueprintDetails.setReverseEngineeringRequirementDtos(reverseEngineeringRequirementDtos);
        blueprintDetails.setInventionRequirementDtos(inventionRequirementDtos);
        return blueprintDetails;
    }

    @Override
    public lv.odylab.evemanage.client.rpc.dto.blueprint.BlueprintDetailsDto map(BlueprintDetailsDto blueprintDetailsDto, Class<lv.odylab.evemanage.client.rpc.dto.blueprint.BlueprintDetailsDto> blueprintDetailsDtoClass) {
        lv.odylab.evemanage.client.rpc.dto.blueprint.BlueprintDetailsDto blueprintDetails = new lv.odylab.evemanage.client.rpc.dto.blueprint.BlueprintDetailsDto();
        BlueprintTypeDto blueprintTypeDto = blueprintDetailsDto.getBlueprintTypeDto();
        blueprintDetails.setBlueprintTypeID(blueprintTypeDto.getBlueprintTypeID());
        blueprintDetails.setBlueprintTypeName(blueprintTypeDto.getBlueprintTypeName());
        blueprintDetails.setTechLevel(blueprintTypeDto.getTechLevel());
        blueprintDetails.setProductionTime(blueprintTypeDto.getProductionTime());
        blueprintDetails.setResearchProductivityTime(blueprintTypeDto.getResearchProductivityTime());
        blueprintDetails.setResearchMaterialTime(blueprintTypeDto.getResearchMaterialTime());
        blueprintDetails.setResearchCopyTime(blueprintTypeDto.getResearchCopyTime());
        blueprintDetails.setResearchTechTime(blueprintTypeDto.getResearchTechTime());
        blueprintDetails.setProductivityModifier(blueprintTypeDto.getProductivityModifier());
        blueprintDetails.setWasteFactor(blueprintTypeDto.getWasteFactor());

        List<MaterialDto> materials = new ArrayList<MaterialDto>();
        for (TypeMaterialDto typeMaterialDto : blueprintDetailsDto.getMaterialDtos()) {
            materials.add(map(typeMaterialDto, MaterialDto.class));
        }
        List<RequirementDto> manufacturingRequirements = new ArrayList<RequirementDto>();
        for (TypeRequirementDto requirementDto : blueprintDetailsDto.getManufacturingRequirementDtos()) {
            manufacturingRequirements.add(map(requirementDto, RequirementDto.class));
        }
        List<RequirementDto> timeProductivityRequirements = new ArrayList<RequirementDto>();
        for (TypeRequirementDto requirementDto : blueprintDetailsDto.getTimeProductivityRequirementDtos()) {
            timeProductivityRequirements.add(map(requirementDto, RequirementDto.class));
        }
        List<RequirementDto> materialProductivityRequirements = new ArrayList<RequirementDto>();
        for (TypeRequirementDto requirementDto : blueprintDetailsDto.getMaterialProductivityRequirementDtos()) {
            materialProductivityRequirements.add(map(requirementDto, RequirementDto.class));
        }
        List<RequirementDto> copyingRequirements = new ArrayList<RequirementDto>();
        for (TypeRequirementDto requirementDto : blueprintDetailsDto.getCopyingRequirementDtos()) {
            copyingRequirements.add(map(requirementDto, RequirementDto.class));
        }
        List<RequirementDto> reverseEngineeringRequirements = new ArrayList<RequirementDto>();
        for (TypeRequirementDto requirementDto : blueprintDetailsDto.getReverseEngineeringRequirementDtos()) {
            reverseEngineeringRequirements.add(map(requirementDto, RequirementDto.class));
        }
        List<RequirementDto> inventionRequirements = new ArrayList<RequirementDto>();
        for (TypeRequirementDto requirementDto : blueprintDetailsDto.getInventionRequirementDtos()) {
            inventionRequirements.add(map(requirementDto, RequirementDto.class));
        }
        blueprintDetails.setMaterials(materials);
        blueprintDetails.setManufacturingRequirements(manufacturingRequirements);
        blueprintDetails.setTimeProductivityRequirements(timeProductivityRequirements);
        blueprintDetails.setMaterialProductivityRequirements(materialProductivityRequirements);
        blueprintDetails.setCopyingRequirements(copyingRequirements);
        blueprintDetails.setReverseEngineeringRequirements(reverseEngineeringRequirements);
        blueprintDetails.setInventionRequirements(inventionRequirements);
        return blueprintDetails;
    }

    @Override
    public TypeRequirementDto map(RamTypeRequirementDto ramTypeRequirementDto, Class<TypeRequirementDto> typeRequirementDtoClass) {
        TypeRequirementDto typeRequirementDto = new TypeRequirementDto();
        typeRequirementDto.setActivityID(ramTypeRequirementDto.getActivityID());
        typeRequirementDto.setActivityName(ramTypeRequirementDto.getActivityName());
        typeRequirementDto.setRequiredTypeID(ramTypeRequirementDto.getRequiredTypeID());
        typeRequirementDto.setRequiredTypeName(ramTypeRequirementDto.getRequiredTypeName());
        typeRequirementDto.setRequiredTypeCategoryID(ramTypeRequirementDto.getRequiredTypeCategoryID());
        typeRequirementDto.setRequiredTypeGroupID(ramTypeRequirementDto.getRequiredTypeGroupID());
        typeRequirementDto.setRequiredTypeGroupName(ramTypeRequirementDto.getRequiredTypeGroupName());
        typeRequirementDto.setQuantity(ramTypeRequirementDto.getQuantity());
        typeRequirementDto.setDamagePerJob(ramTypeRequirementDto.getDamagePerJob());
        typeRequirementDto.setRequiredTypeNameGraphicIcon(ramTypeRequirementDto.getRequiredTypeIcon());
        return typeRequirementDto;
    }

    @Override
    public RequirementDto map(TypeRequirementDto typeRequirementDto, Class<RequirementDto> requirementDtoClass) {
        RequirementDto requirementDto = new RequirementDto();
        requirementDto.setActivityID(typeRequirementDto.getActivityID());
        requirementDto.setActivityName(typeRequirementDto.getActivityName());
        requirementDto.setRequiredTypeID(typeRequirementDto.getRequiredTypeID());
        requirementDto.setRequiredTypeName(typeRequirementDto.getRequiredTypeName());
        requirementDto.setRequiredTypeCategoryID(typeRequirementDto.getRequiredTypeCategoryID());
        requirementDto.setRequiredTypeGroupID(typeRequirementDto.getRequiredTypeGroupID());
        requirementDto.setRequiredTypeGroupName(typeRequirementDto.getRequiredTypeGroupName());
        requirementDto.setQuantity(typeRequirementDto.getQuantity());
        requirementDto.setDamagePerJob(new BigDecimal(typeRequirementDto.getDamagePerJob()));
        requirementDto.setRequiredTypeNameGraphicIcon(typeRequirementDto.getRequiredTypeNameGraphicIcon());
        return requirementDto;
    }

    @Override
    public PriceSetItem map(PriceSetItemDto priceSetItemDto, Class<PriceSetItem> priceSetItemClass) throws InvalidPriceException {
        PriceSetItem priceSetItem = new PriceSetItem();
        priceSetItem.setItemTypeID(priceSetItemDto.getItemTypeID());
        priceSetItem.setItemCategoryID(priceSetItemDto.getItemCategoryID());
        priceSetItem.setItemTypeName(priceSetItemDto.getItemTypeName());
        priceSetItem.setItemTypeIcon(priceSetItemDto.getItemTypeIcon());
        priceSetItem.setPrice(priceSetItemDto.getPrice().toPlainString());
        return priceSetItem;
    }

    @Override
    public PriceSetItemDto map(PriceSetItem priceSetItem, Class<PriceSetItemDto> priceSetItemDtoClass) {
        PriceSetItemDto priceSetItemDto = new PriceSetItemDto();
        priceSetItemDto.setItemTypeID(priceSetItem.getItemTypeID());
        priceSetItemDto.setItemCategoryID(priceSetItem.getItemCategoryID());
        priceSetItemDto.setItemTypeName(priceSetItem.getItemTypeName());
        priceSetItemDto.setItemTypeIcon(priceSetItem.getItemTypeIcon());
        priceSetItemDto.setPrice(new BigDecimal(priceSetItem.getPrice()));
        return priceSetItemDto;
    }

    @Override
    public PriceSetNameDto map(PriceSet priceSet, Class<PriceSetNameDto> priceSetItemClass) {
        PriceSetNameDto priceSetNameDto = new PriceSetNameDto();
        priceSetNameDto.setPriceSetID(priceSet.getId());
        priceSetNameDto.setPriceSetName(priceSet.getName());
        return priceSetNameDto;
    }

    @Override
    public PriceSetDto map(PriceSet priceSet, Class<PriceSetDto> priceSetDtoClass) {
        PriceSetDto priceSetDto = new PriceSetDto();
        priceSetDto.setId(priceSet.getId());
        priceSetDto.setName(priceSet.getName());
        if (priceSet.getAttachedCharacterInfo() != null) {
            priceSetDto.setAttachedCharacterName(map(priceSet.getAttachedCharacterInfo(), CharacterNameDto.class));
        }
        priceSetDto.setSharingLevel(priceSet.getSharingLevel());
        priceSetDto.setCreatedDate(priceSet.getCreatedDate());
        priceSetDto.setUpdatedDate(priceSet.getUpdatedDate());
        List<PriceSetItemDto> priceSetItemDtoList = new ArrayList<PriceSetItemDto>();
        for (PriceSetItem priceSetItem : priceSet.getItems()) {
            priceSetItemDtoList.add(map(priceSetItem, PriceSetItemDto.class));
        }
        Collections.sort(priceSetItemDtoList, new PriceSetItemDtoComparator());
        priceSetDto.setItems(priceSetItemDtoList);
        return priceSetDto;
    }

    @Override
    public CharacterDto map(Character character, Class<CharacterDto> characterDtoClass) {
        CharacterDto characterDto = new CharacterDto();
        characterDto.setId(character.getId());
        characterDto.setCharacterID(character.getCharacterID());
        characterDto.setName(character.getName());
        characterDto.setCorporationID(character.getCorporationID());
        characterDto.setCorporationName(character.getCorporationName());
        characterDto.setCorporationTitles(character.getCorporationTitles());
        characterDto.setAllianceID(character.getAllianceID());
        characterDto.setAllianceName(character.getAllianceName());
        return characterDto;
    }

    @Override
    public CharacterDto map(CharacterInfo characterInfo, Class<CharacterDto> characterDtoClass) {
        CharacterDto characterDto = new CharacterDto();
        characterDto.setCharacterID(characterInfo.getCharacterID());
        characterDto.setName(characterInfo.getName());
        characterDto.setCorporationID(characterInfo.getCorporationID());
        characterDto.setCorporationName(characterInfo.getCorporationName());
        characterDto.setAllianceID(characterInfo.getAllianceID());
        characterDto.setAllianceName(characterInfo.getAllianceName());
        return characterDto;
    }

    @Override
    public CharacterNameDto map(CharacterInfo characterInfo, Class<CharacterNameDto> characterNameDtoClass) {
        CharacterNameDto attachedCharacterNameDto = new CharacterNameDto();
        attachedCharacterNameDto.setId(characterInfo.getCharacterID());
        attachedCharacterNameDto.setName(characterInfo.getName());
        return attachedCharacterNameDto;
    }

    @Override
    public CharacterInfoDto mapForCharacterInfo(CharacterInfo characterInfo, Class<CharacterInfoDto> characterInfoDtoClass) {
        CharacterInfoDto attachedCharacterInfoDto = new CharacterInfoDto();
        attachedCharacterInfoDto.setId(characterInfo.getId());
        attachedCharacterInfoDto.setCharacterID(characterInfo.getCharacterID());
        attachedCharacterInfoDto.setName(characterInfo.getName());
        attachedCharacterInfoDto.setCorporationID(characterInfo.getCorporationID());
        attachedCharacterInfoDto.setCorporationName(characterInfo.getCorporationName());
        attachedCharacterInfoDto.setCorporationTicker(characterInfo.getCorporationTicker());
        attachedCharacterInfoDto.setAllianceID(characterInfo.getAllianceID());
        attachedCharacterInfoDto.setAllianceName(characterInfo.getAllianceName());
        return attachedCharacterInfoDto;
    }

    @Override
    public CharacterInfo map(Character character, Class<CharacterInfo> characterInfoClass) {
        CharacterInfo characterInfo = new CharacterInfo();
        characterInfo.setId(character.getId());
        characterInfo.setCharacterID(character.getCharacterID());
        characterInfo.setName(character.getName());
        characterInfo.setCorporationID(character.getCorporationID());
        characterInfo.setCorporationName(character.getCorporationName());
        characterInfo.setCorporationTicker(character.getCorporationTicker());
        characterInfo.setAllianceID(character.getAllianceID());
        characterInfo.setAllianceName(character.getAllianceName());
        return characterInfo;
    }

    @Override
    public ApiKeyDto map(ApiKey apiKey, Class<ApiKeyDto> apiKeyDtoClass) {
        ApiKeyDto apiKeyDto = new ApiKeyDto();
        apiKeyDto.setId(apiKey.getId());
        List<ApiKeyCharacterInfoDto> characterInfoDtos = new ArrayList<ApiKeyCharacterInfoDto>();
        for (ApiKeyCharacterInfo characterInfo : apiKey.getCharacterInfos()) {
            characterInfoDtos.add(map(characterInfo, ApiKeyCharacterInfoDto.class));
        }
        apiKeyDto.setCharacterInfos(characterInfoDtos);
        apiKeyDto.setLastCheckDate(apiKey.getLastCheckDate());
        apiKeyDto.setKeyType(apiKey.getKeyType());
        apiKeyDto.setValid(apiKey.isValid());
        return apiKeyDto;
    }

    @Override
    public ApiKeyCharacterInfoDto map(ApiKeyCharacterInfo characterInfo, Class<ApiKeyCharacterInfoDto> apiKeyCharacterInfoDtoClass) {
        ApiKeyCharacterInfoDto apiKeyCharacterInfoDto = new ApiKeyCharacterInfoDto();
        apiKeyCharacterInfoDto.setCharacterID(characterInfo.getCharacterID());
        apiKeyCharacterInfoDto.setName(characterInfo.getName());
        apiKeyCharacterInfoDto.setCorporationID(characterInfo.getCorporationID());
        apiKeyCharacterInfoDto.setCorporationName(characterInfo.getCorporationName());
        return apiKeyCharacterInfoDto;
    }

    @Override
    public ItemTypeDto map(InvTypeBasicInfoDto invTypeBasicInfoDto, Class<ItemTypeDto> itemTypeDtoClass) {
        ItemTypeDto itemTypeDto = new ItemTypeDto();
        itemTypeDto.setItemTypeID(invTypeBasicInfoDto.getItemTypeID());
        itemTypeDto.setItemCategoryID(invTypeBasicInfoDto.getItemCategoryID());
        itemTypeDto.setName(invTypeBasicInfoDto.getName());
        itemTypeDto.setGraphicIcon(invTypeBasicInfoDto.getIcon());
        return itemTypeDto;
    }

    @Override
    public ItemTypeDto map(lv.odylab.evemanage.integration.evedb.dto.ItemTypeDto itemTypeDto, Class<ItemTypeDto> itemTypeDtoClass) {
        ItemTypeDto itemTypeDtoToMap = new ItemTypeDto();
        itemTypeDtoToMap.setItemTypeID(itemTypeDto.getItemTypeID());
        itemTypeDtoToMap.setItemCategoryID(itemTypeDto.getItemCategoryID());
        itemTypeDtoToMap.setName(itemTypeDto.getName());
        itemTypeDtoToMap.setGraphicIcon(itemTypeDto.getGraphicIcon());
        return itemTypeDtoToMap;
    }

    @Override
    public lv.odylab.evemanage.integration.evedb.dto.BlueprintTypeDto map(InvBlueprintTypeDto invBlueprintTypeDto, Class<BlueprintTypeDto> blueprintTypeDtoClass) {
        lv.odylab.evemanage.integration.evedb.dto.BlueprintTypeDto blueprintTypeDto = new lv.odylab.evemanage.integration.evedb.dto.BlueprintTypeDto();
        blueprintTypeDto.setBlueprintTypeID(invBlueprintTypeDto.getBlueprintTypeID());
        blueprintTypeDto.setBlueprintTypeName(invBlueprintTypeDto.getBlueprintTypeName());
        blueprintTypeDto.setProductTypeID(invBlueprintTypeDto.getProductTypeID());
        blueprintTypeDto.setProductTypeName(invBlueprintTypeDto.getProductTypeName());
        blueprintTypeDto.setProductCategoryID(invBlueprintTypeDto.getProductCategoryID());
        blueprintTypeDto.setProductGraphicIcon(invBlueprintTypeDto.getProductIcon());
        blueprintTypeDto.setParentBlueprintTypeID(invBlueprintTypeDto.getParentBlueprintTypeID());
        blueprintTypeDto.setParentBlueprintTypeName(invBlueprintTypeDto.getParentBlueprintTypeName());
        blueprintTypeDto.setParentProductTypeID(invBlueprintTypeDto.getParentProductTypeID());
        blueprintTypeDto.setParentProductTypeName(invBlueprintTypeDto.getParentProductTypeName());
        blueprintTypeDto.setTechLevel(invBlueprintTypeDto.getTechLevel());
        blueprintTypeDto.setProductionTime(invBlueprintTypeDto.getProductionTime());
        blueprintTypeDto.setResearchProductivityTime(invBlueprintTypeDto.getResearchProductivityTime());
        blueprintTypeDto.setResearchMaterialTime(invBlueprintTypeDto.getResearchMaterialTime());
        blueprintTypeDto.setResearchCopyTime(invBlueprintTypeDto.getResearchCopyTime());
        blueprintTypeDto.setResearchTechTime(invBlueprintTypeDto.getResearchTechTime());
        blueprintTypeDto.setProductivityModifier(invBlueprintTypeDto.getProductivityModifier());
        blueprintTypeDto.setWasteFactor(invBlueprintTypeDto.getWasteFactor());
        blueprintTypeDto.setMaxProductionLimit(invBlueprintTypeDto.getMaxProductionLimit());
        blueprintTypeDto.setProductVolume(invBlueprintTypeDto.getProductVolume());
        blueprintTypeDto.setProductPortionSize(invBlueprintTypeDto.getProductPortionSize());
        return blueprintTypeDto;
    }

    @Override
    public lv.odylab.evemanage.integration.evedb.dto.ItemTypeDto map(InvTypeBasicInfoDto invTypeBasicInfoDto, Class<lv.odylab.evemanage.integration.evedb.dto.ItemTypeDto> itemTypeDtoClass) {
        lv.odylab.evemanage.integration.evedb.dto.ItemTypeDto itemTypeDto = new lv.odylab.evemanage.integration.evedb.dto.ItemTypeDto();
        itemTypeDto.setItemTypeID(invTypeBasicInfoDto.getItemTypeID());
        itemTypeDto.setItemCategoryID(invTypeBasicInfoDto.getItemCategoryID());
        itemTypeDto.setName(invTypeBasicInfoDto.getName());
        itemTypeDto.setGraphicIcon(invTypeBasicInfoDto.getIcon());
        itemTypeDto.setMetaLevel(invTypeBasicInfoDto.getMetaLevel());
        return itemTypeDto;
    }

    @Override
    public CharacterSheetDto map(ApiCharacterSheetResult apiCharacterSheetResult, Class<CharacterSheetDto> characterSheetDtoClass) {
        CharacterSheetDto characterSheetDto = new CharacterSheetDto();
        characterSheetDto.setCharacterID(apiCharacterSheetResult.getCharacterID());
        characterSheetDto.setName(apiCharacterSheetResult.getName());
        characterSheetDto.setCorporationName(apiCharacterSheetResult.getCorporationName());
        characterSheetDto.setCorporationID(apiCharacterSheetResult.getCorporationID());

        List<ApiCharacterGenericRow> corporationTitleRows = apiCharacterSheetResult.getCorporationTitles();
        List<String> corporationTitles = new ArrayList<String>();
        if (corporationTitleRows != null) {
            for (ApiCharacterGenericRow corporationTitleRow : corporationTitleRows) {
                corporationTitles.add(corporationTitleRow.getTitleName().toUpperCase());
            }
        }
        characterSheetDto.setCorporationTitles(corporationTitles);
        return characterSheetDto;
    }

    @Override
    public IndustryJobDto map(ApiIndustryJobRow apiIndustryJobRow, Class<IndustryJobDto> industryJobDtoClass) {
        IndustryJobDto apiIndustryJobDto = new IndustryJobDto();
        apiIndustryJobDto.setInstalledItemID(apiIndustryJobRow.getInstalledItemID());
        apiIndustryJobDto.setInstalledItemProductivityLevel(apiIndustryJobRow.getInstalledItemProductivityLevel());
        apiIndustryJobDto.setInstalledItemMaterialLevel(apiIndustryJobRow.getInstalledItemMaterialLevel());
        apiIndustryJobDto.setInstalledItemLicensedProductionRunsRemaining(apiIndustryJobRow.getInstalledItemLicensedProductionRunsRemaining());
        apiIndustryJobDto.setInstalledItemTypeID(apiIndustryJobRow.getInstalledItemTypeID());
        apiIndustryJobDto.setOutputTypeID(apiIndustryJobRow.getOutputTypeID());
        apiIndustryJobDto.setActivityID(apiIndustryJobRow.getActivityID());
        return apiIndustryJobDto;
    }

    @Override
    public AccountCharacterDto map(ApiAccountCharacterRow apiAccountCharacterRow, Class<AccountCharacterDto> accountCharacterDtoClass) {
        AccountCharacterDto accountCharacterDto = new AccountCharacterDto();
        accountCharacterDto.setName(apiAccountCharacterRow.getName());
        accountCharacterDto.setCharacterID(apiAccountCharacterRow.getCharacterID());
        accountCharacterDto.setCorporationName(apiAccountCharacterRow.getCorporationName());
        accountCharacterDto.setCorporationID(apiAccountCharacterRow.getCorporationID());
        return accountCharacterDto;
    }

    @Override
    public AccountBalanceDto map(ApiAccountBalanceRow apiAccountBalanceRow, Class<AccountBalanceDto> accountBalanceDtoClass) {
        AccountBalanceDto accountBalanceDto = new AccountBalanceDto();
        apiAccountBalanceRow.setAccountID(apiAccountBalanceRow.getAccountID());
        apiAccountBalanceRow.setAccountKey(apiAccountBalanceRow.getAccountKey());
        apiAccountBalanceRow.setBalance(apiAccountBalanceRow.getBalance());
        return accountBalanceDto;
    }

    @Override
    public CorporationSheetDto map(ApiCorporationSheetResult apiCorporationSheetResult, Class<CorporationSheetDto> corporationSheetDtoClass) {
        CorporationSheetDto corporationSheetDto = new CorporationSheetDto();
        corporationSheetDto.setTicker(apiCorporationSheetResult.getTicker());
        corporationSheetDto.setAllianceID(apiCorporationSheetResult.getAllianceID());
        corporationSheetDto.setAllianceName(apiCorporationSheetResult.getAllianceName());
        return corporationSheetDto;
    }

    @Override
    public MarketStatDto map(MarketStatType marketStatType, Class<MarketStatDto> marketStatDtoClass) {
        MarketStatDto marketStatDto = new MarketStatDto();
        marketStatDto.setTypeID(marketStatType.getTypeID());
        marketStatDto.setMedian(marketStatType.getAll().getMedian());
        marketStatDto.setBuyMedian(marketStatType.getBuy().getMedian());
        marketStatDto.setSellMedian(marketStatType.getSell().getMedian());
        return marketStatDto;
    }

    @Override
    public ItemPriceDto map(ItemPriceType itemPriceType, Class<ItemPriceDto> itemPriceDtoClass) {
        ItemPriceDto itemPriceDto = new ItemPriceDto();
        itemPriceDto.setTypeID(itemPriceType.getId());
        BigDecimal medianBuy = itemPriceType.getRegionsTypeData().get(0).getBuyPrices().getMedian();
        BigDecimal medianSell = itemPriceType.getRegionsTypeData().get(0).getSellPrices().getMedian();
        BigDecimal medianBuySell = medianBuy.add(medianSell).divide(new BigDecimal(2)).setScale(2, RoundingMode.HALF_UP);
        itemPriceDto.setMedian(medianBuySell);
        return itemPriceDto;
    }

    @Override
    public CalculationDto map(Calculation calculation, Class<CalculationDto> calculationDtoClass) {
        CalculationDto calculationDto = new CalculationDto();
        calculationDto.setId(calculation.getId());
        calculationDto.setName(calculation.getName());
        calculationDto.setPrice(new BigDecimal(calculation.getPrice()));
        calculationDto.setBlueprintTypeID(calculation.getBlueprintTypeID());
        calculationDto.setBlueprintTypeName(calculation.getBlueprintTypeName());
        calculationDto.setProductTypeName(calculation.getProductTypeName());
        calculationDto.setProductTypeID(calculation.getProductTypeID());
        calculationDto.setProductTypeCategoryID(calculation.getProductTypeCategoryID());
        calculationDto.setProductGraphicIcon(calculation.getProductGraphicIcon());
        calculationDto.setProductivityLevel(calculation.getProductivityLevel());
        calculationDto.setMaterialLevel(calculation.getMaterialLevel());
        calculationDto.setWasteFactor(calculation.getWasteFactor());
        List<CalculationItemDto> calculationItemDtos = new ArrayList<CalculationItemDto>();
        for (CalculationItem calculationItem : calculation.getItems()) {
            calculationItemDtos.add(map(calculationItem, CalculationItemDto.class));
        }
        calculationDto.setItems(calculationItemDtos);
        return calculationDto;
    }

    private CalculationItemDto map(CalculationItem calculationItem, Class<CalculationItemDto> calculationItemDtoClass) {
        CalculationItemDto calculationItemDto = new CalculationItemDto();
        calculationItemDto.setPathExpression(PathExpression.parsePath(calculationItem.getPath()));
        calculationItemDto.setItemTypeID(calculationItem.getItemTypeID());
        calculationItemDto.setItemCategoryID(calculationItem.getItemCategoryID());
        calculationItemDto.setItemTypeName(calculationItem.getItemTypeName());
        calculationItemDto.setItemTypeIcon(calculationItem.getItemTypeIcon());
        calculationItemDto.setQuantity(calculationItem.getQuantity());
        calculationItemDto.setParentQuantity(calculationItem.getParentQuantity());
        calculationItemDto.setPerfectQuantity(calculationItem.getPerfectQuantity());
        calculationItemDto.setWasteFactor(calculationItem.getWasteFactor());
        calculationItemDto.setDamagePerJob(new BigDecimal(calculationItem.getDamagePerJob()));
        calculationItemDto.setPrice(new BigDecimal(calculationItem.getPrice()));
        calculationItemDto.setTotalPrice(new BigDecimal(calculationItem.getTotalPrice()));
        calculationItemDto.setTotalPriceForParent(new BigDecimal(calculationItem.getTotalPriceForParent()));
        return calculationItemDto;
    }
}
TOP

Related Classes of lv.odylab.evemanage.application.EveManageDtoMapperImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.