Example #1
0
		protected override void AcceptVisitor (IElementVisitor visitor)
		{
			visitor.Visit (this);
			foreach (var c in Children) {
				c.Accept (visitor);
			}
			visitor.EndVisit (this);
		}
Example #2
0
        public static IElementVisitor <TElement> Property <TElement, TProperty>(this IElementVisitor <TElement> element,
                                                                                Expression <Func <TElement, object> > propertyName,
                                                                                Expression <Func <TProperty, object, TProperty> > getNewValue)


        {
            var myElement     = (ElementVisitor <TElement>)element;
            var extractedName = Util.NameOf(propertyName);
            var childElement  = myElement.AddPropertyVisitor(extractedName, getNewValue);

            return(element);
        }
Example #3
0
        /// <inheritdoc />
        public override void AcceptVisitor(IElementVisitor visitor)
        {
            var functionVisitor = visitor as IFunctionVisitor;

            if (functionVisitor != null)
            {
                functionVisitor.VisitStructFieldAccessor(this);
            }
            else
            {
                base.AcceptVisitor(visitor);
            }
        }
Example #4
0
        /// <inheritdoc />
        public override void AcceptVisitor(IElementVisitor visitor)
        {
            var functionVisitor = visitor as IFunctionVisitor;

            if (functionVisitor != null)
            {
                functionVisitor.VisitDropNode(this);
            }
            else
            {
                base.AcceptVisitor(visitor);
            }
        }
        public StorageSchemaV3Modifier()
        {
            this.nameProvider = new StorageSchemaContentNameProvider(Namespace);

            this.providerParser = new ProviderParser(this.nameProvider);

            this.modificationLogic = new AggregatedElementModifier();

            // Schema[Provider] : Provider
            this.modificationLogic.AddModifier(
                new ComposedElementModifier(
                    new SelfElementSelector(),
                    new ProviderAttributeSelector(this.nameProvider),
                    new ProviderAttributeModifier()));

            // Schema[ProviderManifestToken] : ProviderManifestToken
            this.modificationLogic.AddModifier(
                new ComposedElementModifier(
                    new SelfElementSelector(),
                    new ProviderManifestTokenAttributeSelector(this.nameProvider),
                    new ProviderManifestTokenAttributeModifier()));

            // Schema.EntityType.Property : CommonProperty
            this.modificationLogic.AddModifier(
                new ComposedElementModifier(
                    new EntityTypePropertyElementSelector(this.nameProvider),
                    new CommonPropertyElementModifier(this.nameProvider)));

            // Schema.Function.Parameter[Type] : FunctionType
            this.modificationLogic.AddModifier(
                new ComposedElementModifier(
                    new FunctionParameterElementSelector(this.nameProvider),
                    new TypeAttributeSelector(this.nameProvider),
                    new FunctionTypeAttributeModifier()));

            // Schema.Function[ReturnType] : FunctionType
            this.modificationLogic.AddModifier(
                new ComposedElementModifier(
                    new FunctionElementSelector(this.nameProvider),
                    new ReturnTypeAttributeSelector(this.nameProvider),
                    new FunctionTypeAttributeModifier()));

            // Schema.Function.ReturnType.CollectionType.RowType.Property : CommonProperty
            this.modificationLogic.AddModifier(
                new ComposedElementModifier(
                    new FunctionReturnRowTypePropertyElementSelector(this.nameProvider),
                    new CommonPropertyElementModifier(this.nameProvider)));
        }
Example #6
0
        public StorageSchemaV3Modifier()
        {
            this.nameProvider = new StorageSchemaContentNameProvider(Namespace);

            this.providerParser = new ProviderParser(this.nameProvider);

            this.modificationLogic = new AggregatedElementModifier();

            // Schema[Provider] : Provider
            this.modificationLogic.AddModifier(
                new ComposedElementModifier(
                    new SelfElementSelector(),
                    new ProviderAttributeSelector(this.nameProvider),
                    new ProviderAttributeModifier()));

            // Schema[ProviderManifestToken] : ProviderManifestToken
            this.modificationLogic.AddModifier(
                new ComposedElementModifier(
                    new SelfElementSelector(),
                    new ProviderManifestTokenAttributeSelector(this.nameProvider),
                    new ProviderManifestTokenAttributeModifier()));

            // Schema.EntityType.Property : CommonProperty
            this.modificationLogic.AddModifier(
                new ComposedElementModifier(
                    new EntityTypePropertyElementSelector(this.nameProvider),
                    new CommonPropertyElementModifier(this.nameProvider)));

            // Schema.Function.Parameter[Type] : FunctionType
            this.modificationLogic.AddModifier(
                new ComposedElementModifier(
                    new FunctionParameterElementSelector(this.nameProvider),
                    new TypeAttributeSelector(this.nameProvider),
                    new FunctionTypeAttributeModifier()));

            // Schema.Function[ReturnType] : FunctionType
            this.modificationLogic.AddModifier(
                new ComposedElementModifier(
                    new FunctionElementSelector(this.nameProvider),
                    new ReturnTypeAttributeSelector(this.nameProvider),
                    new FunctionTypeAttributeModifier()));

            // Schema.Function.ReturnType.CollectionType.RowType.Property : CommonProperty
            this.modificationLogic.AddModifier(
                new ComposedElementModifier(
                    new FunctionReturnRowTypePropertyElementSelector(this.nameProvider),
                    new CommonPropertyElementModifier(this.nameProvider)));
        }
Example #7
0
        public void Accept(IElementVisitor visitor)
        {
            visitor.Visit(this);

            if (this.HasChildNodes)
            {
                visitor.BeginContainer(this);
                foreach (var item in this.ChildNodes)
                {
                    if (item is IElementVisitorTarget evt)
                    {
                        evt.Accept(visitor);
                    }
                }
                visitor.EndContainer(this);
            }
        }
Example #8
0
        public static IElementVisitor <TElement> Element <TElement, TChildElement>(this IElementVisitor <TElement> element,
                                                                                   Expression <Func <TElement, object> > childElementName,
                                                                                   Expression <Action <IElementVisitor <TChildElement> > > childElementSetup)
        {
            if (Util.IsGenericEnumerable(typeof(TElement)) || Util.ImplementsGenericIEnumerable(typeof(TElement)))
            {
                throw new Exception(string.Format("Element of type '{0}' is IEnumerable. Use Collection() method in order to configure visit to it.", typeof(TElement)));
            }

            var myElement     = (ElementVisitor <TElement>)element;
            var extractedName = Util.NameOf(childElementName);
            var childElement  = myElement.AddElementVisitor <TChildElement>(extractedName, false);

            if (childElementSetup != null)
            {
                childElementSetup.Compile()(childElement);
            }

            return(element);
        }
        /// <summary>
        /// Enumerates the UI with the specified visitor.
        /// </summary>
        /// <param name="visitor">The visitor.</param>
        public void Enumerate(IElementVisitor visitor)
        {
            visitor.Prepare(_settings);

            var queue = new Queue<IElement>();
            queue.Enqueue(_element);

            while(queue.Count > 0)
            {
                var current = queue.Dequeue();

                current.Accept(visitor);

                if(visitor.ShouldStopVisiting) break;

                foreach(var dataBound in current.GetChildren(_settings))
                {
                    queue.Enqueue(dataBound);
                }
            }
        }
Example #10
0
 public abstract void Visit(IElementVisitor visitor);
Example #11
0
 public override void Visit(IElementVisitor visitor)
 {
     visitor.VisitChoiceContainer(this);
 }
Example #12
0
		public void Accept (IElementVisitor visitor)
		{
			AcceptVisitor (visitor);
		}
Example #13
0
 public void VisitElements(IElementVisitor visitor)
 {
     visitor.VisitSequentialContainer(m_FirstContainer);
 }
Example #14
0
 public void Accept(IElementVisitor visitor)
 {
     visitor.Visit(this);
 }
 //Drawing is always the same, so this just uses the visitor and is not decorated
 public override void Draw(IElementVisitor visitor)
 {
     base.elementToBeDecorated.Draw(visitor);
 }
Example #16
0
 protected override void AcceptVisitor(IElementVisitor visitor)
 {
     visitor.Visit(this);
     visitor.EndVisit(this);
 }
 public ContainsVarChecker(INode var)
 {
     this.var = var;
     el       = new LocalElementVisitor(this, var);
     ex       = new LocalExpressionVisitor(this, var);
 }
 /// <summary>
 /// Constructor that takes an ElementVisitor.
 /// </summary>
 /// <param name="visitor">IElementVisitor to use when traversing</param>
 /// <param name="filter">IElementVisitorFilter to use when traversing</param>
 /// <param name="includeLinks">request element links be included in the visitation</param>
 public FullDepthElementWalker(IElementVisitor visitor, IElementVisitorFilter filter, bool includeLinks)
     :
     base(visitor, filter, includeLinks)
 {
 }
 /// <summary>
 /// Constructor that takes an ElementVisitor.
 /// This defaults to depth first traversal, pre-Order visitation of the graph with no element links.
 /// </summary>
 /// <param name="visitor">IElementVisitor to use when traversing</param>
 /// <param name="filter">IElementVisitorFilter to use when traversing</param>
 public FullDepthElementWalker(IElementVisitor visitor, IElementVisitorFilter filter)
     :
     base(visitor, filter)
 {
 }
 /// <summary>
 /// Accepts the specified visitor.
 /// </summary>
 /// <param name="visitor">The visitor.</param>
 public override void Accept(IElementVisitor visitor)
 {
     visitor.Visit(this);
 }
 public abstract TResult Accept <TState, TResult>(IElementVisitor <TState, TResult> visitor, TState state);
Example #22
0
 /// <summary>
 /// Accepts the specified visitor.
 /// </summary>
 /// <param name="visitor">The visitor.</param>
 public void Accept(IElementVisitor visitor)
 {
 }
Example #23
0
 public override void Visit(IElementVisitor visitor)
 {
     visitor.VisitParallelContainer(this);
 }
Example #24
0
 public override void Accept(IElementVisitor visitor)
 {
     throw new NotImplementedException();
 }
 /// <summary>
 /// Accepts the specified visitor.
 /// </summary>
 /// <param name="visitor">The visitor.</param>
 public void Accept(IElementVisitor visitor)
 {
     visitor.Visit(this);
 }
Example #26
0
 public abstract void Draw(IElementVisitor visitor);
Example #27
0
		protected override void AcceptVisitor (IElementVisitor visitor)
		{
			visitor.Visit (this);
			visitor.EndVisit (this);
		}
Example #28
0
 public override TResult Accept <TState, TResult>(IElementVisitor <TState, TResult> visitor, TState state)
 {
     return(visitor.Visit(this, state));
 }
Example #29
0
 public override string Accept(IElementVisitor <string> visitor)
 {
     return(visitor.Visit(this));
 }
Example #30
0
 public override void Visit(IElementVisitor visitor)
 {
     visitor.VisitRandomMusicList(this);
 }
Example #31
0
 public void Visit(IElementVisitor visitor)
 {
     m_Element.Visit(visitor);
 }
Example #32
0
        public static IElementVisitor <TElement> Collection <TElement, TCollectionElement>(this IElementVisitor <TElement> element,
                                                                                           Expression <Func <TElement, object> > childElementName,
                                                                                           Expression <Action <IElementVisitor <TCollectionElement> > > childElementSetup)

        {
            if (Util.IsDictionary(typeof(TElement)))
            {
                throw new Exception(string.Format("Element of type '{0}' is IDictionary. It is not yet supported for visit configuration.", typeof(TElement)));
            }

            var myElement         = (ElementVisitor <TElement>)element;
            var extractedName     = Util.NameOf(childElementName);
            var extractedType     = Util.TypeOf(childElementName);
            var collectionElement = myElement.AddCollectionVisitor <TCollectionElement>(extractedType, extractedName, false);

            if (childElementSetup != null)
            {
                childElementSetup.Compile()(collectionElement);
            }

            return(element);
        }
Example #33
0
		protected abstract void AcceptVisitor (IElementVisitor visitor);
Example #34
0
 public override void Visit(IElementVisitor visitor)
 {
     visitor.VisitLightEffects(this);
 }
Example #35
0
 public static IVisitor Build <TElement>(this IElementVisitor <TElement> element)
 {
     return(element);
 }
		/// <summary>
		/// Constructor that takes an ElementVisitor.
		/// This defaults to depth first traversal, pre-Order visitation of the graph with no element links.
		/// </summary>
		/// <param name="visitor">IElementVisitor to use when traversing</param>
		/// <param name="filter">IElementVisitorFilter to use when traversing</param>
		public FullDepthElementWalker(IElementVisitor visitor, IElementVisitorFilter filter)
			:
			base(visitor, filter)
		{
		}
 /// <summary>
 /// Accepts the specified visitor.
 /// </summary>
 /// <param name="visitor">The visitor.</param>
 public void Accept(IElementVisitor visitor) {}
Example #38
0
 protected abstract void AcceptVisitor(IElementVisitor visitor);
		/// <summary>
		/// Constructor that takes an ElementVisitor.
		/// </summary>
		/// <param name="visitor">IElementVisitor to use when traversing</param>
		/// <param name="filter">IElementVisitorFilter to use when traversing</param>
		/// <param name="includeLinks">request element links be included in the visitation</param>
		public FullDepthElementWalker(IElementVisitor visitor, IElementVisitorFilter filter, bool includeLinks)
			:
			base(visitor, filter, includeLinks)
		{
		}
Example #40
0
 public override void Accept(IElementVisitor visitor)
 {
     visitor.Visit(this);
 }
Example #41
0
 public void Accept(IElementVisitor visitor)
 {
     AcceptVisitor(visitor);
 }