@@ -116,6 +116,14 @@ public <T extends IEntity> List<T> findAll(T entity) throws FMSException {
116116 QueryResult result = executeQuery (intuitQuery );
117117 return (List <T >) result .getEntities ();
118118 }
119+
120+ @ SuppressWarnings ("unchecked" )
121+ public QueryResult findAllTaxClassification () throws FMSException {
122+
123+ String intuitQuery = "SELECT * FROM TaxClassification" ;
124+ QueryResult result = executeQuery (intuitQuery );
125+ return result ;
126+ }
119127
120128 /**
121129 * Method to add the given entity
@@ -279,6 +287,63 @@ public <T extends IEntity> T findById(T entity) throws FMSException {
279287 }
280288 return returnEntity ;
281289 }
290+
291+ /**
292+ * Method to find the record for the given id for the corresponding entity
293+ *
294+ * @param entity
295+ * @return returns the entity
296+ * @throws FMSException
297+ */
298+ @ SuppressWarnings ("unchecked" )
299+ public QueryResult findTaxClassificationByParentId (IEntity entity ) throws FMSException {
300+
301+ IntuitMessage intuitMessage = prepareFindByParentId (entity );
302+
303+ //execute interceptors
304+ executeInterceptors (intuitMessage );
305+
306+ QueryResult queryResult = null ;
307+
308+ // Iterate the IntuitObjects list in QueryResponse and convert to <T> entity
309+ IntuitResponse intuitResponse = (IntuitResponse ) intuitMessage .getResponseElements ().getResponse ();
310+ if (intuitResponse != null ) {
311+ QueryResponse queryResponse = intuitResponse .getQueryResponse ();
312+ if (queryResponse != null ) {
313+ queryResult = getQueryResult (queryResponse );
314+ }
315+ }
316+ return queryResult ;
317+ }
318+
319+ /**
320+ * Method to find the record for the given id for the corresponding entity
321+ *
322+ * @param entity
323+ * @return returns the entity
324+ * @throws FMSException
325+ */
326+ @ SuppressWarnings ("unchecked" )
327+ public QueryResult findTaxClassificationByLevel (IEntity entity ) throws FMSException {
328+
329+ IntuitMessage intuitMessage = prepareFindByLevel (entity );
330+
331+ //execute interceptors
332+ executeInterceptors (intuitMessage );
333+
334+ QueryResult queryResult = null ;
335+
336+ // Iterate the IntuitObjects list in QueryResponse and convert to <T> entity
337+ IntuitResponse intuitResponse = (IntuitResponse ) intuitMessage .getResponseElements ().getResponse ();
338+ if (intuitResponse != null ) {
339+ QueryResponse queryResponse = intuitResponse .getQueryResponse ();
340+ if (queryResponse != null ) {
341+ queryResult = getQueryResult (queryResponse );
342+ }
343+ }
344+ return queryResult ;
345+ }
346+
282347
283348
284349 /**
@@ -1107,6 +1172,73 @@ private <T extends IEntity> IntuitMessage prepareFindById(T entity) throws FMSEx
11071172 return intuitMessage ;
11081173 }
11091174
1175+ private <T extends IEntity > IntuitMessage prepareFindByLevel (T entity ) throws FMSException {
1176+ Class <?> objectClass = entity .getClass ();
1177+ Object level = null ;
1178+ Method m ;
1179+
1180+ try {
1181+ m = objectClass .getMethod ("getLevel" );
1182+ level = m .invoke (entity );
1183+ } catch (Exception e ) {
1184+ throw new FMSException ("Unable to read the method getId" , e );
1185+ }
1186+
1187+ // The preferences/companyInfo check is to skip the Id null validation as it is not required for Preferences/CompanyInfo Read operation
1188+ if (level == null ) {
1189+ throw new FMSException ("level is required." );
1190+ }
1191+
1192+ IntuitMessage intuitMessage = new IntuitMessage ();
1193+ RequestElements requestElements = intuitMessage .getRequestElements ();
1194+
1195+ //set the request params
1196+ Map <String , String > requestParameters = requestElements .getRequestParameters ();
1197+ requestParameters .put (RequestElements .REQ_PARAM_METHOD_TYPE , MethodType .GET .toString ());
1198+ requestParameters .put (RequestElements .REQ_PARAM_LEVEL , level .toString ());
1199+
1200+ requestElements .setContext (context );
1201+ requestElements .setEntity (entity );
1202+
1203+ return intuitMessage ;
1204+ }
1205+
1206+ private <T extends IEntity > IntuitMessage prepareFindByParentId (T entity ) throws FMSException {
1207+ Class <?> objectClass = entity .getClass ();
1208+ Class <?> parentClass ;
1209+ Object parentRef = null ;
1210+ Object parentId = null ;
1211+ Method m ;
1212+
1213+ try {
1214+ m = objectClass .getMethod ("getParentRef" );
1215+ parentRef = m .invoke (entity );
1216+ parentClass = parentRef .getClass ();
1217+ m = parentClass .getMethod ("getValue" );
1218+ parentId = m .invoke (parentRef );
1219+ } catch (Exception e ) {
1220+ throw new FMSException ("Unable to read the method getId" , e );
1221+ }
1222+
1223+ // The preferences/companyInfo check is to skip the Id null validation as it is not required for Preferences/CompanyInfo Read operation
1224+ if (parentId == null ) {
1225+ throw new FMSException ("parentId is required." );
1226+ }
1227+
1228+ IntuitMessage intuitMessage = new IntuitMessage ();
1229+ RequestElements requestElements = intuitMessage .getRequestElements ();
1230+
1231+ //set the request params
1232+ Map <String , String > requestParameters = requestElements .getRequestParameters ();
1233+ requestParameters .put (RequestElements .REQ_PARAM_METHOD_TYPE , MethodType .GET .toString ());
1234+ requestParameters .put (RequestElements .REQ_PARAM_PARENT_ID , parentId .toString ());
1235+
1236+ requestElements .setContext (context );
1237+ requestElements .setEntity (entity );
1238+
1239+ return intuitMessage ;
1240+ }
1241+
11101242 private <T extends IEntity > IntuitMessage prepareEntitlementsRequest () throws FMSException {
11111243
11121244 IntuitMessage intuitMessage = new IntuitMessage ();
0 commit comments