@enonic/mock-xp
Version:
Mock Enonic XP API JavaScript Library
58 lines (44 loc) • 1.52 kB
text/typescript
import {RuntimeException} from '../exception/RuntimeException';
import {Branch} from '../Branch';
export const NODE_ALREADY_EXIST_AT_PATH_EXCEPTION_NAME = 'com.enonic.xp.node.NodeAlreadyExistAtPathException';
export declare type NodePath = string;
export declare type RepositoryId = string;
export class NodeAlreadyExistAtPathException extends RuntimeException {
branch: Branch;
node: NodePath;
repositoryId: RepositoryId;
private static buildMessage(nodePath: NodePath, repositoryId: RepositoryId, branch: Branch): string {
let message = `Node already exists at path ${nodePath}`;
if (repositoryId) {
message += ` repository: ${repositoryId}`;
}
if (branch) {
message += ` branch: ${branch.id}`;
}
return message;
}
constructor(nodePath: NodePath, repositoryId?: RepositoryId, branch?: Branch) {
if (arguments.length === 1) { // deprecated
super(nodePath);
} else {
super(NodeAlreadyExistAtPathException.buildMessage( nodePath, repositoryId, branch ));
}
this.node = nodePath;
this.repositoryId = repositoryId;
this.branch = branch;
// Maintains proper stack trace for where our error was thrown (only available on V8)
if (Error.captureStackTrace) {
Error.captureStackTrace(this, NodeAlreadyExistAtPathException);
}
this.name = NODE_ALREADY_EXIST_AT_PATH_EXCEPTION_NAME;
}
public getBranch(): Branch {
return this.branch;
}
public getNode(): NodePath {
return this.node;
}
public getRepositoryId(): RepositoryId {
return this.repositoryId;
}
}