fluid-ws-java-client/src/main/java/com/fluidbpm/ws/client/v1/sqlutil/wrapper/SQLUtilWebSocketRESTWrapper.java
public List<FormListing> getDescendants(
			boolean includeFieldDataParam,
			boolean includeTableFieldsParam,
			boolean includeTableFieldFormRecordInfoParam,
			boolean massFetchParam,
			Form ... formsToGetDescForParam)
	{
		if(DISABLE_WS) {
			this.mode = Mode.RESTfulActive;
		}
		
		//DESCENDANTS...
		try {
			//When mode is null or [WebSocketActive]...
			if(this.getDescendantsClient == null && Mode.RESTfulActive != this.mode) {
				this.getDescendantsClient = new SQLUtilWebSocketGetDescendantsClient(
						this.baseURL,
						null,
						this.loggedInUser.getServiceTicketAsHexUpper(),
						this.timeoutMillis,
						includeFieldDataParam,
						includeTableFieldsParam,
						includeTableFieldFormRecordInfoParam,
						massFetchParam,
						COMPRESS_RSP,
						COMPRESS_RSP_CHARSET);

				this.mode = Mode.WebSocketActive;
			}
		} catch (FluidClientException clientExcept) {
			if(clientExcept.getErrorCode() !=
					FluidClientException.ErrorCode.WEB_SOCKET_DEPLOY_ERROR) {
				throw clientExcept;
			}
			this.mode = Mode.RESTfulActive;
		}

		if(formsToGetDescForParam == null || formsToGetDescForParam.length < 1) {
			return null;
		}

		Form[] formsToFetchFor =
				new Form[formsToGetDescForParam.length];
		for(int index = 0;index < formsToFetchFor.length;index++) {
			formsToFetchFor[index] = new Form(formsToGetDescForParam[index].getId());
		}

		if(this.getDescendantsClient != null) {
			return this.getDescendantsClient.getDescendantsSynchronized(
					formsToFetchFor);
		} else {
			List<FormListing> returnVal = new ArrayList<>();

			for(Form formToFetchFor : formsToFetchFor) {
				List<Form> listOfForms =
						this.sqlUtilClient.getDescendants(
								formToFetchFor,
								includeFieldDataParam,
								includeTableFieldsParam,
								includeTableFieldFormRecordInfoParam);

				FormListing toAdd = new FormListing();
				toAdd.setListing(listOfForms);
				toAdd.setListingCount((listOfForms == null) ? 0 : listOfForms.size());
				returnVal.add(toAdd);
			}

			return returnVal;
		}
	}
public List<FormListing> getDescendants(
			boolean includeFieldDataParam,
			boolean includeTableFieldsParam,
			boolean includeTableFieldFormRecordInfoParam,
			boolean massFetchParam,
			Form ... formsToGetDescForParam)
	{
		if(DISABLE_WS) {
			this.mode = Mode.RESTfulActive;
		}
		
		//DESCENDANTS...
		try {
			//When mode is null or [WebSocketActive]...
			if(this.getDescendantsClient == null && Mode.RESTfulActive != this.mode) {
				this.getDescendantsClient = new SQLUtilWebSocketGetDescendantsClient(
						this.baseURL,
						null,
						this.loggedInUser.getServiceTicketAsHexUpper(),
						this.timeoutMillis,
						includeFieldDataParam,
						includeTableFieldsParam,
						includeTableFieldFormRecordInfoParam,
						massFetchParam,
						COMPRESS_RSP,
						COMPRESS_RSP_CHARSET);

				this.mode = Mode.WebSocketActive;
			}
		} catch (FluidClientException clientExcept) {
			if(clientExcept.getErrorCode() !=
					FluidClientException.ErrorCode.WEB_SOCKET_DEPLOY_ERROR) {
				throw clientExcept;
			}
			this.mode = Mode.RESTfulActive;
		}

		if(formsToGetDescForParam == null || formsToGetDescForParam.length < 1) {
			return null;
		}

		Form[] formsToFetchFor =
				new Form[formsToGetDescForParam.length];
		for(int index = 0;index < formsToFetchFor.length;index++) {
			formsToFetchFor[index] = new Form(formsToGetDescForParam[index].getId());
		}

		if(this.getDescendantsClient != null) {
			return this.getDescendantsClient.getDescendantsSynchronized(
					formsToFetchFor);
		} else {
			List<FormListing> returnVal = new ArrayList<>();

			for(Form formToFetchFor : formsToFetchFor) {
				List<Form> listOfForms =
						this.sqlUtilClient.getDescendants(
								formToFetchFor,
								includeFieldDataParam,
								includeTableFieldsParam,
								includeTableFieldFormRecordInfoParam);

				FormListing toAdd = new FormListing();
				toAdd.setListing(listOfForms);
				toAdd.setListingCount((listOfForms == null) ? 0 : listOfForms.size());
				returnVal.add(toAdd);
			}

			return returnVal;
		}
	}
public List < FormListing > getDescendants ( boolean includeFieldDataParam , boolean includeTableFieldsParam , boolean includeTableFieldFormRecordInfoParam , boolean massFetchParam , Form ... formsToGetDescForParam ) { if ( DISABLE_WS ) { this . mode = Mode . RESTfulActive ; } //DESCENDANTS... try { //When mode is null or [WebSocketActive]... if ( this . getDescendantsClient == null && Mode . RESTfulActive != this . mode ) { this . getDescendantsClient = new SQLUtilWebSocketGetDescendantsClient ( this . baseURL , null , this . loggedInUser . getServiceTicketAsHexUpper ( ) , this . timeoutMillis , includeFieldDataParam , includeTableFieldsParam , includeTableFieldFormRecordInfoParam , massFetchParam , COMPRESS_RSP , COMPRESS_RSP_CHARSET ) ; this . mode = Mode . WebSocketActive ; } } catch ( FluidClientException clientExcept ) { if ( clientExcept . getErrorCode ( ) != FluidClientException . ErrorCode . WEB_SOCKET_DEPLOY_ERROR ) { throw clientExcept ; } this . mode = Mode . RESTfulActive ; } if ( formsToGetDescForParam == null || formsToGetDescForParam . length < 1 ) { return null ; } Form [ ] formsToFetchFor = new Form [ formsToGetDescForParam . length ] ; for ( int index = 0 ; index < formsToFetchFor . length ; index ++ ) { formsToFetchFor [ index ] = new Form ( formsToGetDescForParam [ index ] . getId ( ) ) ; } if ( this . getDescendantsClient != null ) { return this . getDescendantsClient . getDescendantsSynchronized ( formsToFetchFor ) ; } else { List < FormListing > returnVal = new ArrayList <> ( ) ; for ( Form formToFetchFor : formsToFetchFor ) { List < Form > listOfForms = this . sqlUtilClient . getDescendants ( formToFetchFor , includeFieldDataParam , includeTableFieldsParam , includeTableFieldFormRecordInfoParam ) ; FormListing toAdd = new FormListing ( ) ; toAdd . setListing ( listOfForms ) ; toAdd . setListingCount ( ( listOfForms == null ) ? 0 : listOfForms . size ( ) ) ; returnVal . add ( toAdd ) ; } return returnVal ; } }
Retrieves all the Descendants (Forms) for the {@code formsToGetDescForParam}.

@param includeFieldDataParam Should Ancestor (Form) Field data be included?
@param includeTableFieldsParam Should Table Record (Form) Field data be included?
@param includeTableFieldFormRecordInfoParam Does table record form data need to be included.
@param massFetchParam Is the fetch a large fetch.
@param formsToGetDescForParam The Fluid Form to get Descendants for.

@return The {@code formsToGetDescForParam} Descendants as {@code Form}'s.
Retrieves all the Descendants ( Forms ) for the { @code formsToGetDescForParam } .