/** * Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/) * and/or other contributors as indicated by the @authors tag. See the * copyright.txt file in the distribution for a full listing of all * contributors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.mapstruct.ap.test.selection.qualifier.iterable; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.Qualifier; import org.mapstruct.factory.Mappers; /** * * @author Sjaak Derksen */ @Mapper public abstract class TopologyMapper { public static final TopologyMapper INSTANCE = Mappers.getMapper( TopologyMapper.class ); @Mapping( target = "topologyFeatures", qualifiedBy = Rivers.class ) public abstract TopologyEntity mapTopologyAsRiver(TopologyDto dto); @Mapping( target = "topologyFeatures", qualifiedBy = Cities.class ) public abstract TopologyEntity mapTopologyAsCity(TopologyDto dto); @Rivers protected TopologyFeatureEntity mapRiver( TopologyFeatureDto dto ) { TopologyFeatureEntity topologyFeatureEntity = null; if ( dto instanceof RiverDto ) { RiverEntity riverEntity = new RiverEntity(); riverEntity.setLength( ( (RiverDto) dto ).getLength() ); topologyFeatureEntity = riverEntity; topologyFeatureEntity.setName( dto.getName() ); } return topologyFeatureEntity; } @Cities protected TopologyFeatureEntity mapCity( TopologyFeatureDto dto ) { TopologyFeatureEntity topologyFeatureEntity = null; if ( dto instanceof CityDto ) { CityEntity cityEntity = new CityEntity(); cityEntity.setPopulation( ( (CityDto) dto ).getPopulation() ); topologyFeatureEntity = cityEntity; topologyFeatureEntity.setName( dto.getName() ); } return topologyFeatureEntity; } @Qualifier @Target(ElementType.METHOD) @Retention(RetentionPolicy.CLASS) public @interface Rivers { } @Qualifier @Target(ElementType.METHOD) @Retention(RetentionPolicy.CLASS) public @interface Cities { } }