Skip to content

Commit

Permalink
Melhoria no código
Browse files Browse the repository at this point in the history
  • Loading branch information
viniciussanchez committed Jun 2, 2021
1 parent acdf75e commit 30a19fc
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 49 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,8 @@ object FrmSamples: TFrmSamples
'None'
'lower case'
'UPPER CASE'
'lowerCamelCase')
'lowerCamelCase'
'UpperCamelCase')
end
object btnCaseNameDefinition: TButton
Left = 537
Expand Down
77 changes: 29 additions & 48 deletions src/DataSet.Serialize.Utils.pas
Original file line number Diff line number Diff line change
Expand Up @@ -129,65 +129,46 @@ class function TDataSetSerializeUtils.CreateValidIdentifier(const AName: string)
end;

class function TDataSetSerializeUtils.FormatCaseNameDefinition(const AFieldName: string): string;
Function prdUpperCamelCase(Value: String): String;
var
I: Integer;
liBaixo: Integer;
LField: TArray<Char>;
begin
LField := Value.ToCharArray;
I := Low(LField);
liBaixo := I;
While I <= High(LField) do
begin
if (liBaixo = I) then
Result := Result + UpperCase(LField[I])
else
Result := Result + LField[I];
Inc(I);
end;
if Result.IsEmpty then
Result := Value;
end;

Function CamelCase(Value: String): String;
var
I: Integer;
LField: TArray<Char>;
begin
LField := Value.ToCharArray;
I := Low(LField);
While i <= High(LField) do
begin
if (LField[I] = '_') then
begin
Inc(I);
Result := Result + UpperCase(LField[I]);
end
else
Result := Result + LowerCase(LField[I]);
Inc(I);
end;
if Result.IsEmpty then
Result := Value;
end;
var
I: Integer;
LCaseNameDefinition: TCaseNameDefinition;
LField: TArray<Char>;
begin
Result := EmptyStr;
case TDataSetSerializeConfig.GetInstance.CaseNameDefinition of
LCaseNameDefinition := TDataSetSerializeConfig.GetInstance.CaseNameDefinition;
case LCaseNameDefinition of
cndLower:
Result := AFieldName.ToLower;
cndUpper:
Result := AFieldName.ToUpper;
cndLowerCamelCase:
Result := CamelCase(AFieldName);
cndUpperCamelCase:
Result := prdUpperCamelCase(CamelCase(AFieldName));
cndLowerCamelCase, cndUpperCamelCase:
begin
LField := AFieldName.ToCharArray;
I := Low(LField);
While i <= High(LField) do
begin
if (LField[I] = '_') then
begin
Inc(I);
Result := Result + UpperCase(LField[I]);
end
else
begin
if (LCaseNameDefinition = cndUpperCamelCase) and (I = 0) then
Result := Result + UpperCase(LField[I])
else
Result := Result + LowerCase(LField[I]);
end;
Inc(I);
end;
if Result.IsEmpty then
Result := AFieldName;
end
else
Result := AFieldName;
end;
end;


class function TDataSetSerializeUtils.FormatDataSetName(const ADataSetName: string): string;
var
LPrefix: string;
Expand Down

0 comments on commit 30a19fc

Please sign in to comment.