fluid-ws-java-client/src/main/java/com/fluidbpm/ws/client/v1/sqlutil/wrapper/SQLUtilWebSocketRESTWrapper.java
public Form getAncestor(
			Form formToGetAncestorForParam,
			boolean includeFieldDataParam,
			boolean includeTableFieldsParam
	) {
		if(DISABLE_WS) {
			this.mode = Mode.RESTfulActive;
		}

		//ANCESTOR...
		try {
			//When mode is null or [WebSocketActive]...
			if(this.getAncestorClient == null &&
					Mode.RESTfulActive != this.mode) {
				this.getAncestorClient = new SQLUtilWebSocketGetAncestorClient(
						this.baseURL,
						null,
						this.loggedInUser.getServiceTicketAsHexUpper(),
						this.timeoutMillis,
						includeFieldDataParam,
						includeTableFieldsParam,
						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;
		}

		Form formToUse = (formToGetAncestorForParam == null) ? null:
				new Form(formToGetAncestorForParam.getId());

		return (this.getAncestorClient == null) ?
				this.sqlUtilClient.getAncestor(
						formToUse,
						includeFieldDataParam,
						includeTableFieldsParam):
				this.getAncestorClient.getAncestorSynchronized(formToUse);
	}
public Form getAncestor(
			Form formToGetAncestorForParam,
			boolean includeFieldDataParam,
			boolean includeTableFieldsParam
	) {
		if(DISABLE_WS) {
			this.mode = Mode.RESTfulActive;
		}

		//ANCESTOR...
		try {
			//When mode is null or [WebSocketActive]...
			if(this.getAncestorClient == null &&
					Mode.RESTfulActive != this.mode) {
				this.getAncestorClient = new SQLUtilWebSocketGetAncestorClient(
						this.baseURL,
						null,
						this.loggedInUser.getServiceTicketAsHexUpper(),
						this.timeoutMillis,
						includeFieldDataParam,
						includeTableFieldsParam,
						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;
		}

		Form formToUse = (formToGetAncestorForParam == null) ? null:
				new Form(formToGetAncestorForParam.getId());

		return (this.getAncestorClient == null) ?
				this.sqlUtilClient.getAncestor(
						formToUse,
						includeFieldDataParam,
						includeTableFieldsParam):
				this.getAncestorClient.getAncestorSynchronized(formToUse);
	}
Retrieves the Ancestor for the {@code formToGetAncestorForParam}.

@param formToGetAncestorForParam The Fluid Form to get Ancestor for.
@param includeFieldDataParam Should Ancestor (Form) Field data be included?
@param includeTableFieldsParam Should Table Record (Form) Field data be included?

@return The {@code formToGetAncestorForParam} Ancestor as {@code Form}'s.