Class TExternalItem

Unit

Declaration

type TExternalItem = class(TBaseItem)

Description

TExternalItem extends TBaseItem to store extra information about a project. TExternalItem is used to hold an introduction and conclusion to the project.

Source: source/component/PasDoc_Items.pas (line 992).

Hierarchy

Show Additional Members:

Overview

Methods

Public class function Read7BitEncodedInt(const ASource: TStream): Integer;
Public class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);
Public class function LoadStringFromStream(const ASource: TStream): string;
Public class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);
Public class function LoadDoubleFromStream(const ASource: TStream): double;
Public class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);
Public class function LoadIntegerFromStream(const ASource: TStream): Longint;
Public class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);
Public class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);
Public class function DeserializeObject(const ASource: TStream): TSerializable;
Public class procedure Register(const AClass: TSerializableClass);
Public procedure SerializeToFile(const AFileName: string);
Public class function DeserializeFromFile(const AFileName: string): TSerializable;
Protected procedure Serialize(const ADestination: TStream); override;
Protected procedure Deserialize(const ASource: TStream); override;
Public function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; virtual;
Public function FindName(const NameParts: TNameParts): TBaseItem; virtual;
Public function RawDescriptionInfo: PRawDescriptionInfo;
Public function QualifiedName: String; virtual;
Public function Signature: string; virtual;
Protected procedure HandleTitleTag(ThisTag: TTag; var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string);
Protected procedure HandleShortTitleTag(ThisTag: TTag; var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string);
Public Constructor Create; override;
Public destructor Destroy; override;
Public procedure RegisterTags(TagManager: TTagManager); override;
Public function FindItem(const NameParts: TNameParts): TBaseItem; override;
Public procedure AddAnchor(const AnchorItem: TAnchorItem); overload;
Public function AddAnchor(const AnchorName: string): TAnchorItem; overload;
Public function BasePath: string; override;

Properties

Public property WasDeserialized: boolean read FWasDeserialized;
Public property DetailedDescription: string read FDetailedDescription write FDetailedDescription;
Public property RawDescription: string read GetRawDescription write WriteRawDescription;
Public property FullLink: string read FFullLink write FFullLink;
Public property LastMod: string read FLastMod write FLastMod;
Public property Name: string read FName write FName;
Public property Authors: TStringVector read FAuthors write SetAuthors;
Public property Created: string read FCreated;
Public property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;
Public property OutputFileName: string read FOutputFileName write SetOutputFileName;
Public property ShortTitle: string read FShortTitle write FShortTitle;
Public property SourceFileName: string read FSourceFilename write FSourceFilename;
Public property Title: string read FTitle write FTitle;
Public property Anchors: TBaseItems read FAnchors;

Description

Methods

Public class function Read7BitEncodedInt(const ASource: TStream): Integer;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 49).

Public class procedure Write7BitEncodedInt(Value: Integer; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 50).

Public class function LoadStringFromStream(const ASource: TStream): string;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 52).

Public class procedure SaveStringToStream(const AValue: string; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 53).

Public class function LoadDoubleFromStream(const ASource: TStream): double;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 54).

Public class procedure SaveDoubleToStream(const AValue: double; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 55).

Public class function LoadIntegerFromStream(const ASource: TStream): Longint;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 56).

Public class procedure SaveIntegerToStream(const AValue: Longint; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 57).

Public class procedure SerializeObject(const AObject: TSerializable; const ADestination: TStream);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 60).

Public class function DeserializeObject(const ASource: TStream): TSerializable;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 61).

Public class procedure Register(const AClass: TSerializableClass);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 62).

Public procedure SerializeToFile(const AFileName: string);

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 63).

Public class function DeserializeFromFile(const AFileName: string): TSerializable;

This item is declared in ancestor TSerializable.

Read back from file.

Exceptions raised
EInvalidCacheFileVersion
When the cached file contents are from an old pasdoc version (or invalid).

Source: source/component/PasDoc_Serialize.pas (line 67).

Protected procedure Serialize(const ADestination: TStream); override;

This item is declared in ancestor TBaseItem.

Serialization of TPasItem need to store in stream only data that is generated by parser. That's because current approach treats "loading from cache" as equivalent to parsing a unit and stores to cache right after parsing a unit. So what is generated by parser must be written to cache.

That said,

  1. It will not break anything if you will accidentally store in cache something that is not generated by parser. That's because saving to cache will be done anyway right after doing parsing, so properties not initialized by parser will have their initial values anyway. You're just wasting memory for cache, and some cache saving/loading time.

  2. For now, in implementation of serialize/deserialize we try to add even things not generated by parser in a commented out code. This way if approach to cache will change some day, we will be able to use this code.

Source: source/component/PasDoc_Items.pas (line 215).

Protected procedure Deserialize(const ASource: TStream); override;

This item is declared in ancestor TBaseItem.

This item has no description.

Source: source/component/PasDoc_Items.pas (line 216).

Public function FindItemMaybeInAncestors(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TBaseItem.

This is just like FindItem, but in case of classes or such it should also search within ancestors. In this class, the default implementation just calls FindItem.

Source: source/component/PasDoc_Items.pas (line 254).

Public function FindName(const NameParts: TNameParts): TBaseItem; virtual;

This item is declared in ancestor TBaseItem.

Do all you can to find link specified by NameParts.

While searching this tries to mimic ObjectPascal identifier scope as much as it can. It seaches within this item, but also within class enclosing this item, within ancestors of this class, within unit enclosing this item, then within units used by unit of this item.

Source: source/component/PasDoc_Items.pas (line 265).

Public function RawDescriptionInfo: PRawDescriptionInfo;

This item is declared in ancestor TBaseItem.

Full info about RawDescription of this item, including it's filename and position.

This is intended to be initialized by parser.

This returns PRawDescriptionInfo instead of just TRawDescriptionInfo to allow natural setting of properties of this record (otherwise

Item.RawDescriptionInfo.StreamName := 'foo';

would not work as expected) .

Source: source/component/PasDoc_Items.pas (line 296).

Public function QualifiedName: String; virtual;

This item is declared in ancestor TBaseItem.

Returns the qualified name of the item. This is intended to return a concise and not ambigous name. E.g. in case of TPasItem it is overridden to return Name qualified by class name and unit name.

In this class this simply returns Name.

Source: source/component/PasDoc_Items.pas (line 315).

Public function Signature: string; virtual;

This item is declared in ancestor TBaseItem.

Just like Name but optionally with added routine parameter types, to be unique when overloading is used. For example, for routines it may be like MyMethod(String) or MyMethod(Integer).

Source: source/component/PasDoc_Items.pas (line 339).

Protected procedure HandleTitleTag(ThisTag: TTag; var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string);

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1002).

Protected procedure HandleShortTitleTag(ThisTag: TTag; var ThisTagData: TObject; EnclosingTag: TTag; var EnclosingTagData: TObject; const TagParameter: string; var ReplaceStr: string);

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1005).

Public Constructor Create; override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1009).

Public destructor Destroy; override;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1010).

Public procedure RegisterTags(TagManager: TTagManager); override;

This item has no description. Showing description inherited from TBaseItem.RegisterTags.

It registers TTags that init Authors, Created, LastMod and remove relevant tags from description. You can override it to add more handlers.

Source: source/component/PasDoc_Items.pas (line 1011).

Public function FindItem(const NameParts: TNameParts): TBaseItem; override;

This item has no description. Showing description inherited from TBaseItem.FindItem.

Search for an item with name NameParts inside this Pascal item. For units, it searches for items declared inside this unit (like a procedure, or a class in this unit). For classes it searches for items declared within this class (like a method or a property). For an enumerated type, it searches for members of this enumerated type.

All normal rules of ObjectPascal scope apply, which means that e.g. classes have their separate namespace. When searching for Foo from the unit level, we do not "look into" class namespaces.

Returns nil if not found.

Note that it never compares NameParts with Self.Name. You may want to check this yourself if you want.

Note that for TPasItem descendants, it always returns also some TPasItem descendant (so if you use this method with some TPasItem instance, you can safely cast result of this method to TPasItem).

Implementation in this class always returns nil. Override as necessary.

Source: source/component/PasDoc_Items.pas (line 1017).

Public procedure AddAnchor(const AnchorItem: TAnchorItem); overload;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1018).

Public function AddAnchor(const AnchorName: string): TAnchorItem; overload;

If item with Name (case ignored) already exists, this raises exception EAnchorAlreadyExists. Otherwise it adds TAnchorItem with given name to Anchors. It also returns created TAnchorItem.

Source: source/component/PasDoc_Items.pas (line 1023).

Public function BasePath: string; override;

This item has no description. Showing description inherited from TBaseItem.BasePath.

The full (absolute) path used to resolve filenames in this item's descriptions. Must always end with PathDelim. In this class, this simply returns GetCurrentDir (with PathDelim added if needed).

Source: source/component/PasDoc_Items.pas (line 1030).

Properties

Public property WasDeserialized: boolean read FWasDeserialized;

This item is declared in ancestor TSerializable.

This item has no description.

Source: source/component/PasDoc_Serialize.pas (line 68).

Public property DetailedDescription: string read FDetailedDescription write FDetailedDescription;

This item is declared in ancestor TBaseItem.

Detailed description of this item.

In case of TPasItem, this is something more elaborate than TPasItem.AbstractDescription.

This is already in the form suitable for final output, ready to be put inside final documentation.

Source: source/component/PasDoc_Items.pas (line 274).

Public property RawDescription: string read GetRawDescription write WriteRawDescription;

This item is declared in ancestor TBaseItem.

This stores unexpanded version (as specified in user's comment in source code of parsed units) of description of this item.

Actually, this is just a shortcut to RawDescriptionInfo.Content

Source: source/component/PasDoc_Items.pas (line 283).

Public property FullLink: string read FFullLink write FFullLink;

This item is declared in ancestor TBaseItem.

a full link that should be enough to link this item from anywhere else

Source: source/component/PasDoc_Items.pas (line 299).

Public property LastMod: string read FLastMod write FLastMod;

This item is declared in ancestor TBaseItem.

Contains '' or string with date of last modification. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 304).

Public property Name: string read FName write FName;

This item is declared in ancestor TBaseItem.

name of the item

Source: source/component/PasDoc_Items.pas (line 307).

Public property Authors: TStringVector read FAuthors write SetAuthors;

This item is declared in ancestor TBaseItem.

list of strings, each representing one author of this item

Source: source/component/PasDoc_Items.pas (line 318).

Public property Created: string read FCreated;

This item is declared in ancestor TBaseItem.

Contains '' or string with date of creation. This string is already in the form suitable for final output format (i.e. already processed by TDocGenerator.ConvertString).

Source: source/component/PasDoc_Items.pas (line 323).

Public property AutoLinkHereAllowed: boolean read FAutoLinkHereAllowed write FAutoLinkHereAllowed default true;

This item is declared in ancestor TBaseItem.

Is auto-link mechanism allowed to create link to this item ? This may be set to False by @noAutoLinkHere tag in item's description.

Source: source/component/PasDoc_Items.pas (line 327).

Public property OutputFileName: string read FOutputFileName write SetOutputFileName;

name of documentation output file

Source: source/component/PasDoc_Items.pas (line 1013).

Public property ShortTitle: string read FShortTitle write FShortTitle;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1014).

Public property SourceFileName: string read FSourceFilename write FSourceFilename;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1015).

Public property Title: string read FTitle write FTitle;

This item has no description.

Source: source/component/PasDoc_Items.pas (line 1016).

Public property Anchors: TBaseItems read FAnchors;

Anchors holds a list of TAnchorItems that represent anchors and sections within the TExternalItem. The TAnchorItems have no content so, they should not be indexed separately.

Source: source/component/PasDoc_Items.pas (line 1028).


Generated by PasDoc 1.0.2.