Skip to content

Commit

Permalink
Updates source folder from stable Bold #19
Browse files Browse the repository at this point in the history
  • Loading branch information
bero committed May 10, 2024
1 parent d3f9dfe commit 7157cff
Show file tree
Hide file tree
Showing 136 changed files with 8,575 additions and 3,636 deletions.
48 changes: 25 additions & 23 deletions Source/BoldMLAttributes.pas
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@


{ Global compiler directives }
{$include bold.inc}
unit BoldMLAttributes;
Expand Down Expand Up @@ -50,7 +50,7 @@ TBAMLValueSetValue = class(TBAValueSetValue)
TBAMLValueSetValueList = class(TBADerivedValueSetValueList)
protected
function FindByStringAndLanguage(Representation: integer; Value, Language: String): TBAValueSetValue;
procedure Addmembers(Int: Integer; Members: Array of TBoldMember); override;
procedure AddMembers(Int: Integer; Members: Array of TBoldMember); override;
public
end;

Expand All @@ -73,8 +73,9 @@ TBAMLValueSet = class(TBAValueSet)
{--- TBALanguage ---}
TBALanguage = class(TBAValueSet)
protected
class function Getvalues: TBAValueSetValueList; override;
procedure Initialize; override;
public
class function GetValues: TBAValueSetValueList; override;
end;

{--- TBAMLString ---}
Expand All @@ -96,7 +97,7 @@ TBAMLString = class(TBAString)
function StringClass: TBAStringClass; virtual;
procedure Initialize; override;
public
destructor destroy; override;
destructor Destroy; override;
function GetStreamName: string; override;
function ValidateString(const Value: string; Representation: TBoldRepresentation): Boolean; override;
function ValidateCharacter(C: Char; Representation: TBoldRepresentation): Boolean; override;
Expand Down Expand Up @@ -141,6 +142,7 @@ implementation

uses
SysUtils,
BoldCoreConsts,
BoldUtils,
BoldNameExpander,
BoldTaggedValueSupport,
Expand All @@ -164,24 +166,24 @@ procedure EnsureLanguageList;
MemberRTInfo: TBoldMemberRTInfo;
begin
if loadingOfLanguages then
raise EBold.create('BootStrap-problem, Probably the Languagename is an MLString... Not allowed, sorry');
raise EBold.create(sBootStrapProblem);

if not assigned(_BoldLanguageList) then
begin
LoadingOfLanguages := true;
LanguageTypeInfo := TBoldSystem.DefaultSystem.BoldSystemTypeInfo.ClassTypeInfoByExpressionName[BoldMLLanguageClassName];
if not assigned(LanguageTypeInfo) then
raise EBold.CreateFmt('For MultiLanguage to work, you need a class called "%s"', [BoldMLLanguageClassName]);
raise EBold.CreateFmt(sNeedClassCalledX, [BoldMLLanguageClassName]);
MemberRTinfo := LanguageTypeInfo.MemberRTInfoByExpressionName[BoldMLLanguageNameAttributeName];
if not assigned(memberRTInfo) then
raise EBold.CreateFmt('For MultiLanguage to work, Class %s needs a member (string) called "%s"', [BoldMLLanguageClassName, BoldMLLanguageNameAttributeName]);
raise EBold.CreateFmt(sNeedMemberCalledX, [BoldMLLanguageClassName, BoldMLLanguageNameAttributeName]);
if not memberRTInfo.MemberClass.InheritsFrom(TBAString) then
raise EBold.CreateFmt('For MultiLanguage to work, %s must be a TBAString, now it is a %s', [BoldMLLanguageNameAttributeName, memberRTInfo.MemberClass.ClassName]);
raise EBold.CreateFmt(sMustBeTBAString, [BoldMLLanguageNameAttributeName, memberRTInfo.MemberClass.ClassName]);
memberRTInfo := LanguageTypeInfo.MemberRTInfoByExpressionName[BoldMLLanguageNumberAttributeName];
if not assigned(memberRTInfo) then
raise EBold.CreateFmt('For MultiLanguage to work, Class %s needs a member (integer) called "%s"', [BoldMLLanguageClassName, BoldMLLanguageNumberAttributeName]);
raise EBold.CreateFmt(sNeedIntegerMemberX, [BoldMLLanguageClassName, BoldMLLanguageNumberAttributeName]);
if not memberRTInfo.MemberClass.InheritsFrom(TBAInteger) then
raise EBold.CreateFmt('For MultiLanguage to work, %s must be a TBAInteger, now it is a %s', [BoldMLLanguageNumberAttributeName, memberRTInfo.MemberClass.ClassName]);
raise EBold.CreateFmt(sMemberXMustBeInteger, [BoldMLLanguageNumberAttributeName, memberRTInfo.MemberClass.ClassName]);

_BoldLanguageList := TBADerivedValueSetValueList.Create(TBoldSystem.DefaultSystem, BoldMLLanguageClassName, BoldMLLanguageNumberAttributeName, [BoldMLLanguageNameAttributeName]);
LoadingOfLanguages := false;
Expand All @@ -200,7 +202,7 @@ procedure ValidateLanguage(LanguageName, Location: String);
if (Languagename <> '') and
not loadingOfLanguages and
not assigned(_BoldLanguageList.FindByText(brDefault, LanguageName)) then
raise EBold.CreateFmt('%s: Invalid languagename %s', [Location, languagename])
raise EBold.CreateFmt(sInvalidLanguageName, [Location, languagename])
end;

function EnsureValuesForElement(BoldSystem: TBoldSystem): TBoldSystem;
Expand Down Expand Up @@ -299,7 +301,7 @@ procedure TBAMLValueSetValue.AddMLString(Value: TBAMLString);

{--- TBAMLValueSetValueList ---}

procedure TBAMLValueSetValueList.Addmembers(Int: Integer; Members: Array of TBoldMember);
procedure TBAMLValueSetValueList.AddMembers(Int: Integer; Members: Array of TBoldMember);
var
i: integer;
begin
Expand All @@ -309,7 +311,7 @@ procedure TBAMLValueSetValueList.Addmembers(Int: Integer; Members: Array of TBol
for i := 0 to High(Members) do
begin
if not (members[i] is TBAMLString) then
raise EBold.CreateFmt('TBAMLValueSets can only use TBAMLStrings, not %s', [Members[i].Classname]);
raise EBold.CreateFmt(sMLValueSetsRequireMLStrings, [Members[i].Classname]);
AddMLString(Members[i] as TBAMLString);
end;
end;
Expand Down Expand Up @@ -396,23 +398,24 @@ procedure TBAMLValueSet.SetStringRepresentationByLanguage(Representation: intege
if assigned(MLValue) then
AsInteger := MLValue.AsInteger
else
raise EBold.CreateFmt('%s: Invalid value %s', [ClassName, NewValue]);
raise EBold.CreateFmt(sInvalidValue, [ClassName, NewValue]);
end;

{--- TBALanguage ---}

class function TBALanguage.GetValues: TBAValueSetValueList;
begin
result := nil;
if TBoldSystem.DefaultSystem.BoldSystemTypeInfo.ClassTypeInfoByExpressionName[BoldMLLanguageClassName] <> nil then
begin
EnsureLanguageList;
result := _BoldLanguageList;
end;
if TBoldSystem.DefaultSystem <> nil then
if TBoldSystem.DefaultSystem.BoldSystemTypeInfo.ClassTypeInfoByExpressionName[BoldMLLanguageClassName] <> nil then
begin
EnsureLanguageList;
result := _BoldLanguageList;
end;
end;
{--- TBAMLString ---}

destructor TBAMLString.destroy;
destructor TBAMLString.Destroy;
begin
PrepareToDestroy;
inherited;
Expand Down Expand Up @@ -701,7 +704,7 @@ procedure TBAMLString.AssignContentValue(const Source: IBoldValue);
StringRepresentation[brMLString] := String(s.asBlob);
end
else
raise EBold.CreateFmt('%s.AssignContentValue: unknown type of source', [classname]);
raise EBold.CreateFmt(sUnknownTypeOfSource, [classname, 'AssignContentValue']); // do not localize
end;

{ TBoldMLString_Proxy }
Expand All @@ -717,7 +720,7 @@ function TBAMLString.ProxyInterface(const IId: TGUID; Mode: TBoldDomainElementPr
begin
result := TBAString_Proxy.MakeProxy(self, Mode).GetInterface(IID, obj);
if not result then
raise EBoldInternal.CreateFmt('ProxyClass for %s did not implement IBoldBlobContent', [ClassName]);
raise EBoldInternal.CreateFmt(sProxyClassDidntImplementInterface, [ClassName]);
end
else
result := inherited ProxyInterface(IID, Mode, Obj);
Expand Down Expand Up @@ -749,7 +752,6 @@ function TBAMLSubString.StartModify: Boolean;
end
else
result := inherited StartModify;

end;

function TBAMLValueSet.CompareToEnumLiteral(const str: String): Boolean;
Expand Down
1 change: 1 addition & 0 deletions Source/BoldMLRenderers.pas
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
interface

uses
Classes,
BoldDefs,
BoldSubscription,
BoldControlPack,
Expand Down
2 changes: 1 addition & 1 deletion Source/BoldMOFInterfaces.pas
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
interface

uses
Bold_MSXML_TLB;
{$IFDEF OXML}OXmlPDOM{$ELSE}Bold_MSXML_TLB{$ENDIF};

type
IBoldMOFObject = interface;
Expand Down
20 changes: 12 additions & 8 deletions Source/BoldManipulators.pas
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@


{ Global compiler directives }
{$include bold.inc}
unit BoldManipulators;
Expand Down Expand Up @@ -93,8 +93,12 @@ TBoldManipulatorMapperCollection = class(TCollection)

implementation

{$R *.res}

uses
SysUtils,

BoldCoreConsts,
BoldUtils,
BoldId,
BoldDefaultId,
Expand Down Expand Up @@ -236,7 +240,7 @@ procedure TBoldManipulator.SetValue(IdString: string; const NewValue: string);
NewId := OnDecrypt(NewId);
NewElement := ElementForRawIdString(StripMapping(NewId));
if (NewElement is TBoldObject) then
r.BoldObject := TBoldObject(NewElement);
r.BoldObject := TBoldObject(NewElement); // FIXME error handling
end;

var
Expand All @@ -256,13 +260,13 @@ procedure TBoldManipulator.SetValue(IdString: string; const NewValue: string);
else if (Element is TBoldObjectReference) then
SetObjectReference(TBoldObjectReference(Element), NewValue)
else if (Element is TBoldObjectList) then
raise EBold.Create('Can''t set Multilink from value')
raise EBold.Create(sCannotSetMultiLinkFromValue)
else if (Element is TBoldObject) then
raise EBold.Create('Can''t set Object from value');
raise EBold.Create(sCannotSetObjectFromValue);
end;
end
else
Mappers.ItemByname[Mapping].SetFromString(Element, NewValue);
Mappers.ItemByname[Mapping].SetFromString(Element, NewValue); // FIXME error handling
end;

function TBoldManipulator.StripMapping(const IdString: string): string;
Expand Down Expand Up @@ -300,7 +304,7 @@ function TBoldManipulator.CreateObject(Classname: string): string;
if Assigned(BoldSystemhandle) then
Result := IdStringForElement(BoldSystemHandle.System.CreateNewObjectByExpressionName(ClassName))
else
raise EBold.CreateFmt('%s.CreateObject: The manipulator is not connected to a systemhandle', [classname]);
raise EBold.CreateFmt(sNoSystemHandle, [classname, 'CreateObject', Name]); // do not localize
end;

procedure TBoldManipulator.DeleteObject(IdString: string);
Expand Down Expand Up @@ -337,7 +341,7 @@ function TBoldManipulator.DefaultTagForElement(Element: TBoldElement): string;
else if Assigned(Element.BoldType) then
Result := Element.BoldType.ExpressionName
else
raise EBold.CreateFmt('%s.DefaultTagForElement: Element lacks type information', [ClassName]);
raise EBold.CreateFmt(sElementLacksTypeInfo, [ClassName]);
end;

{ TBoldManipulatorMapper }
Expand Down Expand Up @@ -379,7 +383,7 @@ function TBoldManipulatorMapperCollection.GetItemByname(
result := Items[i];
Exit;
end;
raise EBold.CreateFmt('Unknown mapping: %s', [Name]);
raise EBold.CreateFmt(sUnknownMapping, [Name]);
end;

function TBoldManipulatorMapperCollection.GetItems(Index: integer): TBoldManipulatorMapper;
Expand Down
Binary file modified Source/BoldManipulators.res
Binary file not shown.
8 changes: 4 additions & 4 deletions Source/BoldMappingInfo.pas
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ procedure TBoldDefaultMappingInfo.ScriptForWriteData(DataBase: IBoldDataBase;
Script.Add(sl.Text);
sl.clear;
if Separator <> '' then
Script.Add(Separator);
Script.Add(Separator);
row := 0;
end;
end;
Expand Down Expand Up @@ -294,7 +294,7 @@ procedure TBoldDefaultMappingInfo.ScriptForWriteData(DataBase: IBoldDataBase;
Script.Add(sl.Text);
sl.clear;
if Separator <> '' then
Script.Add(Separator);
Script.Add(Separator);
row := 0;
end;
end;
Expand All @@ -321,7 +321,7 @@ procedure TBoldDefaultMappingInfo.ScriptForWriteData(DataBase: IBoldDataBase;
Script.Add(sl.Text);
sl.clear;
if Separator <> '' then
Script.Add(Separator);
Script.Add(Separator);
row := 0;
end;
end;
Expand All @@ -347,7 +347,7 @@ procedure TBoldDefaultMappingInfo.ScriptForWriteData(DataBase: IBoldDataBase;
Script.Add(sl.Text);
sl.clear;
if Separator <> '' then
Script.Add(Separator);
Script.Add(Separator);
row := 0;
end;
end;
Expand Down
Loading

0 comments on commit 7157cff

Please sign in to comment.