protected override void FillResult(IList result)
        {
            /*
             * The query that we need to create:
             *   SELECT new list(e) FROM versionsReferencedEntity e
             *   WHERE
             * (all specified conditions, transformed, on the "e" entity) AND
             * e.revision = :revision
             */

            var verEntCfg            = VerCfg.AuditEntCfg;
            var revisionPropertyPath = verEntCfg.RevisionNumberPath;

            QueryBuilder.RootParameters.AddWhereWithParam(revisionPropertyPath, "=", _revision);

            foreach (var criterion in Criterions)
            {
                criterion.AddToQuery(VerCfg, VersionsReader, EntityName, QueryBuilder, QueryBuilder.RootParameters);
            }

            var query = BuildQuery();


            if (HasProjection)
            {
                query.List(result);
                return;
            }
            var queryResult = new List <IDictionary>();

            query.List(queryResult);
            EntityInstantiator.AddInstancesFromVersionsEntities(EntityName, result, queryResult, _revision);
        }
Пример #2
0
    public void OnButtonPressed(VirtualButtonAbstractBehaviour vb)
    {
        DeleteComponent();
        Debug.Log("Log ra cho vui Presseddddd");
        MyEntity entity = ItemManager.getEntity(mTrackableBehaviour.TrackableName);

        if (entity == null)
        {
            return;
        }
        MyDisplay display = entity.getNextDisplay();

        if (display == null)
        {
            return;
        }
        Debug.Log("Log ra cho vui modelll");
        foreach (Model model in display.models)
        {
            if (model != null)
            {
                GameObject realModel = Instantiate(Resources.Load(model.name)) as GameObject;
                realModel.transform.parent      = mTrackableBehaviour.transform;
                realModel.transform.position    = mTrackableBehaviour.transform.position + model.getTransform().GetPosition();
                realModel.transform.localScale  = model.getTransform().GetScale();
                realModel.transform.eulerAngles = model.getTransform().GetRotation();
                realModel.SetActive(true);
                EntityInstantiator enIns = GetComponent <EntityInstantiator>();
                enIns.realModels.Add(realModel);
            }
        }
        Debug.Log("chips add log..." + mTrackableBehaviour.TrackableName);
    }
Пример #3
0
 public object ConvertQueryResult(AuditConfiguration auditCfg, EntityInstantiator entityInstantiator, string entityName,
                                  long revision, object value)
 {
     return(auditCfg.EntCfg.IsVersioned(entityName) ?
            entityInstantiator.CreateInstanceFromVersionsEntity(entityName, (IDictionary)value, revision) :
            value);
 }
 protected void ApplyProjections(IQuery query, IList resultToFill, long revision)
 {
     if (HasProjection())
     {
         foreach (var qr in query.List())
         {
             if (projections.Count == 1)
             {
                 // qr is the value of the projection itself
                 var projection = projections[0];
                 resultToFill.Add(projection.Item2.ConvertQueryResult(VerCfg, EntityInstantiator, projection.Item1, revision, qr));
             }
             else
             {
                 // qr is an array where each of its components holds the value of corresponding projection
                 var qresults = (object[])qr;
                 var tresults = new object[qresults.Length];
                 for (var i = 0; i < qresults.Length; i++)
                 {
                     var projection = projections[i];
                     tresults[i] = projection.Item2.ConvertQueryResult(VerCfg, EntityInstantiator, projection.Item1, revision, qresults[i]);
                 }
                 resultToFill.Add(tresults);
             }
         }
     }
     else
     {
         var queryResult = new List <IDictionary>();
         query.List(queryResult);
         EntityInstantiator.AddInstancesFromVersionsEntities(EntityName, resultToFill, queryResult, revision);
     }
 }
        protected AbstractRevisionsQuery(AuditConfiguration auditConfiguration,
                                         IAuditReaderImplementor versionsReader,
                                         bool includesDeletations,
                                         string entityName)
        {
            AuditConfiguration = auditConfiguration;
            _versionsReader    = versionsReader;

            _criterions        = new List <IAuditCriterion>();
            EntityInstantiator = new EntityInstantiator(auditConfiguration, versionsReader);

            EntityName = entityName;

            VersionsEntityName = auditConfiguration.AuditEntCfg.GetAuditEntityName(EntityName);

            QueryBuilder         = new QueryBuilder(VersionsEntityName, QueryConstants.ReferencedEntityAlias);
            _includesDeletations = includesDeletations;

            if (!auditConfiguration.EntCfg.IsVersioned(EntityName))
            {
                throw new NotAuditedException(EntityName, EntityName + " is not versioned!");
            }

            _associationQueries  = new List <AuditRevisionsAssociationQuery <TEntity> >();
            _associationQueryMap = new Dictionary <string, AuditRevisionsAssociationQuery <TEntity> >();
        }
Пример #6
0
 public object MapToObjectFromFullMap(EntityInstantiator entityInstantiator,
                                      IDictionary data,
                                      object dataObject,
                                      long revision)
 {
     return(_relatedIdMapper.MapToIdFromMap((IDictionary)data[_verEntCfg.OriginalIdPropName]));
 }
        public object MapToObjectFromFullMap(EntityInstantiator entityInstantiator,
											IDictionary data,
											object dataObject,
											long revision)
        {
            return relatedIdMapper.MapToIdFromMap((IDictionary)data[verEntCfg.OriginalIdPropName]);
        }
 public object MapToObjectFromFullMap(EntityInstantiator entityInstantiator,
                                      IDictionary data,
                                      object dataObject,
                                      long revision)
 {
     return(entityInstantiator.CreateInstanceFromVersionsEntity(_relatedIdData.EntityName, data, revision));
 }
Пример #9
0
    public void DeleteComponent()
    {
        Renderer[] rendererComponents = GetComponentsInChildren <Renderer>(true);
        Collider[] colliderComponents = GetComponentsInChildren <Collider>(true);

        // Disable rendering:
        foreach (Renderer component in rendererComponents)
        {
            component.enabled = false;
        }

        // Disable colliders:
        foreach (Collider component in colliderComponents)
        {
            component.enabled = false;
        }

        EntityInstantiator enIns = GetComponent <EntityInstantiator>();

        foreach (GameObject model in enIns.realModels)
        {
            GameObject.Destroy(model);
        }
        enIns.realModels.Clear();
    }
Пример #10
0
    public void DeleteComponent()
    {
        Renderer[] rendererComponents = GetComponentsInChildren <Renderer>(true);
        Collider[] colliderComponents = GetComponentsInChildren <Collider>(true);

        // Disable rendering:
        foreach (Renderer component in rendererComponents)
        {
            component.enabled = false;
        }

        // Disable colliders:
        foreach (Collider component in colliderComponents)
        {
            component.enabled = false;
        }

        Debug.Log("Next chips display xoa ne" + mTrackableBehaviour.TrackableName);
        EntityInstantiator enIns = GetComponent <EntityInstantiator>();

        foreach (GameObject model in enIns.realModels)
        {
            GameObject.Destroy(model);
        }
        enIns.realModels.Clear();
    }
 public object MapToObjectFromFullMap(EntityInstantiator entityInstantiator,
                                      IDictionary data,
                                      object dataObject,
                                      long revision)
 {
     // dataObject is not null, as this mapper can only be used in an index.
     return(ReflectionTools.GetGetter(dataObject.GetType(), _propertyName, _accessType).Get(dataObject));
 }
Пример #12
0
        public object MapToObjectFromFullMap(EntityInstantiator entityInstantiator, IDictionary data, object dataObject, long revision)
        {
            var componentInstance = dataObject ?? ReflectionTools.CreateInstanceByDefaultConstructor(_componentClass);

            _delegate.MapToEntityFromMap(entityInstantiator.AuditConfiguration, componentInstance, data, null,
                                         entityInstantiator.AuditReaderImplementor, revision);
            return(componentInstance);
        }
 public Object MapToObjectFromFullMap(EntityInstantiator entityInstantiator,
                                      IDictionary <String, Object> data,
                                      Object dataObject, long revision)
 {
     // dataObject is not null, as this mapper can only be used in an index.
     //ORIG: return ReflectionTools.getGetter(dataObject.getClass(), propertyName, accessType).get(dataObject);
     return(dataObject.GetType().GetProperty(propertyName).GetValue(dataObject, null));
 }
 public Object MapToObjectFromFullMap(EntityInstantiator entityInstantiator, 
     IDictionary<String, Object> data,
     Object dataObject, long revision)
 {
     // dataObject is not null, as this mapper can only be used in an index.
     //ORIG: return ReflectionTools.getGetter(dataObject.getClass(), propertyName, accessType).get(dataObject);
     return dataObject.GetType().GetProperty(propertyName).GetValue(dataObject, null);
 }
Пример #15
0
        public void SpawnGreyman()
        {
            Vector3 pos = DreamDirector.Player.transform.position +
                          (DreamDirector.Player.transform.forward * DistanceFromPlayer);
            Vector3    forward = DreamDirector.Player.transform.position - pos;
            Quaternion rot     = Quaternion.LookRotation(forward, Vector3.up);

            EntityInstantiator.InstantiatePrefab("Prefabs/Greyman", pos, rot);
        }
Пример #16
0
 public Object MapToObjectFromFullMap(EntityInstantiator entityInstantiator, IDictionary <String, Object> data,
                                      Object dataObject, long revision)
 {
     if (!data.ContainsKey(_propertyName))
     {
         return(null);
     }
     return(data[_propertyName]);
 }
Пример #17
0
        public AbstractCollectionInitializor(AuditConfiguration verCfg,
                                             IAuditReaderImplementor versionsReader,
                                             IRelationQueryGenerator queryGenerator,
                                             Object primaryKey, long revision)
        {
            this.versionsReader = versionsReader;
            this.queryGenerator = queryGenerator;
            this.primaryKey     = primaryKey;
            this.revision       = revision;

            entityInstantiator = new EntityInstantiator(verCfg, versionsReader);
        }
 protected AbstractCollectionInitializor(AuditConfiguration verCfg,
                                         IAuditReaderImplementor versionsReader,
                                         IRelationQueryGenerator queryGenerator,
                                         object primaryKey,
                                         long revision,
                                         bool removed)
 {
     _versionsReader    = versionsReader;
     _queryGenerator    = queryGenerator;
     _primaryKey        = primaryKey;
     _removed           = removed;
     Revision           = revision;
     EntityInstantiator = new EntityInstantiator(verCfg, versionsReader);
 }
Пример #19
0
        protected AbstractAuditQuery(AuditConfiguration verCfg, IAuditReaderImplementor versionsReader,
                                     System.Type cls)
        {
            this.verCfg         = verCfg;
            this.versionsReader = versionsReader;

            criterions         = new List <IAuditCriterion>();
            entityInstantiator = new EntityInstantiator(verCfg, versionsReader);

            entityName = cls.FullName;

            versionsEntityName = verCfg.AuditEntCfg.GetAuditEntityName(entityName);

            qb = new QueryBuilder(versionsEntityName, "e");
        }
        protected AbstractAuditQuery(AuditConfiguration verCfg, IAuditReaderImplementor versionsReader, string entityName)
        {
            VerCfg             = verCfg;
            EntityName         = entityName;
            VersionsReader     = versionsReader;
            Criterions         = new List <IAuditCriterion>();
            EntityInstantiator = new EntityInstantiator(verCfg, versionsReader);
            EntityName         = entityName;
            VersionsEntityName = verCfg.AuditEntCfg.GetAuditEntityName(EntityName);
            QueryBuilder       = new QueryBuilder(VersionsEntityName, QueryConstants.ReferencedEntityAlias);

            if (!verCfg.EntCfg.IsVersioned(EntityName))
            {
                throw new NotAuditedException(EntityName, EntityName + " is not versioned!");
            }
        }
Пример #21
0
        // TODO: make redundant
        /// <summary>
        /// Loads a Torii map and returns a gameobject with entities in the torii map as child elements
        /// </summary>
        public static GameObject LoadToriiMap(string filePath, ResourceLifespan lifespan, out TMAP tmap)
        {
            // TODO: handle missing files

            tmap = ResourceManager.Load <TMAP>(filePath, lifespan);

            GameObject tmapObject = new GameObject(tmap.Header.Name);

            foreach (ENTITY e in tmap.Content.Entities)
            {
                GameObject entityObject = EntityInstantiator.Instantiate(e);
                entityObject.transform.SetParent(tmapObject.transform);
            }

            return(tmapObject);
        }
        public override IEnumerable <TEntity> Results()
        {
            /*
             * The query that should be executed in the versions table:
             * SELECT e FROM ent_ver e
             *   WHERE
             * (all specified conditions, transformed, on the "e" entity) AND
             * (selecting e entities at revision :revision)
             *   --> for DefaultAuditStrategy:
             *     e.revision = (SELECT max(e2.revision) FROM versionsReferencedEntity e2
             *       WHERE e2.revision <= :revision AND e2.id = e.id)
             *
             *   --> for ValidityAuditStrategy:
             *     e.revision <= :revision and (e.endRevision > :revision or e.endRevision is null)
             *
             *     AND
             * (only non-deleted entities)
             *     e.revision_type != DEL
             */

            var verEntCfg              = AuditConfiguration.AuditEntCfg;
            var revisionPropertyPath   = verEntCfg.RevisionNumberPath;
            var originalIdPropertyName = verEntCfg.OriginalIdPropName;

            var referencedIdData = new MiddleIdData(verEntCfg,
                                                    AuditConfiguration.EntCfg[EntityName].IdMappingData,
                                                    prefix: null,
                                                    EntityName,
                                                    AuditConfiguration.EntCfg.IsVersioned(EntityName));

            // (selecting e entities at revision :revision)
            // --> based on auditStrategy (see above)
            AuditConfiguration.GlobalCfg.AuditStrategy.AddEntityAtRevisionRestriction(QueryBuilder, QueryBuilder.RootParameters, revisionPropertyPath,
                                                                                      verEntCfg.RevisionEndFieldName, true, referencedIdData,
                                                                                      revisionPropertyPath, originalIdPropertyName, QueryConstants.ReferencedEntityAlias, QueryConstants.ReferencedEntityAliasDefAudStr);
            SetIncludeDeletationClause();

            AddCriterions();

            // the result of BuildAndExecuteQuery is always the name-value pair of EntityMode.Map
            return(from versionsEntity in BuildAndExecuteQuery <IDictionary>()
                   select(TEntity) EntityInstantiator.CreateInstanceFromVersionsEntity(EntityName, versionsEntity, _revision));
        }
Пример #23
0
        public override IEnumerable <TEntity> Results()
        {
            /*
             * The query that should be executed in the versions table:
             * SELECT e FROM ent_ver e, rev_entity r WHERE
             * e.revision_type != DEL (if includesDeletations == false) AND
             * e.revision = r.revision AND
             * (all specified conditions, transformed, on the "e" entity)
             * ORDER BY e.revision ASC (unless another order is specified)
             */
            SetIncludeDeletationClause();

            AddCriterions();

            AddOrders();

            // the result of BuildAndExecuteQuery is always the name-value pair of EntityMode.Map
            return(from versionsEntity in BuildAndExecuteQuery <IDictionary>()
                   let revision = GetRevisionNumberFromDynamicEntity(versionsEntity)
                                  select(TEntity) EntityInstantiator.CreateInstanceFromVersionsEntity(EntityName, versionsEntity, revision));
        }
        protected AbstractRevisionsQuery(AuditConfiguration auditConfiguration,
                                         IAuditReaderImplementor versionsReader,
                                         bool includesDeletations, string entityName)
        {
            this.auditConfiguration = auditConfiguration;
            this.versionsReader     = versionsReader;

            criterions         = new List <IAuditCriterion>();
            entityInstantiator = new EntityInstantiator(auditConfiguration, versionsReader);

            this.entityName = entityName;

            versionsEntityName = auditConfiguration.AuditEntCfg.GetAuditEntityName(this.entityName);

            queryBuilder             = new QueryBuilder(versionsEntityName, QueryConstants.ReferencedEntityAlias);
            this.includesDeletations = includesDeletations;

            if (!auditConfiguration.EntCfg.IsVersioned(EntityName))
            {
                throw new NotAuditedException(EntityName, EntityName + " is not versioned!");
            }
        }
Пример #25
0
 public object MapToObjectFromFullMap(EntityInstantiator entityInstantiator, IDictionary <string, object> data, object dataObject, long revision)
 {
     return(((IDictionary <String, Object>)data[verEntCfg.OriginalIdPropName])[propertyName]);
 }
Пример #26
0
 public object MapToObjectFromFullMap(EntityInstantiator entityInstantiator, IDictionary data, object dataObject, long revision)
 {
     return(data.Contains(_propertyName) ? data[_propertyName] : null);
 }
Пример #27
0
        public override IEnumerable <IRevisionEntityInfo <TEntity, TRevisionEntity> > Results()
        {
            var auditEntitiesConfiguration = AuditConfiguration.AuditEntCfg;

            /*
             * The query that should be executed in the versions table:
             * SELECT e FROM ent_ver e, rev_entity r WHERE
             * e.revision_type != DEL (if selectDeletedEntities == false) AND
             * e.revision = r.revision AND
             * (all specified conditions, transformed, on the "e" entity)
             * ORDER BY e.revision ASC (unless another order is specified)
             */
            SetIncludeDeletationClause();
            AddCriterions();
            AddOrders();
            QueryBuilder.AddFrom(auditEntitiesConfiguration.RevisionInfoEntityFullClassName(), QueryConstants.RevisionAlias, true);
            QueryBuilder.RootParameters.AddWhere(auditEntitiesConfiguration.RevisionNumberPath, true, "=", QueryConstants.RevisionAlias + ".id", false);

            var revisionTypePropertyName = auditEntitiesConfiguration.RevisionTypePropName;

            return(from resultRow in BuildAndExecuteQuery <object[]>()
                   let versionsEntity = (IDictionary)resultRow[0]
                                        let revisionData = (TRevisionEntity)resultRow[1]
                                                           let revision = GetRevisionNumberFromDynamicEntity(versionsEntity)
                                                                          let entity = (TEntity)EntityInstantiator.CreateInstanceFromVersionsEntity(EntityName, versionsEntity, revision)
                                                                                       select new RevisionEntityInfo <TEntity, TRevisionEntity>(entity, revisionData, (RevisionType)versionsEntity[revisionTypePropertyName]));
        }
 public Object MapToObjectFromFullMap(EntityInstantiator entityInstantiator, IDictionary<String, Object> data,
     Object dataObject, long revision)
 {
     if (!data.ContainsKey(_propertyName)) return null;
     return data[_propertyName];
 }
 public Object MapToObjectFromFullMap(EntityInstantiator entityInstantiator, IDictionary<String, Object> data,
     Object dataObject, long revision)
 {
     return entityInstantiator.CreateInstanceFromVersionsEntity(relatedIdData.EntityName, data, revision);
 }
 public object MapToObjectFromFullMap(EntityInstantiator entityInstantiator, IDictionary<string, object> data, object dataObject, long revision)
 {
     return ((IDictionary<String, Object>)data[verEntCfg.OriginalIdPropName])[propertyName];
 }
Пример #31
0
        protected override void FillResult(IList result)
        {
            /*
             * The query that we need to create:
             *   SELECT new list(e) FROM versionsReferencedEntity e
             *   WHERE
             * (all specified conditions, transformed, on the "e" entity) AND
             * (selecting e entities at revision :revision)
             *   --> for DefaultAuditStrategy:
             *     e.revision = (SELECT max(e2.revision) FROM versionsReferencedEntity e2
             *       WHERE e2.revision <= :revision AND e2.id = e.id)
             *
             *   --> for ValidityAuditStrategy:
             *     e.revision <= :revision and (e.endRevision > :revision or e.endRevision is null)
             *
             *     AND
             * (only non-deleted entities)
             *     e.revision_type != DEL
             */
            var verEntCfg              = VerCfg.AuditEntCfg;
            var revisionPropertyPath   = verEntCfg.RevisionNumberPath;
            var originalIdPropertyName = verEntCfg.OriginalIdPropName;

            var referencedIdData = new MiddleIdData(verEntCfg, VerCfg.EntCfg[EntityName].IdMappingData,
                                                    null, EntityName, VerCfg.EntCfg.IsVersioned(EntityName));

            // (selecting e entities at revision :revision)
            // --> based on auditStrategy (see above)
            VerCfg.GlobalCfg.AuditStrategy.AddEntityAtRevisionRestriction(QueryBuilder, QueryBuilder.RootParameters, revisionPropertyPath,
                                                                          verEntCfg.RevisionEndFieldName, true, referencedIdData,
                                                                          revisionPropertyPath, originalIdPropertyName, QueryConstants.ReferencedEntityAlias, QueryConstants.ReferencedEntityAliasDefAudStr);

            // e.revision_type != DEL
            if (!_includeDeletions)
            {
                QueryBuilder.RootParameters.AddWhereWithParam(verEntCfg.RevisionTypePropName, "<>", RevisionType.Deleted);
            }

            // all specified conditions
            foreach (var criterion in Criterions)
            {
                criterion.AddToQuery(VerCfg, VersionsReader, EntityName, QueryBuilder, QueryBuilder.RootParameters);
            }


            var query = BuildQuery();

            // add named parameter (only used for ValidAuditTimeStrategy)
            if (query.NamedParameters.Contains(QueryConstants.RevisionParameter))
            {
                query.SetParameter(QueryConstants.RevisionParameter, _revision);
            }

            if (HasProjection)
            {
                query.List(result);
                return;
            }
            var queryResult = new List <IDictionary>();

            query.List(queryResult);
            EntityInstantiator.AddInstancesFromVersionsEntities(EntityName, result, queryResult, _revision);
        }
Пример #32
0
 public object ConvertQueryResult(AuditConfiguration auditCfg, EntityInstantiator entityInstantiator, string entityName, long revision, object value)
 {
     return(value);
 }
Пример #33
0
 public object MapToObjectFromFullMap(EntityInstantiator entityInstantiator, IDictionary data, object dataObject, long revision)
 {
     return(null);
 }
 public Object MapToObjectFromFullMap(EntityInstantiator entityInstantiator, IDictionary <String, Object> data,
                                      Object dataObject, long revision)
 {
     return(relatedIdMapper.MapToIdFromMap((IDictionary <String, Object>)data[verEntCfg.OriginalIdPropName]));
 }
Пример #35
0
        protected override void FillResult(IList result)
        {
            var verEntCfg = VerCfg.AuditEntCfg;

            /*
             * The query that should be executed in the versions table:
             * SELECT e (unless another projection is specified) FROM ent_ver e, rev_entity r WHERE
             * e.revision_type != DEL (if selectDeletedEntities == false) AND
             * e.revision = r.revision AND
             * (all specified conditions, transformed, on the "e" entity)
             * ORDER BY e.revision ASC (unless another order or projection is specified)
             */
            if (!_selectDeletedEntities)
            {
                // e.revision_type != DEL AND
                QueryBuilder.RootParameters.AddWhereWithParam(verEntCfg.RevisionTypePropName, "<>", RevisionType.Deleted);
            }

            // all specified conditions, transformed
            foreach (var criterion in Criterions)
            {
                criterion.AddToQuery(VerCfg, VersionsReader, EntityName, QueryBuilder, QueryBuilder.RootParameters);
            }

            if (!HasProjection() && !HasOrder)
            {
                var revisionPropertyPath = verEntCfg.RevisionNumberPath;
                QueryBuilder.AddOrder(QueryConstants.ReferencedEntityAlias, revisionPropertyPath, true);
            }

            if (!_selectEntitiesOnly)
            {
                QueryBuilder.AddFrom(VerCfg.AuditEntCfg.RevisionInfoEntityFullClassName(), QueryConstants.RevisionAlias, true);
                QueryBuilder.RootParameters.AddWhere(VerCfg.AuditEntCfg.RevisionNumberPath, true, "=", QueryConstants.RevisionAlias + ".id", false);
            }

            if (HasProjection())
            {
                BuildAndExecuteQuery(result);
                return;
            }
            var internalResult = new ArrayList();

            BuildAndExecuteQuery(internalResult);

            var revisionTypePropertyName = verEntCfg.RevisionTypePropName;

            foreach (var resultRow in internalResult)
            {
                IDictionary versionsEntity;
                object      revisionData = null;

                if (_selectEntitiesOnly)
                {
                    versionsEntity = (IDictionary)resultRow;
                }
                else
                {
                    var arrayResultRow = (Object[])resultRow;
                    versionsEntity = (IDictionary)arrayResultRow[0];
                    revisionData   = arrayResultRow[1];
                }

                var revision = revisionNumber(versionsEntity);

                var entity = EntityInstantiator.CreateInstanceFromVersionsEntity(EntityName, versionsEntity, revision);

                result.Add(_selectEntitiesOnly
                                                                 ? entity
                                                                 : new[] { entity, revisionData, versionsEntity[revisionTypePropertyName] });
            }
        }
 public object MapToObjectFromFullMap(EntityInstantiator entityInstantiator, IDictionary<string, object> data, object dataObject, long revision)
 {
     return null;
 }