// Path: core/src/main/java/com/braisgabin/couchbaseliteorm/Mapper.java
// public interface Mapper<T> {
// 
//   T toObject(Map<String, Object> properties);
// 
//   Map<String, Object> toProperties(T object);
// }


import com.braisgabin.couchbaseliteorm.Mapper;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import javax.annotation.processing.Filer;
import static javax.lang.model.element.Modifier.PUBLIC;
package com.braisgabin.couchbaseliteorm.compiler;





public class MapperEmitter extends Emitter {
  private final Helper helper;
  private final EntityModel model;

  public MapperEmitter(Helper helper, Filer filer, EntityModel model) throws IOException {
    super(filer, model.getMapper().getPackage(), model.getMapper().getName(), model.getElement());
    this.helper = helper;
    this.model = model;
  }

  @Override
  protected Set<String> getImports() {
    final Set<String> imports = new HashSet<>(Arrays.asList(
        Map.class.getCanonicalName(),
        HashMap.class.getCanonicalName(),
// Path: core/src/main/java/com/braisgabin/couchbaseliteorm/Mapper.java
// public interface Mapper<T> {
// 
//   T toObject(Map<String, Object> properties);
// 
//   Map<String, Object> toProperties(T object);
// }


// Path: compiler/src/main/java/com/braisgabin/couchbaseliteorm/compiler/MapperEmitter.java
import com.braisgabin.couchbaseliteorm.Mapper;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import javax.annotation.processing.Filer;
import static javax.lang.model.element.Modifier.PUBLIC;

package com.braisgabin.couchbaseliteorm.compiler;





public class MapperEmitter extends Emitter {
  private final Helper helper;
  private final EntityModel model;

  public MapperEmitter(Helper helper, Filer filer, EntityModel model) throws IOException {
    super(filer, model.getMapper().getPackage(), model.getMapper().getName(), model.getElement());
    this.helper = helper;
    this.model = model;
  }

  @Override
  protected Set<String> getImports() {
    final Set<String> imports = new HashSet<>(Arrays.asList(
        Map.class.getCanonicalName(),
        HashMap.class.getCanonicalName(),
        Mapper.class.getCanonicalName()