# Class Asset

Class Asset

Superinterface describing especially the bookeeping properties of Assets

Declaration :

- C++ : class Asset
- Java : public interface Asset

Directly inherited by : Media Meta Proc Struct

Artifact : asset

Stereotype: interface

Attribut id

Asset primary key.

Declaration :

- Uml : + id : long
- C++ : public: const long id

Attribut name

element ID, comprehensible but sanitized. The tuple (category, name, org) is unique.

Declaration :

- Uml : + name : string
- C++ : public: const string name

Relation category (<unidirectional association>)

primary tree like classification of the asset

Declaration :

- Uml : + category : Category, multiplicity : 1
- C++ : public: const Category* category

Attribut org

origin or authorship id. Can be a project abbreviation, a package id or just the authors nickname or UID. This allows for the compnent name to be more generic (e.g. "blur"). Default for all assets provided by the core Lumiera codebase is "lumi".

Declaration :

- Uml : + org : string
- C++ : public: const string org

Attribut version

version number of the thing or concept represented by this asset. Of each unique tuple (name, category, org) there will be only one version in the whole system. Version 0 is reserved for internal purposes. Versions are considered to be ordered, and any higher version is supposed to be fully backwards compatible to all previous versions.

Declaration :

- Uml : + version : uint
- C++ : public: const unsigned int version

Attribut groups

additional classification, selections or departments this asset belongs to. Groups are optional, non-exclusive and may be overlapping.

Declaration :

- Uml : # groups : set<string>
- C++ : protected: set<string> groups

Attribut shortDesc

user visible Name-ID. To be localized.

Declaration :

- Uml : # shortDesc : string
- C++ : protected: const string shortDesc

Attribut longDesc

user visible qualification of the thing, unit or concept represented by this asset. perferably "in one line". To be localized.

Declaration :

- Uml : # longDesc : string
- C++ : protected: const string longDesc

Operation getParents

List of entities this asset depends on or requires to be functional. May be empty. The head of this list can be considered the primary prerequisite

Declaration :

- Uml : + getParents() : vector<PAsset>
- C++ : public: vector<PAsset> getParents ()

Operation getDependant

All the other assets requiring this asset to be functional. For example, all the clips depending on a given media file. May be empty. The dependency relation is transitive.

Declaration :

- Uml : + getDependant() : vector<PAsset>
- C++ : public: vector<PAsset> getDependant ()

Operation isActive

weather this asset is swithced on and consequently included in the fixture and participates in rendering

Declaration :

- Uml : + isActive() : bool
- C++ : public: bool isActive ()

Operation enable

change the enabled status of this asset. Note the corresponding #isActive predicate may depend on the enablement status of parent assets as well

Declaration :

- Uml : + enable(in bool : ) : void, exceptions : State
- C++ : public: void enable () throw (State)

All public operations : enable , getDependant , getParents , isActive