Esempio n. 1
0
        public void testFunction()
        {
            Console.WriteLine("Hello World from dll!");

            String f3 = DustUtils.getValue(DustContext.SELF, "what?", GenericAtts.IdentifiedIdLocal);

            Console.WriteLine("The main entity ID is {0}", f3);
        }
Esempio n. 2
0
        public void accessImpl(DustAccessCommand op, DustInfoTray tray)
        {
            var session = getCurrentSession();

            DustDataEntity ei = (tray.entity is DustContext)
                                ? session.ctx[((DustContext)tray.entity)]
                                : (DustDataEntity)tray.entity;

            var eKey = tray.key as DustDataEntity;

            if (null == eKey)
            {
                var key = tray.key as DustKey;
                if (null != key)
                {
                    eKey = modules[key.module][key.key];
                }
            }

            switch (op)
            {
            case DustAccessCommand.read:
                tray.value = ei.getValue(eKey, tray.value, tray.dustHint);

                if ((null == tray.value) && DustUtils.isEnumRef(eKey.optValType))
                {
                    foreach (DustProcCursor drc in rootSession.cursors)
                    {
                        if ((drc.owner == ei) && (drc.key == eKey))
                        {
                            tray.value = drc.Current.eTarget;
                            return;
                        }
                    }
                }

                break;

            case DustAccessCommand.write:
                tray.value = ei.setValue(eKey, tray.value, tray.dustHint);
                break;

            case DustAccessCommand.visit:
                var vp = new DustProcVisitProcess(session, tray);
                var vt = tray as DustVisitTray;

                if (null == vt)
                {
                    vp.visitRef(ei, eKey, null, true);
                }
                else
                {
                    vp.visitEntity(null);
                }
                break;
            }
        }
Esempio n. 3
0
        public void processVisitEvent(VisitEvent visitEvent, DustVisitTray tray)
        {
            int    kfi = kf.indexOf((DustEntity)tray.key);
            object kfk = kf.keyOf(kfi);

//			Console.WriteLine("DrawVisitor processVisitEvent {0} - {1}", visitEvent, tray.value);
//			return;

            switch (visitEvent)
            {
            case VisitEvent.entityStartOpt:
                DustEntity pt = DustUtils.getValue(tray.entity, (DustEntity)null, DataLinks.EntityPrimaryType);
                if (OB_TYPES.ContainsKey(pt))
                {
                    tray.readerObject = Activator.CreateInstance(OB_TYPES[pt]);
                    var geo = tray.readerObject as GeometricData;
                    if (null != geo)
                    {
                        readingGeoData = geo;
                    }
                }
                break;

            case VisitEvent.keyStartOpt:
                if (-1 == kfi)
                {
                    tray.resp = VisitResponse.skip;
                }
                else
                {
                    if (COORDS.Contains(kfk))
                    {
                        readingCoord = (GeometryValues)kfk;
                    }
                    else if (ROLES.Contains(kfk))
                    {
                        readingRole = (GeometryValues)kfk;
                    }

                    Console.WriteLine("Entering {0} ", kf.keyOf(kfi));
                }
                break;

            case VisitEvent.keyEnd:
                if (CollectionLinks.SequenceMembers == kfk)
                {
                    var sp = tray.readerParent as ShapePath;
                    if (null != sp)
                    {
                        sp.Add((GeometricData)tray.readerObject);
                    }

                    var sc = tray.readerParent as ShapeComposite;
                    if (null != sc)
                    {
                        sc.Add((GeometricInclusion)tray.readerObject);
                    }
                }
                else if (GeometryLinks.GeometricInclusionTarget == kfk)
                {
                    var gi = tray.readerParent as GeometricInclusion;
                    if (null != gi)
                    {
                        gi.target = (ShapeSource)tray.readerObject;
                    }
                }
                else if (GeometryLinks.GeometricInclusionParameters == kfk)
                {
                    var gi = tray.readerParent as GeometricInclusion;

                    if ((null != gi) && (readingRole != null))
                    {
                        gi[readingRole] = (GeometricData)tray.readerObject;
                    }
                }

                Console.WriteLine("Leaving {0} ", kf.keyOf(kfi));
                break;

            case VisitEvent.entityEnd:
                if (null != tray.readerObject)
                {
                    lastReadObject = tray.readerObject;
                }
                break;
            }
        }