public void AddFieldType(System.Xml.XmlNode node) { // add field type name the mapping var scName = Sitecore.Xml.XmlUtil.GetAttribute("sitecoreFieldTypeName", node); var umlName = Sitecore.Xml.XmlUtil.GetAttribute("umlFieldTypeName", node); FieldTypes.Add(scName, umlName); // add the umlFieldTypeName to the aliases map to enable case-insensitive matches UmlFieldTypeAliases.Add(umlName, scName); // add the aliases to the alias map var umlAliases = Sitecore.Xml.XmlUtil.GetAttribute("umlAliases", node); if (string.IsNullOrEmpty(umlAliases)) { return; } var aliases = umlAliases .Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries); foreach (var alias in aliases) { UmlFieldTypeAliases.Add(alias, scName); } }
public virtual void AddFieldTypes(XmlNode configNode) { Assert.ArgumentNotNull(configNode, "configNode"); var fieldName = XmlUtil.GetAttribute("name", configNode); var storageType = XmlUtil.GetAttribute("storageType", configNode); var indexType = XmlUtil.GetAttribute("indexType", configNode); var vectorType = XmlUtil.GetAttribute("vectorType", configNode); var boost = XmlUtil.GetAttribute("boost", configNode); var searchField = new SearchField(storageType, indexType, vectorType, boost); FieldTypes.Add(fieldName.ToLowerInvariant(), searchField); }
/// <summary> /// Add the invalidations for the given key to the context. Used for a cache hit. /// </summary> /// <param name="cacheInvalidator"></param> /// <param name="key"></param> public void AddInvalidationsFor <TKey, TValue>(CacheInvalidator <TKey, TValue> cacheInvalidator, TKey key) { if (cacheInvalidator == null) { throw new ArgumentNullException("cacheInvalidator"); } if (_entry == null) { throw new InvalidOperationException("Not valid for ContextType.None"); } Entities.Add(cacheInvalidator.EntityToCacheKey.GetKeys(key)); RelationshipTypes.Add(cacheInvalidator.RelationshipTypeToCacheKey.GetKeys(key)); FieldTypes.Add(cacheInvalidator.FieldTypeToCacheKey.GetKeys(key)); EntityInvalidatingRelationshipTypes.Add(cacheInvalidator.EntityInvalidatingRelationshipTypesToCacheKey.GetKeys(key)); EntityTypes.Add(cacheInvalidator.EntityTypeToCacheKey.GetKeys(key)); }
/// <summary> /// コンストラクタ /// </summary> /// <param name="node">対象Node</param> /// <param name="semanticModel">対象ソースのsemanticModel</param> /// <param name="parent">親IAnalyzeItem</param> /// <param name="container">イベントコンテナ</param> public ItemField(FieldDeclarationSyntax node, SemanticModel semanticModel, IAnalyzeItem parent, EventContainer container) : base(parent, node, semanticModel, container) { ItemType = ItemTypes.Field; var declaredSymbol = semanticModel.GetDeclaredSymbol(node.Declaration.Variables.First()); // フィールドの型設定 var parts = ((IFieldSymbol)declaredSymbol).Type.ToDisplayParts(SymbolDisplayFormat.MinimallyQualifiedFormat); foreach (var part in parts) { // スペースの場合は型設定に含めない if (part.Kind == SymbolDisplayPartKind.Space) { continue; } var name = Expression.GetSymbolName(part, true); var type = Expression.GetSymbolTypeName(part.Symbol); if (part.Kind == SymbolDisplayPartKind.ClassName) { // 外部ファイル参照イベント発行 RaiseOtherFileReferenced(node, part.Symbol); } FieldTypes.Add(new Expression(name, type)); } // デフォルト設定 var constantValue = node.Declaration.Variables.FirstOrDefault(); if (constantValue?.Initializer == null) { return; } var initializer = semanticModel.GetOperation(constantValue.Initializer.Value); DefaultValues.AddRange(OperationFactory.GetExpressionList(initializer, container)); }