Getting customfieldtype based on field display type

We will use customfieldtype later to generate dynamic query from list of fields of specific object.


public String getCustomFieldType(Schema.DisplayType fieldType) {
String customFieldType;

Set stringTypes = new Set();
stringTypes.add(Schema.DisplayType.Reference);
stringTypes.add(Schema.DisplayType.ID);
stringTypes.add(Schema.DisplayType.String);
stringTypes.add(Schema.DisplayType.Email);
stringTypes.add(Schema.DisplayType.URL);
stringTypes.add(Schema.DisplayType.Picklist);
stringTypes.add(Schema.DisplayType.Phone);

Set numberTypes = new Set();
numberTypes.add(Schema.DisplayType.Double);
numberTypes.add(Schema.DisplayType.Percent);
numberTypes.add(Schema.DisplayType.Integer);
numberTypes.add(Schema.DisplayType.Currency);

if(fieldType == Schema.DisplayType.MultiPicklist) {
customFieldType = 'str';
} else if(stringTypes.contains(fieldType)) {
customFieldType = 'str';
} else if(numberTypes.contains(fieldType)) {
customFieldType = 'num';
} else if(fieldType == Schema.DisplayType.Boolean){
customFieldType = 'bool';
} else if(fieldType == Schema.DisplayType.Date || fieldType == Schema.DisplayType.DateTime){
if(fieldType == Schema.DisplayType.DateTime) {
customFieldType = 'dateTimeType';
} else {
customFieldType = 'dateType';
}
}
return customFieldType;
}

Published by Sandeep Kumar

He is a Salesforce Certified Application Architect having 11+ years of experience in Salesforce.

Leave a Reply