private void readColumnsFromShapeFile(File f, DataSetDescriptor dsd){
		ShpFiles shpFile = null;
		//boolean strict = true;
		boolean useMemoryMapped = false;
		//GeometryFactory gf = new GeometryFactory();
		DbaseFileReader shapeParams = null;
		DbaseFileHeader shapeHeader = null;
		try {
			shpFile = new ShpFiles(f);
			shapeParams = new DbaseFileReader(shpFile, useMemoryMapped, Charset.defaultCharset());
			shapeHeader = shapeParams.getHeader();
			int numFields  = shapeHeader.getNumFields();
			String nameField = "";
			int decimalCountField = 0;
			int lengthField = 0;
			String classField = "";
			for(int i = 0; i<numFields; i++){
				 nameField = shapeHeader.getFieldName(i);
				 classField = shapeHeader.getFieldClass(i).getSimpleName();
				 // It depends of the number size
				 lengthField = shapeHeader.getFieldLength(i);
				 decimalCountField = shapeHeader.getFieldDecimalCount(i);
				 Column c = new Column();
				 c.setName(nameField);
				 c.setType(this.getDBTypeFromShape(classField));
				 dsd.addField(c);
				 classField.toString();
			}
		} catch (Throwable e) {
			e.printStackTrace();
		}finally {
			try {
				shapeParams.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}