fix a regression regarding struct-asset naming scheme
This commit is contained in:
parent
68aefe5074
commit
e574fdf702
6 changed files with 71 additions and 74 deletions
|
|
@ -202,14 +202,14 @@ namespace asset {
|
|||
Asset::Ident
|
||||
getIdent() const
|
||||
{
|
||||
Category cat (STRUCT, idi::StructTraits<TY>::catFolder);
|
||||
Category cat (STRUCT, idi::StructTraits<TY>::catFolder());
|
||||
return Asset::Ident (this->getSym(), cat);
|
||||
}
|
||||
|
||||
static idi::HashVal
|
||||
getTypeHash()
|
||||
{
|
||||
return hash_value (Category (STRUCT, idi::StructTraits<TY>::catFolder));
|
||||
return hash_value (Category (STRUCT, idi::StructTraits<TY>::catFolder()));
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -237,7 +237,7 @@ namespace asset {
|
|||
|
||||
operator string () const
|
||||
{
|
||||
return "ID<"+idi::StructTraits<TY>::idSymbol+">-"+EntryID::getSym();
|
||||
return "ID<"+idi::StructTraits<TY>::idSymbol()+">-"+EntryID::getSym();
|
||||
}
|
||||
|
||||
friend ostream& operator<< (ostream& os, EntryID const& id) { return os << string(id); }
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ namespace asset {
|
|||
// does the query somehow specify the desired name-ID?
|
||||
string nameID = extractID (genericIdSymbol, query);
|
||||
if (isnil (nameID))
|
||||
nameID = extractID (StructTraits<STRU>::idSymbol, query);
|
||||
nameID = extractID (StructTraits<STRU>::idSymbol(), query);
|
||||
if (isnil (nameID))
|
||||
{
|
||||
// no name-ID contained in the query...
|
||||
|
|
@ -107,15 +107,15 @@ namespace asset {
|
|||
static int i=0;
|
||||
static format namePattern ("%s.%d");
|
||||
static format predPattern ("%s(%s), ");
|
||||
nameID = str(namePattern % StructTraits<STRU>::namePrefix % (++i) );
|
||||
nameID = str(namePattern % StructTraits<STRU>::namePrefix() % (++i) );
|
||||
name.insert(0,
|
||||
str(predPattern % StructTraits<STRU>::idSymbol % nameID ));
|
||||
str(predPattern % StructTraits<STRU>::idSymbol() % nameID ));
|
||||
}
|
||||
ENSURE (!isnil (name));
|
||||
ENSURE (!isnil (nameID));
|
||||
ENSURE (contains (name, nameID));
|
||||
|
||||
Category cat (STRUCT, StructTraits<STRU>::catFolder);
|
||||
Category cat (STRUCT, StructTraits<STRU>::catFolder());
|
||||
return Asset::Ident (name, cat ); ///////////////////////TICKET #565 the ID field should be just the ID, the query should go into a dedicated "capabilities" field.
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -36,30 +36,14 @@
|
|||
#define ASSET_STRUCT_SCHEME_H
|
||||
|
||||
|
||||
//#include "proc/mobject/session.hpp"
|
||||
//#include "proc/mobject/mobject.hpp"
|
||||
|
||||
#include "lib/symbol.hpp"
|
||||
//#include "lib/error.hpp"
|
||||
//#include "lib/util.hpp"
|
||||
|
||||
//#include <boost/format.hpp>
|
||||
|
||||
#include <boost/format.hpp>
|
||||
using boost::format;
|
||||
/////////////////////////////////////////////////////////TODO needs to be pushed down into a *.cpp
|
||||
|
||||
#include <cstdlib>
|
||||
|
||||
//using mobject::Session;
|
||||
//using mobject::MObject;
|
||||
/////////////////////////////////////////////////////////TICKET #166 : needs to be pushed down into a *.cpp
|
||||
#include <boost/format.hpp>
|
||||
using boost::format;
|
||||
|
||||
using lib::Symbol;
|
||||
//using util::isnil;
|
||||
//using util::contains;
|
||||
//using asset::Query;
|
||||
//using lumiera::query::LUMIERA_ERROR_CAPABILITY_QUERY;
|
||||
//using lumiera::query::extractID;
|
||||
|
||||
namespace mobject {
|
||||
namespace session {
|
||||
|
|
@ -77,28 +61,76 @@ namespace asset{
|
|||
class Timeline;
|
||||
class Sequence;
|
||||
|
||||
|
||||
namespace idi {
|
||||
|
||||
// structural asset ID scheme ///////////////////////////////////////////////////////////TICKET #565
|
||||
using lib::Symbol;
|
||||
|
||||
|
||||
|
||||
/* ==== structural asset ID scheme ==== */ /////////////////////////////////////////////TICKET #565 : better organisation of this naming scheme
|
||||
|
||||
template<class STRU>
|
||||
struct StructTraits
|
||||
{
|
||||
static Symbol namePrefix;
|
||||
static Symbol catFolder;
|
||||
static Symbol idSymbol;
|
||||
static Symbol namePrefix();
|
||||
static Symbol catFolder();
|
||||
static Symbol idSymbol();
|
||||
};
|
||||
|
||||
// Note: individual defaults are defined in stuct.cpp
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////TICKET #581 intending to abandon asset::Track in favour of a plain EntryID
|
||||
template<> struct StructTraits<asset::Track>
|
||||
{
|
||||
static Symbol namePrefix() { return "track"; }
|
||||
static Symbol catFolder() { return "tracks";}
|
||||
static Symbol idSymbol() { return "track"; }
|
||||
};
|
||||
template<> struct StructTraits<mobject::session::Track>
|
||||
{
|
||||
static Symbol namePrefix() { return "track"; }
|
||||
static Symbol catFolder() { return "tracks";}
|
||||
static Symbol idSymbol() { return "track"; }
|
||||
};
|
||||
template<> struct StructTraits<mobject::session::Clip>
|
||||
{
|
||||
static Symbol namePrefix() { return "clip"; }
|
||||
static Symbol catFolder() { return "clips";}
|
||||
static Symbol idSymbol() { return "clip"; }
|
||||
};
|
||||
template<> struct StructTraits<Pipe>
|
||||
{
|
||||
static Symbol namePrefix() { return "pipe"; }
|
||||
static Symbol catFolder() { return "pipes";}
|
||||
static Symbol idSymbol() { return "pipe"; }
|
||||
};
|
||||
template<> struct StructTraits<const ProcPatt>
|
||||
{
|
||||
static Symbol namePrefix() { return "patt"; }
|
||||
static Symbol catFolder() { return "build-templates";}
|
||||
static Symbol idSymbol() { return "procPatt"; }
|
||||
};
|
||||
template<> struct StructTraits<Timeline>
|
||||
{
|
||||
static Symbol namePrefix() { return "tL"; }
|
||||
static Symbol catFolder() { return "timelines";}
|
||||
static Symbol idSymbol() { return "timeline"; }
|
||||
};
|
||||
template<> struct StructTraits<Sequence>
|
||||
{
|
||||
static Symbol namePrefix() { return "seq"; }
|
||||
static Symbol catFolder() { return "sequences";}
|
||||
static Symbol idSymbol() { return "sequence"; }
|
||||
};
|
||||
|
||||
|
||||
/* catch-all defaults */
|
||||
template<class X>
|
||||
Symbol StructTraits<X>::idSymbol = typeid(X).name(); ////////////////////TICKET #583 this default works but is ugly
|
||||
Symbol StructTraits<X>::idSymbol() { return typeid(X).name(); } ////////////////////TICKET #583 this default works but is ugly
|
||||
template<class X>
|
||||
Symbol StructTraits<X>::catFolder = StructTraits<X>::idSymbol;
|
||||
Symbol StructTraits<X>::catFolder(){ return idSymbol(); }
|
||||
template<class X>
|
||||
Symbol StructTraits<X>::namePrefix = StructTraits<X>::idSymbol;
|
||||
Symbol StructTraits<X>::namePrefix(){return idSymbol(); }
|
||||
|
||||
|
||||
|
||||
|
|
@ -109,9 +141,9 @@ namespace asset{
|
|||
{
|
||||
static uint i=0;
|
||||
static format namePattern ("%s.%03d");
|
||||
/////////////////////////////////////////////////////////TODO needs to be pushed down into a *.cpp
|
||||
////////////////////////////////////////////////////////////////////////////////TICKET #166 : needs to be pushed down into a *.cpp
|
||||
|
||||
return str(namePattern % StructTraits<STRU>::namePrefix % (++i) );
|
||||
return str(namePattern % StructTraits<STRU>::namePrefix() % (++i) );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -155,39 +155,4 @@ namespace asset {
|
|||
template PSequence StructFactory::operator() (const Query<Sequence>& query);
|
||||
|
||||
|
||||
|
||||
|
||||
/* ======= struct asset naming scheme ======== */
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////TICKET #565 better organisation for the asset::Struct naming scheme
|
||||
///////////////////////////////////////////////////////////////////////////////////////////TICKET #581 intending to abandon asset::Track in favour of a plain EntryID
|
||||
template<> Symbol StructTraits<asset::Track>::namePrefix = "track";
|
||||
template<> Symbol StructTraits<asset::Track>::catFolder = "tracks";
|
||||
template<> Symbol StructTraits<asset::Track>::idSymbol = "track";
|
||||
|
||||
template<> Symbol StructTraits<mobject::session::Track>::namePrefix = "track";
|
||||
template<> Symbol StructTraits<mobject::session::Track>::catFolder = "tracks";
|
||||
template<> Symbol StructTraits<mobject::session::Track>::idSymbol = "track";
|
||||
|
||||
template<> Symbol StructTraits<mobject::session::Clip>::namePrefix = "clip";
|
||||
template<> Symbol StructTraits<mobject::session::Clip>::catFolder = "clips";
|
||||
template<> Symbol StructTraits<mobject::session::Clip>::idSymbol = "clip";
|
||||
|
||||
template<> Symbol StructTraits<Pipe>::namePrefix = "pipe";
|
||||
template<> Symbol StructTraits<Pipe>::catFolder = "pipes";
|
||||
template<> Symbol StructTraits<Pipe>::idSymbol = "pipe";
|
||||
|
||||
template<> Symbol StructTraits<const ProcPatt>::namePrefix = "patt";
|
||||
template<> Symbol StructTraits<const ProcPatt>::catFolder = "build-templates";
|
||||
template<> Symbol StructTraits<const ProcPatt>::idSymbol = "procPatt";
|
||||
|
||||
template<> Symbol StructTraits<Timeline>::namePrefix = "tL";
|
||||
template<> Symbol StructTraits<Timeline>::catFolder = "timelines";
|
||||
template<> Symbol StructTraits<Timeline>::idSymbol = "timeline";
|
||||
|
||||
template<> Symbol StructTraits<Sequence>::namePrefix = "seq";
|
||||
template<> Symbol StructTraits<Sequence>::catFolder = "sequences";
|
||||
template<> Symbol StructTraits<Sequence>::idSymbol = "sequence";
|
||||
|
||||
|
||||
} // namespace asset
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ END
|
|||
|
||||
|
||||
TEST "normalise ID" QueryUtils_test normaliseID <<END
|
||||
out: ..original : a A AA dufte 1a _1 A_A BÄH White space §&Ω%€GΩ%€ar Ω baäääääge!!!!! :
|
||||
out: normalised : a a aA dufte o1a o_1 a_A bH o white_space gar_bage :
|
||||
out-lit: ..original : a A AA dufte 1a _1 A_A BÄH White space §&Ω%€GΩ%€ar Ω baäääääge!!!!! :
|
||||
out-lit: normalised : a a aA dufte o1a o_1 a_A bH o white_space gar_bage :
|
||||
END
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ namespace lumiera {
|
|||
{
|
||||
Cmdline tokens ("a A AA dufte 1a _1 A_A BÄH");
|
||||
tokens.push_back ("");
|
||||
tokens.push_back (" White space ");
|
||||
tokens.push_back (" White \t space ");
|
||||
tokens.push_back ("§&Ω%€GΩ%€ar Ω baäääääge!!!!! ");
|
||||
|
||||
cout << "..original : " << tokens << " :\n";
|
||||
|
|
|
|||
Loading…
Reference in a new issue