public ImmutableTypesWrapper(AnnotationWrapper mapper, MapperGeneratorContext context) { this.mapper = mapper; this.context = context; this.immutables = new HashMap<InOutType, MappingBuilder>(); this.unusedImmutables = new HashSet<InOutType>(); List<String> immutables = mapper.getAsStrings("withImmutables"); for (String immutableClass : immutables) { final TypeElement element = context.elements.getTypeElement(immutableClass.replace(".class", "")); InOutType ioType = new InOutType(element.asType(), element.asType(), false); this.immutables.put(ioType, MappingBuilder.newImmutable()); this.immutables.put(new InOutType(ioType, true), MappingBuilder.newImmutable()); this.unusedImmutables.add(ioType); } }