UBDomain

@unitybase/base/UBDomain~ UBDomain

UnityBase domain object model. Construct new UBDomain instance based on getDomainInfo UB server method result

Usage sample:

// retrieve a localized caption of uba_user.name attribute
domain.get('uba_user').attr('name').caption

Constructor

new UBDomain(domainInfo)

Arguments:
  1. domainInfo (Object)  getDomainInfo UB server method result
    Properties
    1. domain (Object)  raw entities collection
    2. entityMethods (Object)  entities methods access rights for current user
    3. models (Object)  information about domain models
    4. i18n (Object)  entities localization to current user language
    5. forceMIMEConvertors (Object)  list of registered server-side MIME converters for document type attribute content

Members

entities: Object.<String, UBEntity>

Hash of entities. Keys is entity name, value is UBEntity

connections: Array.<DBConnectionConfig>

Connection collection (for extended domain info only).

models: Object.<String, UBModel>

Models collection

forceMIMEConvertors: Object readonly

ubDataTypes static readonly

UnityBase base attribute data types
Properties:
Name Type Description
String Small string. MSSQL: NVARCHAR, ORACLE: NVARCHAR2, POSTGRE: VARCHAR
Int 32-bite Integer. MSSQL: INT, ORACLE: INTEGER, POSTGRE: INTEGER
BigInt 64-bite Integer. MSSQL: BIGINT, ORACLE: NUMBER(19), POSTGRE: BIGINT
Float Double. MSSQL: FLOAT, ORACLE: NUMBER(19, 4), POSTGRE: NUMERIC(19, 4)
Currency Currency. MSSQL: FLOAT, ORACLE: NUMBER(19, 2), POSTGRE: NUMERIC(19, 2)
Boolean Boolean. MSSQL: TINYINT, ORACLE: NUMBER(1), POSTGRE: SMALLINT
DateTime Date + Time in UTC (GMT+0) timezone. MSSQL: DATETIME, OARCLE: DATE, POSTGRE: TIMESTAMP WITH TIME ZONE
Text Long strint. MSSQL: NVARCHAR(MAX), ORACLE: CLOB, POSTGRE: TEXT
ID Alias for BigInt
Entity Reference to enother entity. BigInt
Document Store a JSON with information about Document place in blob store
Many
TimeLog Seconds since UNIX epoch, Int64. MSSQL: BIGINT, ORACLE: NUMBER(19), POSTGRE: BIGINT
Enum Enumertion (see ubm_enum)
BLOB Bynary data. MSSQL: VARBINARY(MAX), ORACLE: BLOB, POSTGRE: BYTEA
Date Date (without time) in UTC (GMT+0)

ExpressionType static readonly

Types of expressions in attribute mapping
Properties:
Name Type Description
Field
Expression

ubMixins static readonly

UnityBase base mixins
Properties:
Name Type Description
dataHistory
mStorage
unity
treePath

ubServiceFields static readonly

Service attribute names
Properties:
Name Type Description
dateFrom
dateTo

EntityDataSourceType: String static readonly

Entity dataSource types
Properties:
Name Type Description
Normal String
External String
System String
Virtual String

EntityCacheTypes static

Properties:
Name Type Description
None
Entity
Session
SessionEntity

dialectsPriority static

Priority to apply a mapping of a attributes/entities to the physical tables depending of connection dialect

Methods

isEntityMethodsAccessible(entityCode, methodNames)

Check all provided entity methods are accessible via RLS.

If entity does not exist in domain or at last one of provided methods is not accessible - return false

Arguments:
  1. entityCode (String)
  2. methodNames (String|Array)

get(entityCode, raiseErrorIfNotExistsopt)UBEntity

Get entity by code
Arguments:
  1. entityCode (String)
  2. [raiseErrorIfNotExists=true] (Boolean)  If true(default) and entity does not exists throw error

has(entityCode)Boolean

Check entity present in domain & user has access right for at least one entity method
Arguments:
  1. entityCode (String)

eachEntity(callBack)

Iterates over domain entities and invokes callBack for each entity. The iteratee is invoked with three arguments: (UBEntity, entityName, UBDomain.entities)
Arguments:
  1. callBack (function)

filterEntities(config)Array

Filter entities by properties
Arguments:
  1. config (Object|function)
Example
// sessionCachedEntites contains all entities with property cacheType equal Session
     var sessionCachedEntites = domain.filterEntities({cacheType: 'Session'});

getPhysicalDataType(dataType)String static

Return physical type by UBDataType
Arguments:
  1. dataType (String)