src/parser/parser-registry.js
/**
* @file Parser Registry
* @author Alexander Rose <alexander.rose@weirdbyte.de>
* @private
*/
import Registry from '../utils/registry.js'
class ParserRegistry extends Registry {
constructor () {
super('parser')
}
__hasObjName (key, objName) {
const parser = this.get(key)
return parser && parser.prototype.__objName === objName
}
isTrajectory (key) {
return this.__hasObjName(key, 'frames')
}
isStructure (key) {
return this.__hasObjName(key, 'structure')
}
isVolume (key) {
return this.__hasObjName(key, 'volume')
}
isSurface (key) {
return this.__hasObjName(key, 'surface')
}
isBinary (key) {
const parser = this.get(key)
return parser && parser.prototype.isBinary
}
isXml (key) {
const parser = this.get(key)
return parser && parser.prototype.isXml
}
isJson (key) {
const parser = this.get(key)
return parser && parser.prototype.isJson
}
getTrajectoryExtensions () {
return this.names.filter(name => this.isTrajectory(name))
}
getStructureExtensions () {
return this.names.filter(name => this.isStructure(name))
}
getVolumeExtensions () {
return this.names.filter(name => this.isVolume(name))
}
getSurfaceExtensions () {
return this.names.filter(name => this.isSurface(name))
}
}
export default ParserRegistry