ItemManagement.GuavaCartesian.java Source code

Java tutorial

Introduction

Here is the source code for ItemManagement.GuavaCartesian.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package ItemManagement;

import ItemSets.CreateArmourSets;
import ItemSets.itemSet;
import Persistance.DbConnect;
import Persistance.apiDump;
import java.util.ArrayList;
import java.util.List;
import com.google.common.collect.Lists;
import java.io.IOException;

/**
 *
 * @author olive
 */
public class GuavaCartesian {

    static public void main(String[] argv) throws IOException {
        ArrayList uniqueSets = getUniqueSets_Limited();
        System.out.println(uniqueSets.size());
        DbConnect db = new DbConnect();
        db.storeItem(uniqueSets);
    }

    public static ArrayList getUniqueSets_Limited() throws IOException {

        GuavaCartesian calc = new GuavaCartesian();
        ArrayList createSetLists = calc.createSetLists();
        ArrayList CartesianSetBuilder = calc.CartesianSetBuilder(createSetLists, 10000);
        System.out.println(CartesianSetBuilder.size());

        return CartesianSetBuilder;
    }

    public static ArrayList getUniqueSets() throws IOException {

        GuavaCartesian calc = new GuavaCartesian();
        ArrayList createSetLists = calc.createSetLists();
        ArrayList CartesianSetBuilder = calc.CartesianSetBuilder(createSetLists, 0);
        System.out.println(CartesianSetBuilder.size());

        return CartesianSetBuilder;
    }

    public static ArrayList createSetLists() {
        ArrayList setList = new ArrayList();
        CreateArmourSets getArmourSets = new CreateArmourSets();
        getUniqueItemsByInfix get = new getUniqueItemsByInfix();
        ArrayList armourItems = get.JustArmour();
        ArrayList ArmourSetsList = getArmourSets.createArmourSets(armourItems);
        //gets and creates armour set
        ArrayList trinketLists = get.JustTrinket();
        ArrayList backList = get.JustBack();
        ArrayList WeaponList = get.JustLargeWeapons();
        setList.add(ArmourSetsList);
        setList.add(trinketLists.get(0));
        setList.add(trinketLists.get(1));
        setList.add(trinketLists.get(2));
        setList.add(backList);
        setList.add(WeaponList);

        return setList;
    }

    public static List calcTrinketSets() {

        getUniqueItemsByInfix get = new getUniqueItemsByInfix();

        ArrayList myList = get.JustTrinket();

        List<List> cartesianProduct = Lists.cartesianProduct(myList);

        //  System.out.println(cartesianProduct.toString());
        System.out.println(cartesianProduct.size());
        //  Object[] toArray = cartesianProduct.toArray();
        return cartesianProduct;
    }

    public static List calcArmourStats() {

        getUniqueItemsByInfix get = new getUniqueItemsByInfix();

        ArrayList myList = get.JustArmour();

        List<List> cartesianProduct = Lists.cartesianProduct(myList);

        //  System.out.println(cartesianProduct.toString());
        System.out.println(cartesianProduct.size());
        //  Object[] toArray = cartesianProduct.toArray();
        return cartesianProduct;
    }

    public static ArrayList CartesianSetBuilder(ArrayList list1, int limit) throws IOException {

        List<List> cartesianProduct = Lists.cartesianProduct(list1);
        ArrayList uniqueSets = new ArrayList();
        ArrayList uniqueStats = new ArrayList();
        //  System.out.println(cartesianProduct.toString());
        System.out.println(cartesianProduct.size());
        int index = 0;
        if (limit == 0) {
            limit = cartesianProduct.size();
        }
        while (index != limit) {
            List mysets = cartesianProduct.get(index);

            itemSet myItemSet = new itemSet(mysets);
            myItemSet.calcSetStats();
            scoreValues setValues = myItemSet.getSetValues();
            //ListOfSets.add(myItemSet);
            if (uniqueStats.contains(setValues)) {
                System.out.println("stat set already exists");
            } else {
                uniqueStats.add(setValues);
                uniqueSets.add(myItemSet);
                System.out.println("UNIQUE SET ADDED - SIZE: " + uniqueSets.size());

            }
            // DbConnect con = new DbConnect();
            // con.storeItem(myItemSet);

            System.out.println(index + " OF " + limit);
            index++;

        }

        //myItemSet.calcscore(values);
        //  Object[] toArray = cartesianProduct.toArray();
        return uniqueSets;

    }

}