cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Building a parseRule for RuleBaseFileParser connector

Building a parseRule for RuleBaseFileParser connector

The parseRule utilizes the following objects in its context:

  • application - the application definition

  • config - shortcut to the Map config on the application

  • schema - the schema being iterated

  • state - Map object for storing state between records

  • inputStream - InputStream to the file (may or may not be used)

  • reader - BufferedReader object that can be used to iterate over the contents of the file

Usually the reader object is used to parse out the file (i.e. reader.readLine())

 

Here is a simple example of a ParseRule that parses a CSV:

// Simple parseRule to use reader to read next line

import sailpoint.tools.*; import sailpoint.tools.xml.*; import sailpoint.object.Schema; import sailpoint.connector.Connector; import sailpoint.connector.DelimitedFileConnector; import java.util.ArrayList; import java.util.List; import java.util.Hashap;

//

//Main

// Map

map = null;
List cols = new ArrayList();
RFC4180LineParser parser = new RFC4180LineParser(',');

// Check state for saved iterator

RFC4180LineIterator iterator = (RFC4180LineIterator)state.get("4180Iterator");
if ( iterator == null ) { iterator = new RFC4180LineIterator(reader);
String header = iterator.readLine();

//

System.out.println("header." + header);
cols = parser.parseLine(header);

//

// Save it off for next time

//

state.put("4180Iterator", iterator);
state.put("cols", cols); }
else if ( cols.size() == 0 ) { cols = (List)state.get("cols"); }
parser.setNumberOfColumns(cols.size());

String nextLine = iterator.readLine()
if ( nextLine != null ) { List tokens = parser.parseLine(nextLine);
map = DelimitedFileConnector.defaultBuildMap(cols, tokens);

//

System.out.println("object:"+XMLObjectFactory.getInstance().toXml(map)); } return map;

 

Version history
Revision #:
2 of 2
Last update:
‎Jun 10, 2023 02:33 AM
Updated by:
 
Contributors