public void InheritAttributes(MetaMetadataField inheritFrom) { var classDescriptor = ClassDescriptor.GetClassDescriptor(this); foreach (MetaMetadataFieldDescriptor fieldDescriptor in classDescriptor.AllFieldDescriptors) { if (fieldDescriptor.IsInheritable) { ScalarType scalarType = fieldDescriptor.ScalarType; try { if (scalarType != null && scalarType.IsDefaultValue(fieldDescriptor.Field, this) && !scalarType.IsDefaultValue(fieldDescriptor.Field, inheritFrom)) { Object value = fieldDescriptor.Field.GetValue(inheritFrom); fieldDescriptor.Field.SetValue(this, value); Debug.WriteLine("inherit\t" + this.Name + "." + fieldDescriptor.Name + "\t= " + value); } } catch (Exception e) { Debug.WriteLine(inheritFrom.Name + " doesn't have field " + fieldDescriptor.Name + ", ignore it."); // e.printStackTrace(); } } } }
public bool IsDefaultValueFromContext(object context) { if (context != null) { return(ScalarType.IsDefaultValue(field, context)); } return(false); }
public bool IsDefaultValue(String value) { return(ScalarType.IsDefaultValue(value)); }