public static VisitorTargetDetail DeriveFromMetadata(IMetadatum metadatum) { var derivedThroughInheriting = metadatum.NamedParameters.GetNamedParameter <string>("DerivedThroughInheriting"); var targetContext = metadatum.Parameters.GetIndexedParameter <string>(0); var yieldingVisitor = metadatum.NamedParameters.GetNamedParameter <bool>("YieldingVisitor"); var parameterlessName = metadatum.NamedParameters.GetNamedParameter <string>("ParameterlessName"); var contextualVisitor = metadatum.NamedParameters.GetNamedParameter <bool>("ContextualVisitor"); var typeParamVariations = metadatum.Parameters.GetIndexedParameter <IType[]>(1); return(new VisitorTargetDetail { DerivedThroughInheriting = derivedThroughInheriting.IsEmpty ? null : derivedThroughInheriting.Value, TargetContext = targetContext.Value, ContextualVisitor = contextualVisitor.IsEmpty ? false : contextualVisitor.Value, YieldingVisitor = yieldingVisitor.IsEmpty ? false : yieldingVisitor.Value, ParameterlessName = parameterlessName.IsEmpty ? null : parameterlessName.Value, TypeParameterVariations = typeParamVariations.IsEmpty ? null : typeParamVariations.Value, }); }
public static VisitorImplementationTargetDetail DeriveFromMetadata(IMetadatum metadatum) { var targetContext = metadatum.Parameters.GetIndexedParameter <string>(0); var yieldingVisitor = metadatum.NamedParameters.GetNamedParameter <bool>("YieldingVisitor"); var contextualVisitor = metadatum.NamedParameters.GetNamedParameter <bool>("ContextualVisitor"); var accessLevelModifiers = metadatum.NamedParameters.GetNamedParameter <int>("VisitRefactorAbstract"); var @namespace = metadatum.NamedParameters.GetNamedParameter <string>("Namespace"); return(new VisitorImplementationTargetDetail { TargetContext = targetContext.Value, ContextualVisitor = contextualVisitor.IsEmpty ? false : contextualVisitor.Value, YieldingVisitor = yieldingVisitor.IsEmpty ? false : yieldingVisitor.Value, Namespace = @namespace.IsEmpty ? null : @namespace.Value, AccessLevelModifiers = accessLevelModifiers.IsEmpty ? AccessLevelModifiers.Public : (AccessLevelModifiers)accessLevelModifiers.Value, }); }
public static VisitorImplementationActionDetail DeriveFromMetadata(IMetadatum metadatum) { var targetContext = metadatum.Parameters.GetIndexedParameter <string>(0); var targetType = metadatum.Parameters.GetIndexedParameter <IType> (1); var targetAction = metadatum.Parameters.GetIndexedParameter <string>(2); var targetPluralAction = metadatum.Parameters.GetIndexedParameter <string>(3); var contextualVisitor = metadatum.NamedParameters.GetNamedParameter <bool> ("ContextualVisitor"); var yieldingVisitor = metadatum.NamedParameters.GetNamedParameter <bool> ("YieldingVisitor"); var contextType = metadatum.NamedParameters.GetNamedParameter <IType> ("TContext"); var resultType = metadatum.NamedParameters.GetNamedParameter <IType> ("TResult"); return(new VisitorImplementationActionDetail { TargetAction = !targetAction.IsEmpty ? targetAction.Value : null, TargetType = !targetType.IsEmpty ? targetType.Value : null, TargetContext = !targetContext.IsEmpty ? targetContext.Value : null, TargetPluralAction = !targetPluralAction.IsEmpty ? targetPluralAction.Value : null, ContextualVisitor = contextualVisitor.IsEmpty ? false : contextualVisitor.Value, YieldingVisitor = yieldingVisitor.IsEmpty ? false : yieldingVisitor.Value, }); }
public bool Contains(IMetadatum item) { foreach (var _item in Parent.Metadata.Flatten()) { if (_item == item) { return(true); } } return(false); }
public IEnumerator <IMetadatum> GetEnumerator() { for (int metadatumIndex = 0; metadatumIndex < this.Count; metadatumIndex++) { IMetadatum current = null; lock (syncObject) { this.CheckItemAt(metadatumIndex); current = this.metadataSet[metadatumIndex]; } yield return(current); } }
public int IndexOf(IMetadatum element) { lock (syncObject) { for (int metadatumIndex = 0; metadatumIndex < this.Count; metadatumIndex++) { if (this.metadataSet[metadatumIndex] == element) { return(metadatumIndex); } } } return(-1); }
public IMetadatum[] ToArray() { IMetadatum[] result = new IMetadatum[this.Count]; int i = 0; foreach (var definitions in this.Parent.Metadata) { foreach (var definition in definitions) { result[i++] = definition; } } return(result); }
public int IndexOf(IMetadatum element) { int index = 0; foreach (var _item in Parent.Metadata.Flatten()) { if (_item == element) { return(index); } else { index++; } } return(-1); }
public static VisitorImplementationInheritanceDetail DeriveFromMetadata(IMetadatum metadatum) { var targetContext = metadatum.Parameters.GetIndexedParameter <string> (0); var contextualVisitor = metadatum.NamedParameters.GetNamedParameter <bool> ("ContextualVisitor"); var yieldingVisitor = metadatum.NamedParameters.GetNamedParameter <bool> ("YieldingVisitor"); var contextType = metadatum.NamedParameters.GetNamedParameter <IType> ("TContext"); var resultType = metadatum.NamedParameters.GetNamedParameter <IType> ("TResult"); var inheritedVisitors = metadatum.NamedParameters.GetNamedParameter <string[]> ("InheritedVisitors"); var visitRefactorName = metadatum.NamedParameters.GetNamedParameter <string> ("VisitRefactorName"); var visitRefactorAbstract = metadatum.NamedParameters.GetNamedParameter <bool> ("VisitRefactorAbstract"); var visitorBuilderHandler = metadatum.NamedParameters.GetNamedParameter <IType> ("VisitorBuilderHandler"); return(new VisitorImplementationInheritanceDetail { TargetContext = !targetContext.IsEmpty ? targetContext.Value : null, ContextualVisitor = contextualVisitor.IsEmpty ? false : contextualVisitor.Value, YieldingVisitor = yieldingVisitor.IsEmpty ? false : yieldingVisitor.Value, VisitRefactorName = visitRefactorName.IsEmpty ? null : visitRefactorName.Value, VisitRefactorAbstract = visitRefactorAbstract.IsEmpty ? false : visitRefactorAbstract.Value, InheritedVisitors = inheritedVisitors.IsEmpty ? null : inheritedVisitors.Value, TContext = contextType.IsEmpty ? null : contextType.Value, TResult = resultType.IsEmpty ? null : resultType.Value, VisitorBuilderHandler = visitorBuilderHandler.IsEmpty ? null : visitorBuilderHandler.Value, }); }
public IMetadatum this[IType metadatumType] { get { IMetadatum closeMatch = null; for (int metadatumIndex = 0; metadatumIndex < this.Count; metadatumIndex++) { lock (syncObject) { this.CheckItemAt(metadatumIndex); var currentType = this.metadataSet[metadatumIndex].Type; if (currentType == metadatumType) { return(this.metadataSet[metadatumIndex]); } else if (closeMatch == null && metadatumType.IsAssignableFrom(currentType)) { closeMatch = this.metadataSet[metadatumIndex]; } } } return(closeMatch); } }
public IMetadatum[] ToArray() { IMetadatum[] result = new IMetadatum[this.Count]; this.CopyTo(result); return(result); }
public bool Contains(IMetadatum item) { lock (syncObject) return(this.metadataSet.Contains(item)); }