# Class Asset

Class Asset

Declaration :

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

Directly inherited by : Media Meta Proc Struct

Superinterface describing especially the bookeeping properties of Assets

Artifact : asset

Attribut id

Declaration :

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

Asset primary key.

Attribut name

Declaration :

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

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

Relation category (<unidirectional association>)

Declaration :

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

primary tree like classification of the asset

Attribut org

Declaration :

- Uml : + org : string
- C++ : public: const string 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".

Attribut version

Declaration :

- Uml : + version : uint
- C++ : public: const unsigned int 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.

Attribut groups

Declaration :

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

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

Attribut shortDesc

Declaration :

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

user visible Name-ID. To be localized.

Attribut longDesc

Declaration :

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

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

Operation getParents

Declaration :

- Uml : + getParents() : vector<PAsset>
- C++ : public: vector<PAsset> 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

Operation getDependant

Declaration :

- Uml : + getDependant() : vector<PAsset>
- C++ : public: vector<PAsset> 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.

Operation isActive

Declaration :

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

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

Operation enable

Declaration :

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

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

All public operations : enable , getDependant , getParents , isActive