Source: entity/entity.js

const EntityFactoryInterface = require('./factory-interface');
const EntityInterface = require('./interface');
const { mix } = require('mixwith');

/**
 * @summary The Entity Class
 *
 * @classdesc Everything is an `Entity` Class.<br>
 * <br>
 * For example: The higher-level `Annotation`,
 * `AnnotationProperty`, `Class`, `ClassAssertion`,
 * `DataPropertyAssertion`, `Individual`, etc. all inherent
 * from `Entity` and have therefore the same interface.<br>
 * <br>
 * As an end-user you never interact with the `Entity` Class
 * directly, but rather interact with the higher-level Classes,
 * which extend the `Entity` Class - see `Client` for more.
 *
 * @see Client
 *
 * @class
 * @extends EntityInterface
 * @extends EntityFactoryInterface
 * @author Michael Hirn <michael.j.hirn+rlay[]gmail.com>
 *
 * @example <caption>Create new Entity</caption>
 */
class Entity extends mix(EntityInterface).with(EntityFactoryInterface) { }

module.exports = Entity;