public static final void getKeyValuePairs(IData pipeline)
throws ServiceException {
// pipeline
IDataCursor pipelineCursor = pipeline.getCursor();
IData docData = IDataUtil.getIData(pipelineCursor,"doc") ;
getKeyVals(docData.getCursor(),"",true);
String[] keys = KeyVals.keySet().toArray(new String[0]);
String[] value = KeyVals.values().toArray(new String[0]);
String[][] KeyValuePairs =new String [KeyVals.size()][2];
for (int i = 0; i < KeyVals.size(); i++)
{ KeyValuePairs[i][0]=keys[i];
KeyValuePairs[i][1]=value[i];
}
IDataUtil.put( pipelineCursor, "KeyValuePairs", KeyValuePairs );
pipelineCursor.destroy();
}
// --- <<IS-BEGIN-SHARED-SOURCE-AREA>> ---
public static final void getKeyVals(IDataCursor _cursor,String keyName,boolean root){
_cursor.first();
String key;
while (_cursor.hasMoreData())
{
Object value = IDataUtil.get(_cursor,_cursor.getKey());
if (value instanceof IData)
{
IDataCursor childDataCursor=((IData)value).getCursor();
if(keyName=="")
getKeyVals(childDataCursor,_cursor.getKey(),false);
else
getKeyVals(childDataCursor,keyName+"."+_cursor.getKey(),false);
JournalLogger.log(4,90,4,"***************found an IData-"+_cursor.getKey()+ "And the iteration is "+i);
}
else if(value instanceof IData[]){
JournalLogger.log(4,90,4,"***************found an List-"+_cursor.getKey()+ "And the iteration is "+i);
JournalLogger.log(4,90,4,"***************Child Data Cursor created-"+_cursor.getKey()+ "And the iteration is "+i);
IData[] indocs = IDataUtil.getIDataArray(_cursor,_cursor.getKey());
JournalLogger.log(4,90,4,"***************Indocs Created-"+_cursor.getKey()+ "And the iteration is "+i);
IDataCursor tempcursor;
for(int j=0;j<indocs.length;j++)
{
tempcursor= indocs[j].getCursor();
if(keyName=="")
getKeyVals(tempcursor,_cursor.getKey()+"."+j,false);
else
getKeyVals(tempcursor,keyName+"."+_cursor.getKey()+"."+j,false);
}
}
else
{
if (!root)
key =keyName+"."+_cursor.getKey();
else
key=_cursor.getKey();
KeyVals.put(key, IDataUtil.getString(_cursor,_cursor.getKey()));
JournalLogger.log(4,90,4,"KeyValuepair Logged :-"+key +IDataUtil.getString(_cursor,_cursor.getKey())+ "And the iteration is "+i);
i++;
}
_cursor.next();
}
_cursor.last();
Object value = IDataUtil.get(_cursor,_cursor.getKey());
if (value instanceof IData)
{
IDataCursor childDataCursor=((IData)value).getCursor();
if(keyName=="")
getKeyVals(childDataCursor,_cursor.getKey(),false);
else
getKeyVals(childDataCursor,keyName+"."+_cursor.getKey(),false);
}
else if(value instanceof IData[]){
JournalLogger.log(4,90,4,"***************found an List-"+_cursor.getKey()+ "And the iteration is "+i);
IData[] indocs = IDataUtil.getIDataArray(_cursor,_cursor.getKey());
JournalLogger.log(4,90,4,"***************Indocs Created-"+_cursor.getKey()+ "And the iteration is "+i);
IDataCursor tempcursor;
for(int j=0;j<indocs.length;j++)
{
tempcursor= indocs[j].getCursor();
if(keyName=="")
getKeyVals(tempcursor,_cursor.getKey()+"."+j,false);
else
getKeyVals(tempcursor,keyName+"."+_cursor.getKey()+"."+j,false);
}
}
else
{
if (!root)
key =keyName+"."+_cursor.getKey();
else
key=_cursor.getKey();
KeyVals.put(key, IDataUtil.getString(_cursor,_cursor.getKey()));
i++;
}
}
public static int i = 0;
public static LinkedHashMap<String,String> KeyVals=new LinkedHashMap<>();
#webMethods-General#webMethods#Integration-Server-and-ESB