Пример #1
0
        public override bool Visit <T, TProperty, TElement>(EachNode <T, TProperty, TElement> node,
                                                            Func <RuntimeVisitor, bool> next)
        {
            Append("EachNode[{0}]", Tokens <T>());

            return(Indent(next));
        }
Пример #2
0
 public virtual bool Visit <T, TProperty, TElement>(EachNode <T, TProperty, TElement> node,
                                                    Func <RuntimeVisitor, bool> next)
     where T : class
     where TProperty : class, IEnumerable
 {
     return(next(this));
 }
Пример #3
0
        public override bool Visit <TT, TTProperty, TTElement>(EachNode <TT, TTProperty, TTElement> node,
                                                               Func <RuntimeModelVisitor, bool> next)
        {
            var locator = this as EachNodeSelector <TT, TTProperty, TTElement>;

            if (locator != null)
            {
                locator._node = node;
                return(false);
            }

            return(base.Visit(node, next));
        }
        public override bool Visit <T, TProperty, TElement>(EachNode <T, TProperty, TElement> node,
                                                            Func <RuntimeVisitor, bool> next)
        {
            _current = _vertices.Get(node.Id, id => new Vertex(typeof(EachNode <, ,>), typeof(TElement),
                                                               typeof(T).Tokens() + "."
                                                               + typeof(TProperty).GetShortName() + "[n]"));

            if (_stack.Count > 0)
            {
                _edges.Add(new Edge(_stack.Peek(), _current, _current.TargetType.Name));
            }

            return(Next(() => base.Visit(node, next)));
        }
Пример #5
0
        private Node parseEach()
        {
            Token token = expect(typeof(Each))
            ;
            Each     eachToken = (Each)token;
            EachNode node      = new EachNode();

            node.setValue(eachToken.getValue());
            node.setKey(eachToken.getKey());
            node.setCode(eachToken.getCode());
            node.setLineNumber(eachToken.getLineNumber());
            node.setFileName(filename);
            node.setBlock(block());
            if (peek() is Else)
            {
                nextToken();
                node.setElseNode(block());
            }
            return(node);
        }
Пример #6
0
        public void Select <TNode>(Node <TNode> node)
            where TNode : class
        {
            _node = null;
            node.Accept(this);

            if (_node == null)
            {
                EachNode <T, TProperty, TElement> eachNode = CreateNode();

                var parentNode = node as Node <Token <T, TProperty> >;
                if (parentNode == null)
                {
                    throw new ArgumentException("Expected " + typeof(T).Tokens() + ", but was "
                                                + typeof(TNode).Tokens());
                }

                parentNode.AddActivation(eachNode);

                _node = eachNode;
            }

            _next.Select(_node);
        }
        public override void update()
        {
            String UnitTypeList = String.Join( ",", CswNbtObjClassUnitOfMeasure.UnitTypes._All );

            _CswNbtSchemaModTrnsctn.createObjectClassProp(
                CswNbtMetaDataObjectClass.NbtObjectClass.UnitOfMeasureClass,
                CswNbtObjClassUnitOfMeasure.UnitTypePropertyName,
                CswNbtMetaDataFieldType.NbtFieldType.List,
                ServerManaged: true,
                ListOptions: UnitTypeList );

            CswNbtMetaDataNodeType WeightUnitNodeType = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "Weight Unit" );
            if( WeightUnitNodeType != null )
            {
                CswNbtMetaDataNodeTypeProp WeightUnitTypeProp = WeightUnitNodeType.getNodeTypeProp( CswNbtObjClassUnitOfMeasure.UnitTypePropertyName );
                WeightUnitTypeProp.DefaultValue.AsList.Value = CswNbtObjClassUnitOfMeasure.UnitTypes.Weight.ToString();

                foreach( CswNbtNode WeightNode in WeightUnitNodeType.getNodes( false, false ) )
                {
                    WeightNode.Properties[CswNbtObjClassUnitOfMeasure.UnitTypePropertyName].AsList.Value = CswNbtObjClassUnitOfMeasure.UnitTypes.Weight.ToString();
                    WeightNode.postChanges( true );
                }
            }

            CswNbtMetaDataNodeType VolumeUnitNodeType = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "Volume Unit" );
            if( VolumeUnitNodeType != null )
            {
                CswNbtMetaDataNodeTypeProp VolumeUnitTypeProp = VolumeUnitNodeType.getNodeTypeProp( CswNbtObjClassUnitOfMeasure.UnitTypePropertyName );
                VolumeUnitTypeProp.DefaultValue.AsList.Value = CswNbtObjClassUnitOfMeasure.UnitTypes.Volume.ToString();

                foreach( CswNbtNode VolumeNode in VolumeUnitNodeType.getNodes( false, false ) )
                {
                    VolumeNode.Properties[CswNbtObjClassUnitOfMeasure.UnitTypePropertyName].AsList.Value = CswNbtObjClassUnitOfMeasure.UnitTypes.Volume.ToString();
                    VolumeNode.postChanges( true );
                }
            }

            CswNbtMetaDataNodeType TimeUnitNodeType = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "Time Unit" );
            if( TimeUnitNodeType != null )
            {
                CswNbtMetaDataNodeTypeProp TimeUnitTypeProp = TimeUnitNodeType.getNodeTypeProp( CswNbtObjClassUnitOfMeasure.UnitTypePropertyName );
                TimeUnitTypeProp.DefaultValue.AsList.Value = CswNbtObjClassUnitOfMeasure.UnitTypes.Time.ToString();

                foreach( CswNbtNode TimeNode in TimeUnitNodeType.getNodes( false, false ) )
                {
                    TimeNode.Properties[CswNbtObjClassUnitOfMeasure.UnitTypePropertyName].AsList.Value = CswNbtObjClassUnitOfMeasure.UnitTypes.Time.ToString();
                    TimeNode.postChanges( true );
                }
            }

            CswNbtMetaDataNodeType EachUnitNodeType = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "Each Unit" );
            if( EachUnitNodeType != null )
            {
                CswNbtMetaDataNodeTypeProp EachUnitTypeProp = EachUnitNodeType.getNodeTypeProp( CswNbtObjClassUnitOfMeasure.UnitTypePropertyName );
                EachUnitTypeProp.DefaultValue.AsList.Value = CswNbtObjClassUnitOfMeasure.UnitTypes.Each.ToString();

                foreach( CswNbtNode EachNode in EachUnitNodeType.getNodes( false, false ) )
                {
                    EachNode.Properties[CswNbtObjClassUnitOfMeasure.UnitTypePropertyName].AsList.Value = CswNbtObjClassUnitOfMeasure.UnitTypes.Each.ToString();
                    EachNode.postChanges( true );
                }
            }

        }//Update()