/* Web Polygraph http://www.web-polygraph.org/
* (C) 2003-2006 The Measurement Factory
* Licensed under the Apache License, Version 2.0 */
#include "pgl/pgl.h"
#include "xstd/String.h"
#include "pgl/PglRec.h"
#include "pgl/PglStringSym.h"
#include "pgl/MembershipMapSym.h"
const String MembershipMapSym::TheType = "MembershipMap";
static String strGroups = "group_space";
static String strMembers = "member_space";
static String strGroupsPerMember = "groups_per_member";
static String strStringArr = "string[]";
static String strInt_distr = "int_distr";
MembershipMapSym::MembershipMapSym(): RecSym(TheType, new PglRec) {
theRec->bAdd(strStringArr, strGroups, 0);
theRec->bAdd(strStringArr, strMembers, 0);
theRec->bAdd(strInt_distr, strGroupsPerMember, 0);
}
MembershipMapSym::MembershipMapSym(const String &aType, PglRec *aRec): RecSym(aType, aRec) {
}
bool MembershipMapSym::isA(const String &type) const {
return RecSym::isA(type) || type == TheType;
}
SynSym *MembershipMapSym::dupe(const String &type) const {
if (isA(type))
return new MembershipMapSym(this->type(), theRec->clone());
return RecSym::dupe(type);
}
bool MembershipMapSym::groupSpace(StringArray &names) const {
return getStringArray(strGroups, names);
}
bool MembershipMapSym::memberSpace(StringArray &names) const {
return getStringArray(strMembers, names);
}
RndDistr *MembershipMapSym::groupsPerMember() const {
return getDistr(strGroupsPerMember);
}
syntax highlighted by Code2HTML, v. 0.9.1