Package com.rapleaf.jack.test_project.database_1.mock_impl

Source Code of com.rapleaf.jack.test_project.database_1.mock_impl.BaseMockUserPersistenceImpl

/**
* Autogenerated by Jack
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
*/
package com.rapleaf.jack.test_project.database_1.mock_impl;

import java.util.Arrays;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.Set;
import java.util.Iterator;
import java.util.HashSet;
import java.io.IOException;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Date;
import java.sql.Timestamp;

import com.rapleaf.jack.AbstractMockDatabaseModel;
import com.rapleaf.jack.queries.ModelQuery;
import com.rapleaf.jack.ModelWithId;
import com.rapleaf.jack.queries.WhereConstraint;
import com.rapleaf.jack.queries.QueryOrder;
import com.rapleaf.jack.queries.LimitCriterion;
import com.rapleaf.jack.queries.OrderCriterion;

import com.rapleaf.jack.test_project.database_1.models.User;
import com.rapleaf.jack.test_project.database_1.models.User.Id;
import com.rapleaf.jack.test_project.database_1.iface.IUserPersistence;
import com.rapleaf.jack.test_project.database_1.query.UserQueryBuilder;

import com.rapleaf.jack.test_project.IDatabases;

public class BaseMockUserPersistenceImpl extends AbstractMockDatabaseModel<User, IDatabases> implements IUserPersistence {
  private final IDatabases databases;

  private static AtomicInteger curId = new AtomicInteger(1);

  public BaseMockUserPersistenceImpl(IDatabases databases) {
    super(databases);
    this.databases = databases;
  }

  @Override
  public User create(Map<Enum, Object> fieldsMap) throws IOException {
    String handle = (String) fieldsMap.get(User._Fields.handle);
    Long created_at_millis = (Long) fieldsMap.get(User._Fields.created_at_millis);
    int num_posts = (Integer) fieldsMap.get(User._Fields.num_posts);
    Long some_date = (Long) fieldsMap.get(User._Fields.some_date);
    Long some_datetime = (Long) fieldsMap.get(User._Fields.some_datetime);
    String bio = (String) fieldsMap.get(User._Fields.bio);
    byte[] some_binary = (byte[]) fieldsMap.get(User._Fields.some_binary);
    Double some_float = (Double) fieldsMap.get(User._Fields.some_float);
    Double some_decimal = (Double) fieldsMap.get(User._Fields.some_decimal);
    Boolean some_boolean = (Boolean) fieldsMap.get(User._Fields.some_boolean);
    return create(handle, created_at_millis, num_posts, some_date, some_datetime, bio, some_binary, some_float, some_decimal, some_boolean);
  }


  public User create(final String handle, final Long created_at_millis, final int num_posts, final Long some_date, final Long some_datetime, final String bio, final byte[] some_binary, final Double some_float, final Double some_decimal, final Boolean some_boolean) throws IOException {
    long __id = curId.getAndIncrement();
    User newInst = new User(__id, handle, created_at_millis, num_posts, some_date, some_datetime, bio, some_binary, some_float, some_decimal, some_boolean, databases);
    records.put(__id, newInst);
    clearForeignKeyCache();
    return newInst.getCopy();
  }



  public User create(final String handle, final int num_posts) throws IOException {
    long __id = curId.getAndIncrement();
    User newInst = new User(__id, handle, null, num_posts, null, null, null, null, null, null, null, databases);
    records.put(__id, newInst);
    clearForeignKeyCache();
    return newInst.getCopy();
  }


  public User createDefaultInstance() throws IOException {
    return create("", 0);
  }

  public Set<User> find(Map<Enum, Object> fieldsMap) throws IOException {
    return super.realFind(fieldsMap);
  }

  public Set<User> find(Set<Long> ids, Map<Enum, Object> fieldsMap) throws IOException {
    return super.realFind(ids, fieldsMap);
  }

  public Set<User> find(ModelQuery query) throws IOException {
    Set<User> allResults = super.realFind(query);
    LimitCriterion limitCriterion = query.getLimitCriterion();
    if(limitCriterion == null) {
      return allResults;
    }
    int i = 0;
    Set<User> truncatedSet = new HashSet<User>();
    Iterator<User> iterator = allResults.iterator();
    while(iterator.hasNext() && i < limitCriterion.getNResults()) {
      truncatedSet.add(iterator.next());
      i++;
    }
    return truncatedSet;
  }
 
  public List<User> findWithOrder(ModelQuery query) throws IOException {
    List<User> allResults = sortUnorderedMockQuery(super.realFind(query), query);
    LimitCriterion limitCriterion = query.getLimitCriterion();
    if(limitCriterion == null) {
      return allResults;
    }
    return allResults.subList(limitCriterion.getOffset(), limitCriterion.getNResults() + limitCriterion.getOffset());
  }

  private List<User> sortUnorderedMockQuery(Set<User> unorderedResult, ModelQuery query) {
    final List<OrderCriterion> orderCriteria = query.getOrderCriteria();
    List<User> result = new ArrayList<User>(unorderedResult);

    Collections.sort(result, new Comparator<User>() {
      public int compare(User t1, User t2) {
        for (OrderCriterion orderCriterion : orderCriteria) {
          int compareResult;
          Enum field = orderCriterion.getField();
          String fieldName = field != null ? field.toString() : "id";

          Object o1 = field != null ? t1.getField(fieldName) : t1.getId();
          Object o2 = field != null ? t2.getField(fieldName) : t2.getId();
          if (o1 instanceof java.lang.Comparable) {
            compareResult = ((Comparable) o1).compareTo(o2);
          } else {
            compareResult = Integer.valueOf(o1.hashCode()).compareTo(o2.hashCode());
          }

          int orderDirection = (orderCriterion.getOrder() == QueryOrder.ASC) ? 1 : -1;
          compareResult = compareResult * orderDirection;
          if (compareResult != 0) {
            if (compareResult < 0) {
              return -1;
            } else {
              return 1;
            }
          }
        }
        return 0;
      }
    });

    return result;   
  }

  public Set<User> findByHandle(final String value) throws IOException {
    return find(new HashMap<Enum, Object>(){{put(User._Fields.handle, value);}});
  }

  public Set<User> findByCreatedAtMillis(final Long value) throws IOException {
    return find(new HashMap<Enum, Object>(){{put(User._Fields.created_at_millis, value);}});
  }

  public Set<User> findByNumPosts(final int value) throws IOException {
    return find(new HashMap<Enum, Object>(){{put(User._Fields.num_posts, value);}});
  }

  public Set<User> findBySomeDate(final Long value) throws IOException {
    return find(new HashMap<Enum, Object>(){{put(User._Fields.some_date, value);}});
  }

  public Set<User> findBySomeDatetime(final Long value) throws IOException {
    return find(new HashMap<Enum, Object>(){{put(User._Fields.some_datetime, value);}});
  }

  public Set<User> findByBio(final String value) throws IOException {
    return find(new HashMap<Enum, Object>(){{put(User._Fields.bio, value);}});
  }

  public Set<User> findBySomeBinary(final byte[] value) throws IOException {
    return find(new HashMap<Enum, Object>(){{put(User._Fields.some_binary, value);}});
  }

  public Set<User> findBySomeFloat(final Double value) throws IOException {
    return find(new HashMap<Enum, Object>(){{put(User._Fields.some_float, value);}});
  }

  public Set<User> findBySomeDecimal(final Double value) throws IOException {
    return find(new HashMap<Enum, Object>(){{put(User._Fields.some_decimal, value);}});
  }

  public Set<User> findBySomeBoolean(final Boolean value) throws IOException {
    return find(new HashMap<Enum, Object>(){{put(User._Fields.some_boolean, value);}});
  }

  public UserQueryBuilder query() {
    return new UserQueryBuilder(this);
  }
}
TOP

Related Classes of com.rapleaf.jack.test_project.database_1.mock_impl.BaseMockUserPersistenceImpl

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.