internal virtual ClassMetadata GetFieldType() { if (_fieldMetadata != null) { return(_fieldMetadata.FieldType()); } return(null); }
private IList ResolveFieldPath(string[] fieldPath) { IList fields = new ArrayList(fieldPath.Length); ClassMetadata currentType = _extentType; for (int fieldNameIndex = 0; fieldNameIndex < fieldPath.Length; ++fieldNameIndex) { string fieldName = fieldPath[fieldNameIndex]; FieldMetadata field = currentType.FieldMetadataForName(fieldName); currentType = field.FieldType(); fields.Add(field); } return(fields); }
private static bool CanFollowParent(QCon con) { QCon parent = con.Parent(); FieldMetadata parentField = GetYapField(parent); if (null == parentField) { return(false); } FieldMetadata conField = GetYapField(con); if (null == conField) { return(false); } return(parentField.HasIndex() && parentField.FieldType().IsAssignableFrom(conField .ContainingClass())); }