// Path: spark/src/main/java/com/github/boneill42/dao/ProductRowReader.java
// public static class ProductRowReaderFactory implements RowReaderFactory<Product>, Serializable{
//     private static final long serialVersionUID = 1L;
// 
//     @Override
//     public RowReader<Product> rowReader(TableDef arg0, RowReaderOptions arg1) {
//         return reader;
//     }
// 
//     @Override
//     public RowReaderOptions rowReader$default$2() {
//         return null;
//     }
// 
//     @Override
//     public Class<Product> targetClass() {
//         return Product.class;
//     }        
// }
// 
// Path: spark/src/main/java/com/github/boneill42/model/Product.java
// public class Product implements Serializable {
//     private static final long serialVersionUID = 1L;
//     private Integer id;
//     private String name;
//     private Float price;
// 
//     public Product() {
//     }
// 
//     public Product(Integer id, String name, Float price) {
//         this.id = id;
//         this.name = name;
//         this.price = price;
//     }
// 
//     public Integer getId() {
//         return id;
//     }
// 
//     public void setId(Integer id) {
//         this.id = id;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public Float getPrice() {
//         return price;
//     }
// 
//     public void setPrice(Float price) {
//         this.price = price;
//     }
// 
//     @Override
//     public String toString() {
//         return MessageFormat.format("Product'{'id={0}, name=''{1}'', price={2}'}'", id, name, price);
//     }
//     
//     public static List<String> columns() {
//         List<String> columns = new ArrayList<String>();
//         columns.add("id");
//         columns.add("name");
//         columns.add("price"); 
//         return columns;
//     }
// 
// }


import static com.datastax.spark.connector.japi.CassandraJavaUtil.javaFunctions;
import java.io.Serializable;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaPairRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.Function;
import org.apache.spark.sql.api.java.JavaSQLContext;
import org.apache.spark.sql.api.java.JavaSchemaRDD;
import org.apache.spark.sql.api.java.Row;
import com.github.boneill42.dao.ProductRowReader.ProductRowReaderFactory;
import com.github.boneill42.model.Product;
package com.github.boneill42;





public class SqlRunner implements Serializable {
    private static final long serialVersionUID = 1L;

    private transient SparkConf conf;
    private transient JavaSparkContext context;
    private transient JavaSQLContext sqlContext;
// Path: spark/src/main/java/com/github/boneill42/dao/ProductRowReader.java
// public static class ProductRowReaderFactory implements RowReaderFactory<Product>, Serializable{
//     private static final long serialVersionUID = 1L;
// 
//     @Override
//     public RowReader<Product> rowReader(TableDef arg0, RowReaderOptions arg1) {
//         return reader;
//     }
// 
//     @Override
//     public RowReaderOptions rowReader$default$2() {
//         return null;
//     }
// 
//     @Override
//     public Class<Product> targetClass() {
//         return Product.class;
//     }        
// }
// 
// Path: spark/src/main/java/com/github/boneill42/model/Product.java
// public class Product implements Serializable {
//     private static final long serialVersionUID = 1L;
//     private Integer id;
//     private String name;
//     private Float price;
// 
//     public Product() {
//     }
// 
//     public Product(Integer id, String name, Float price) {
//         this.id = id;
//         this.name = name;
//         this.price = price;
//     }
// 
//     public Integer getId() {
//         return id;
//     }
// 
//     public void setId(Integer id) {
//         this.id = id;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public Float getPrice() {
//         return price;
//     }
// 
//     public void setPrice(Float price) {
//         this.price = price;
//     }
// 
//     @Override
//     public String toString() {
//         return MessageFormat.format("Product'{'id={0}, name=''{1}'', price={2}'}'", id, name, price);
//     }
//     
//     public static List<String> columns() {
//         List<String> columns = new ArrayList<String>();
//         columns.add("id");
//         columns.add("name");
//         columns.add("price"); 
//         return columns;
//     }
// 
// }


// Path: spark/src/main/java/com/github/boneill42/SqlRunner.java
import static com.datastax.spark.connector.japi.CassandraJavaUtil.javaFunctions;
import java.io.Serializable;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaPairRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.Function;
import org.apache.spark.sql.api.java.JavaSQLContext;
import org.apache.spark.sql.api.java.JavaSchemaRDD;
import org.apache.spark.sql.api.java.Row;
import com.github.boneill42.dao.ProductRowReader.ProductRowReaderFactory;
import com.github.boneill42.model.Product;

package com.github.boneill42;





public class SqlRunner implements Serializable {
    private static final long serialVersionUID = 1L;

    private transient SparkConf conf;
    private transient JavaSparkContext context;
    private transient JavaSQLContext sqlContext;
    private ProductRowReaderFactory productReader = new ProductRowReaderFactory();