[ 
https://issues.apache.org/jira/browse/SQOOP-1811?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14228944#comment-14228944
 ] 

Veena Basavaraj commented on SQOOP-1811:
----------------------------------------

I am going to leave the getText and setText to be non final, but I still see a 
point in doing that, since the custom implementation ( such as JSON, will only 
call this method, to set the CSV string using the SoopCSVUtils, they will never 
need to override this method.

So in JSONIDF or AvroIDF code

{code}
void  setData(T data) {

// set the Avro/ JSOn IDF

// call the setSqoopCSVData (getSqoopCSVString())
}

String getSqoopCSVString() {

//use the T data and constrct the CSV
}
{code}

> IDF API changes
> ---------------
>
>                 Key: SQOOP-1811
>                 URL: https://issues.apache.org/jira/browse/SQOOP-1811
>             Project: Sqoop
>          Issue Type: Sub-task
>          Components: sqoop2-framework
>            Reporter: Veena Basavaraj
>             Fix For: 1.99.5
>
>
> 1. update the java docs for IDF apis.
> 2.  Make the getTextData final and call it getCSV and setCSV, so it is 
> obvious that we want to enforce CSV format
>  the following code can move to the base class IntermediateDataFormat and 
> made final, so there is no way to override this and we can enforce all to 
> return String instead of generic T
> {code}
> // hold the string in IDF base class
>  private final String text.
>  
>   public final String getCSVTextData() {
>     return text;
>   }
>  
>   public final void setCSVTextData(String text) {
>     this.text = text;
>   }
> {code}
> There is code in CSVIDF implementation that has the rules for CSV parsing 
> that can be pulled out into CSV Utils so that the connectors can use
> The T in CSV happens to String, which is just a coincidence, If I write a new 
> IDF implementation T can be a custom object that could encapsulate the whole 
> row.
> Third, getData and setData can have custom implementation so they can be 
> overriden to return the generic type T



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to