def filterArgHash(argHash, eClass)
resolverJobs = []
asRole, helperName = nil, nil
refByName = {}
eAllReferences(eClass).each {|r| refByName[r.name] = r}
argHash.each_pair do |k,v|
if k == :as
asRole = v
argHash.delete(k)
elsif k == :name && !hasNameAttribute(eClass)
helperName = v
argHash.delete(k)
elsif v.is_a?(String)
ref = refByName[k.to_s]
if ref
argHash.delete(k)
resolverJobs << ReferenceResolver::ResolverJob.new(nil, ref, nil, v)
end
elsif v.is_a?(Array)
ref = refByName[k.to_s]
ref && v.dup.each do |e|
if e.is_a?(String)
v.delete(e)
resolverJobs << ReferenceResolver::ResolverJob.new(nil, ref, nil, e)
end
end
end
end
[ resolverJobs, asRole, helperName ]
end