public void visit(TalendRow row) {
		ResourceBundle rb = ResourceBundle.getBundle("TalendBridge", Locale.getDefault());
		this.row = row;

		if(rowStruct == null) return;

		Class<? extends Object> struct = rowStruct.getClass();
		Field[] fields = struct.getFields();
		for(Field f : fields){
			if(!Modifier.isStatic(f.getModifiers())){
				Object value = null;
				String column = null;
				try {
					value = f.get(rowStruct);
					column = f.getName();
				} catch (IllegalArgumentException e) {
					throw new IllegalArgumentException(e);
				} catch (SecurityException e) {
					throw new SecurityException(e);
				} catch (IllegalAccessException e) {}

				if(row.getTable().hasColumn(column)){
					TalendType columnClass = row.getTable().getColumn(column).getType();
					if(columnClass.equals(TalendType.buildFrom(f.getType()))){
						row.setValue(column, value);
					} else throw new IllegalArgumentException(String.format(Locale.getDefault(), rb.getString("exception.columnOfWrongType"), column, row.getTable().getName(), columnClass.getType().getSimpleName(), f.getType().getSimpleName()));

				}
			}

		}

	}