public Entry buildEntry(String ... values){
        Entry returnable = new Entry();
        for(int i = 0; i < values.length; i++){
            AttributeBuilder attributeBuilder = attributes.get(i);
            String data = values[i];
            switch (attributeBuilder.attributeType){
                case NOMINAL:
                    if(attributeBuilder.nominals.contains(data)){
                        returnable.add(new Nominal(attributeBuilder.name, data.equals("?") ? null : data));
                    }else {
                        throw new IllegalStateException("Inappropriate Type Passed");
                    }
                    break;
                case BINARY:
                    returnable.add(new Binary(attributeBuilder.name, data.equals("?") ? null : Boolean.parseBoolean(data)));
                    break;
                case NUMERIC:
                    returnable.add(new Numeric(attributeBuilder.name, data.equals("?") ? null : Integer.parseInt(data)));
                    break;
            }
        }
        return returnable;
    }