item->SetZone(zone);
item->Compile()->Register();
- ObjectRule::AddRule(type, name, exprl, filter, expr->m_DebugInfo, context);
+ if (ObjectRule::IsValidSourceType(type))
+ ObjectRule::AddRule(type, name, filter, expr->m_DebugInfo, context);
return Empty;
}
ObjectRule::RuleMap ObjectRule::m_Rules;
ObjectRule::CallbackMap ObjectRule::m_Callbacks;
-ObjectRule::ObjectRule(const String& name, const Expression::Ptr& expression,
- const Expression::Ptr& filter, const DebugInfo& di, const Object::Ptr& scope)
- : m_Name(name), m_Expression(expression), m_Filter(filter), m_DebugInfo(di), m_Scope(scope)
+ObjectRule::ObjectRule(const String& name, const Expression::Ptr& filter,
+ const DebugInfo& di, const Object::Ptr& scope)
+ : m_Name(name), m_Filter(filter), m_DebugInfo(di), m_Scope(scope)
{ }
String ObjectRule::GetName(void) const
return m_Name;
}
-Expression::Ptr ObjectRule::GetExpression(void) const
-{
- return m_Expression;
-}
-
Expression::Ptr ObjectRule::GetFilter(void) const
{
return m_Filter;
}
void ObjectRule::AddRule(const String& sourceType, const String& name,
- const Expression::Ptr& expression, const Expression::Ptr& filter,
- const DebugInfo& di, const Object::Ptr& scope)
+ const Expression::Ptr& filter, const DebugInfo& di, const Object::Ptr& scope)
{
- m_Rules[sourceType].push_back(ObjectRule(name, expression, filter, di, scope));
+ m_Rules[sourceType].push_back(ObjectRule(name, filter, di, scope));
}
bool ObjectRule::EvaluateFilter(const Object::Ptr& scope) const
typedef std::map<String, std::vector<ObjectRule> > RuleMap;
String GetName(void) const;
- Expression::Ptr GetExpression(void) const;
Expression::Ptr GetFilter(void) const;
DebugInfo GetDebugInfo(void) const;
Object::Ptr GetScope(void) const;
bool EvaluateFilter(const Object::Ptr& scope) const;
- static void AddRule(const String& sourceType, const String& name, const Expression::Ptr& expression,
+ static void AddRule(const String& sourceType, const String& name,
const Expression::Ptr& filter, const DebugInfo& di, const Object::Ptr& scope);
static void EvaluateRules(bool clear);
private:
String m_Name;
- Expression::Ptr m_Expression;
Expression::Ptr m_Filter;
DebugInfo m_DebugInfo;
Object::Ptr m_Scope;
static CallbackMap m_Callbacks;
static RuleMap m_Rules;
- ObjectRule(const String& name, const Expression::Ptr& expression,
- const Expression::Ptr& filter, const DebugInfo& di, const Object::Ptr& scope);
+ ObjectRule(const String& name, const Expression::Ptr& filter,
+ const DebugInfo& di, const Object::Ptr& scope);
};
}