|
|
@ -16,23 +16,19 @@ import { RuleInterface } from './interfaces/rule.interface'; |
|
|
|
export abstract class Rule<T extends RuleSettings> implements RuleInterface<T> { |
|
|
|
private key: string; |
|
|
|
private languageCode: string; |
|
|
|
private name: string; |
|
|
|
|
|
|
|
public constructor( |
|
|
|
protected exchangeRateDataService: ExchangeRateDataService, |
|
|
|
{ |
|
|
|
key, |
|
|
|
languageCode = DEFAULT_LANGUAGE_CODE, |
|
|
|
name |
|
|
|
languageCode = DEFAULT_LANGUAGE_CODE |
|
|
|
}: { |
|
|
|
key: string; |
|
|
|
languageCode?: string; // TODO: Make mandatory
|
|
|
|
name: string; |
|
|
|
} |
|
|
|
) { |
|
|
|
this.key = key; |
|
|
|
this.languageCode = languageCode; |
|
|
|
this.name = name; |
|
|
|
} |
|
|
|
|
|
|
|
public getKey() { |
|
|
@ -43,10 +39,6 @@ export abstract class Rule<T extends RuleSettings> implements RuleInterface<T> { |
|
|
|
return this.languageCode; |
|
|
|
} |
|
|
|
|
|
|
|
public getName() { |
|
|
|
return this.name; |
|
|
|
} |
|
|
|
|
|
|
|
public groupCurrentHoldingsByAttribute( |
|
|
|
holdings: PortfolioPosition[], |
|
|
|
attribute: keyof PortfolioPosition, |
|
|
@ -82,5 +74,7 @@ export abstract class Rule<T extends RuleSettings> implements RuleInterface<T> { |
|
|
|
PortfolioReportRule['configuration'] |
|
|
|
>; |
|
|
|
|
|
|
|
public abstract getName(): string; |
|
|
|
|
|
|
|
public abstract getSettings(aUserSettings: UserSettings): T; |
|
|
|
} |
|
|
|