You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
236 lines
7.7 KiB
JavaScript
236 lines
7.7 KiB
JavaScript
/*
|
|
* Copyright (C) 2019 Intel Corporation
|
|
* SPDX-License-Identifier: MIT
|
|
*/
|
|
|
|
(() => {
|
|
/**
|
|
* Class representing an annotation loader
|
|
* @memberof module:API.cvat.classes
|
|
* @hideconstructor
|
|
*/
|
|
class Loader {
|
|
constructor(initialData) {
|
|
const data = {
|
|
display_name: initialData.display_name,
|
|
format: initialData.format,
|
|
handler: initialData.handler,
|
|
version: initialData.version,
|
|
};
|
|
|
|
Object.defineProperties(this, {
|
|
name: {
|
|
/**
|
|
* @name name
|
|
* @type {string}
|
|
* @memberof module:API.cvat.classes.Loader
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.display_name,
|
|
},
|
|
format: {
|
|
/**
|
|
* @name format
|
|
* @type {string}
|
|
* @memberof module:API.cvat.classes.Loader
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.format,
|
|
},
|
|
handler: {
|
|
/**
|
|
* @name handler
|
|
* @type {string}
|
|
* @memberof module:API.cvat.classes.Loader
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.handler,
|
|
},
|
|
version: {
|
|
/**
|
|
* @name version
|
|
* @type {string}
|
|
* @memberof module:API.cvat.classes.Loader
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.version,
|
|
},
|
|
});
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Class representing an annotation dumper
|
|
* @memberof module:API.cvat.classes
|
|
* @hideconstructor
|
|
*/
|
|
class Dumper {
|
|
constructor(initialData) {
|
|
const data = {
|
|
display_name: initialData.display_name,
|
|
format: initialData.format,
|
|
handler: initialData.handler,
|
|
version: initialData.version,
|
|
};
|
|
|
|
Object.defineProperties(this, {
|
|
name: {
|
|
/**
|
|
* @name name
|
|
* @type {string}
|
|
* @memberof module:API.cvat.classes.Dumper
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.display_name,
|
|
},
|
|
format: {
|
|
/**
|
|
* @name format
|
|
* @type {string}
|
|
* @memberof module:API.cvat.classes.Dumper
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.format,
|
|
},
|
|
handler: {
|
|
/**
|
|
* @name handler
|
|
* @type {string}
|
|
* @memberof module:API.cvat.classes.Dumper
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.handler,
|
|
},
|
|
version: {
|
|
/**
|
|
* @name version
|
|
* @type {string}
|
|
* @memberof module:API.cvat.classes.Dumper
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.version,
|
|
},
|
|
});
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Class representing an annotation format
|
|
* @memberof module:API.cvat.classes
|
|
* @hideconstructor
|
|
*/
|
|
class AnnotationFormat {
|
|
constructor(initialData) {
|
|
const data = {
|
|
created_date: initialData.created_date,
|
|
updated_date: initialData.updated_date,
|
|
id: initialData.id,
|
|
owner: initialData.owner,
|
|
name: initialData.name,
|
|
handler_file: initialData.handler_file,
|
|
};
|
|
|
|
data.dumpers = initialData.dumpers.map((el) => new Dumper(el));
|
|
data.loaders = initialData.loaders.map((el) => new Loader(el));
|
|
|
|
// Now all fields are readonly
|
|
Object.defineProperties(this, {
|
|
id: {
|
|
/**
|
|
* @name id
|
|
* @type {integer}
|
|
* @memberof module:API.cvat.classes.AnnotationFormat
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.id,
|
|
},
|
|
owner: {
|
|
/**
|
|
* @name owner
|
|
* @type {integer}
|
|
* @memberof module:API.cvat.classes.AnnotationFormat
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.owner,
|
|
},
|
|
name: {
|
|
/**
|
|
* @name name
|
|
* @type {string}
|
|
* @memberof module:API.cvat.classes.AnnotationFormat
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.name,
|
|
},
|
|
createdDate: {
|
|
/**
|
|
* @name createdDate
|
|
* @type {string}
|
|
* @memberof module:API.cvat.classes.AnnotationFormat
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.created_date,
|
|
},
|
|
updatedDate: {
|
|
/**
|
|
* @name updatedDate
|
|
* @type {string}
|
|
* @memberof module:API.cvat.classes.AnnotationFormat
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.updated_date,
|
|
},
|
|
handlerFile: {
|
|
/**
|
|
* @name handlerFile
|
|
* @type {string}
|
|
* @memberof module:API.cvat.classes.AnnotationFormat
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.handler_file,
|
|
},
|
|
loaders: {
|
|
/**
|
|
* @name loaders
|
|
* @type {module:API.cvat.classes.Loader[]}
|
|
* @memberof module:API.cvat.classes.AnnotationFormat
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => [...data.loaders],
|
|
},
|
|
dumpers: {
|
|
/**
|
|
* @name dumpers
|
|
* @type {module:API.cvat.classes.Dumper[]}
|
|
* @memberof module:API.cvat.classes.AnnotationFormat
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => [...data.dumpers],
|
|
},
|
|
});
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
AnnotationFormat,
|
|
Loader,
|
|
Dumper,
|
|
};
|
|
})();
|