Namespace: OpenEdge.DataAdmin.Binding
Type: Class UserContext
Parent Classes:
Inherits: OpenEdge.DataAdmin.Binding.DataAdminContext
Implements: OpenEdge.DataAdmin.Binding.IDataAdminContext


Copyright (c) 2010-2013,2015,2023 by Progress Software Corporation. All rights reserved.
Author(s):hdaniels
Created:Aug 2010



Method Summary
  Options Name Purpose
  LOGICAL CanFind (character)
  LOGICAL CanFind (character, character)
  CHARACTER ColumnExpression (character, character, character) /* Override to split id in name and domain We do remove @ from id for user with no domain in copyTables but not in ReadJson* so the record may have "<name>@' in buffer or Row.keyvalues before being copied into context, so it is safer to use name annd domain in expression than removing @ from id in this case (we do this in Find also ) (this was added to ensure this works when RowBuffer:NewContext calls GetWhere - GetWhere was fixed to call this) */
  CopyNewForTenant (character, table)
  CopyNewTableForParent (IRow, handle) /* called with tracking-changes */
  CopyTable (IDataAdminModel)
  CopyTable (table)
  CopyTable (table, character, character)
  CopyTableForParent (IRow, IDataAdminModel)
  OpenEdge.DataAdmin.IDataAdminCollection CreateCollection (IDataAdminContext)
  OpenEdge.DataAdmin.IDataAdminElement CreateEntity (IRequestInfo)
  OpenEdge.DataAdmin.Binding.Query.FilteredContext CreateFilteredContext (character) /** create default filteredcontext that also handles parent/keyvalue as filter. */
  OpenEdge.DataAdmin.Binding.Query.FilteredContext CreateFilteredContext (IRequestInfo) /** create default filteredcontext with requestinfo */
  OpenEdge.DataAdmin.Binding.Query.FilteredContext CreateFilteredContext (IRow, IRequestInfo)
  CreateRow (IDataAdminElement) /* method public override character GetServerJoinFields(parentid as char): case parentid: when "tenants" then return "Id,TenantId". end. return super:GetServerJoinFields(parentid). end. */
  CreateRow (IUser)
  CreateRow (IUser, character)
  DataRefreshed (IFetchResponse)
  LOGICAL Find (character)
  LOGICAL Find (character, character)
  CHARACTER FindExpression (character)
  CHARACTER GetCreateError (IUser)
  OpenEdge.DataAdmin.IDataAdminElement GetEntity (character) /* Override to deal with the fact that id is split into namer and domain on client */
  CHARACTER GetJoinFields (character)
  CHARACTER GetServerJoinFields (character)
  HANDLE InitDataset () /* temporary until all sub classes are using createDataset */
  InitRow (character) /** also used for name only - domain is then added later */
  ReadRowForParent (IRow, JSONObject)
  ReadRowForTenant (character, JSONObject)
  SplitId (character, character, character)
  ValidateBuffer (handle)

Constructor Summary
  Options Name Purpose
  UserContext ()
  UserContext (IIdentityScope)

Property Summary
  Options Name Purpose
  OpenEdge.DataAdmin.Binding.Factory.IContextFactory ContextFactory
  INTEGER Count
  CHARACTER KeyFields
  HANDLE TableHandle


Method Detail
Top

LOGICAL CanFind (character)

Parameters:
pid CHARACTER
 
Returns LOGICAL
 
Top

LOGICAL CanFind (character, character)

Parameters:
pid CHARACTER
 
pDomain CHARACTER
 
Returns LOGICAL
 
Top

CHARACTER ColumnExpression (character, character, character)

/* Override to split id in name and domain
We do remove @ from id for user with no domain in copyTables but not in
ReadJson* so the record may have "<name>@' in buffer or Row.keyvalues
before being copied into context, so it is safer to use name annd domain in expression than removing @ from id in this case
(we do this in Find also )
(this was added to ensure this works when RowBuffer:NewContext calls GetWhere
- GetWhere was fixed to call this)
Parameters:
pcColumn CHARACTER
 
pcOperator CHARACTER
 
pcValue CHARACTER
 
Returns CHARACTER
 
Top

CopyNewForTenant (character, table)

Parameters:
pcVal CHARACTER
 
copytable TABLE
 
Top

CopyNewTableForParent (IRow, handle)

/* called with tracking-changes
Parameters:
pRow OpenEdge.DataAdmin.Binding.IRow
 
phTbl HANDLE
 
Top

CopyTable (IDataAdminModel)

Parameters:
cntxt OpenEdge.DataAdmin.Binding.IDataAdminModel
 
Top

CopyTable (table)

Parameters:
copytable TABLE
 
Top

CopyTable (table, character, character)

Parameters:
copytable TABLE
 
pcType CHARACTER
 
pcValue CHARACTER
 
Top

CopyTableForParent (IRow, IDataAdminModel)

Parameters:
piRow OpenEdge.DataAdmin.Binding.IRow
 
cntxt OpenEdge.DataAdmin.Binding.IDataAdminModel
 
Top

OpenEdge.DataAdmin.IDataAdminCollection CreateCollection (IDataAdminContext)

Parameters:
cntxt OpenEdge.DataAdmin.Binding.IDataAdminContext
 
Returns OpenEdge.DataAdmin.IDataAdminCollection
 
Top

OpenEdge.DataAdmin.IDataAdminElement CreateEntity (IRequestInfo)

Parameters:
preq OpenEdge.DataAdmin.IRequestInfo
 
Returns OpenEdge.DataAdmin.IDataAdminElement
 
Top

OpenEdge.DataAdmin.Binding.Query.FilteredContext CreateFilteredContext (character)

Purpose: create default filteredcontext that also handles parent/keyvalue as filter.
Parameters:
filter CHARACTER
 
Returns OpenEdge.DataAdmin.Binding.Query.FilteredContext
 
Top

OpenEdge.DataAdmin.Binding.Query.FilteredContext CreateFilteredContext (IRequestInfo)

Purpose: create default filteredcontext with requestinfo
Parameters:
pReq OpenEdge.DataAdmin.IRequestInfo
 
Returns OpenEdge.DataAdmin.Binding.Query.FilteredContext
 
Top

OpenEdge.DataAdmin.Binding.Query.FilteredContext CreateFilteredContext (IRow, IRequestInfo)

Parameters:
pparent OpenEdge.DataAdmin.Binding.IRow
 
pReq OpenEdge.DataAdmin.IRequestInfo
 
Returns OpenEdge.DataAdmin.Binding.Query.FilteredContext
 
Top

CreateRow (IDataAdminElement)

/*
method public override character GetServerJoinFields(parentid as char):
case parentid:
when "tenants" then
return "Id,TenantId".
end.
return super:GetServerJoinFields(parentid).
end.
Parameters:
entity OpenEdge.DataAdmin.IDataAdminElement
 
Top

CreateRow (IUser)

Parameters:
userImpl OpenEdge.DataAdmin.IUser
 
Top

CreateRow (IUser, character)

Parameters:
userImpl OpenEdge.DataAdmin.IUser
 
pcDomain CHARACTER
 
Top

DataRefreshed (IFetchResponse)

Parameters:
pResponse OpenEdge.DataAdmin.Message.IFetchResponse
 
Top

LOGICAL Find (character)

Parameters:
pid CHARACTER
 
Returns LOGICAL
 
Top

LOGICAL Find (character, character)

Parameters:
pid CHARACTER
 
pDomain CHARACTER
 
Returns LOGICAL
 
Top

CHARACTER FindExpression (character)

Parameters:
pusrid CHARACTER
 
Returns CHARACTER
 
Top

CHARACTER GetCreateError (IUser)

Parameters:
userImpl OpenEdge.DataAdmin.IUser
 
Returns CHARACTER
 
Top

OpenEdge.DataAdmin.IDataAdminElement GetEntity (character)

/* Override to deal with the fact that id is split into namer and domain on client
Parameters:
pKey CHARACTER
 
Returns OpenEdge.DataAdmin.IDataAdminElement
 
Top

CHARACTER GetJoinFields (character)

Parameters:
parentid CHARACTER
 
Returns CHARACTER
 
Top

CHARACTER GetServerJoinFields (character)

Parameters:
parentid CHARACTER
 
Returns CHARACTER
 
Top

HANDLE InitDataset ()

/* temporary until all sub classes are using createDataset
Returns HANDLE
 
Top

InitRow (character)

Purpose: also used for name only - domain is then added later
Parameters:
pId CHARACTER
 
Top

ReadRowForParent (IRow, JSONObject)

Parameters:
pRow OpenEdge.DataAdmin.Binding.IRow
 
pjson Progress.Json.ObjectModel.JsonObject
 
Top

ReadRowForTenant (character, JSONObject)

Parameters:
pcVal CHARACTER
 
pjson Progress.Json.ObjectModel.JsonObject
 
Top

SplitId (character, character, character)

Parameters:
id CHARACTER
 
puser CHARACTER
 
pdomain CHARACTER
 
Top

ValidateBuffer (handle)

Parameters:
phUser HANDLE
 


Constructor Detail
Top

UserContext ()

Top

UserContext (IIdentityScope)

Parameters:
pscope OpenEdge.DataAdmin.Binding.Factory.IIdentityScope
 


Property Detail
Top

OpenEdge.DataAdmin.Binding.Factory.IContextFactory ContextFactory

Returns OpenEdge.DataAdmin.Binding.Factory.IContextFactory
 
Top

INTEGER Count

Returns INTEGER
 
Top

CHARACTER KeyFields

Returns CHARACTER
 
Top

HANDLE TableHandle

Returns HANDLE