data: indexing java
* expanded appsettings to include java specific stuff * added java indexer as separate project that can be build via its build script * added dependencies for java indexer to the setup folder * added license files for these dependencies. * added sample project for java. this is just to test java on other machines and can be removed again in the future. * the java parser test suite is currently uncommented because java is not running on every machine. * added some more node types * removed TokenComponentAccess::AccessType and replaced all its usages by using AccessKind * moved access components from edges to nodes * using recordReference of ParserClient for java * removed recording access specifier of inheritance edges. * added styles for new node types
This commit is contained in:
+28
-63
@@ -17,45 +17,39 @@ Edge::EdgeType Edge::intToType(int value)
|
||||
{
|
||||
switch (value)
|
||||
{
|
||||
case 0x1:
|
||||
case EDGE_MEMBER:
|
||||
return EDGE_MEMBER;
|
||||
case 0x2:
|
||||
return EDGE_TYPE_OF;
|
||||
case 0x4:
|
||||
return EDGE_RETURN_TYPE_OF;
|
||||
case 0x8:
|
||||
return EDGE_PARAMETER_TYPE_OF;
|
||||
case 0x10:
|
||||
case EDGE_TYPE_USAGE:
|
||||
return EDGE_TYPE_USAGE;
|
||||
case 0x20:
|
||||
case EDGE_USAGE:
|
||||
return EDGE_USAGE;
|
||||
case 0x40:
|
||||
case EDGE_CALL:
|
||||
return EDGE_CALL;
|
||||
case 0x80:
|
||||
case EDGE_INHERITANCE:
|
||||
return EDGE_INHERITANCE;
|
||||
case 0x100:
|
||||
case EDGE_OVERRIDE:
|
||||
return EDGE_OVERRIDE;
|
||||
case 0x200:
|
||||
return EDGE_TYPEDEF_OF;
|
||||
case 0x400:
|
||||
return EDGE_TEMPLATE_PARAMETER;
|
||||
case 0x800:
|
||||
case EDGE_TEMPLATE_ARGUMENT:
|
||||
return EDGE_TEMPLATE_ARGUMENT;
|
||||
case 0x1000:
|
||||
case EDGE_TYPE_ARGUMENT:
|
||||
return EDGE_TYPE_ARGUMENT;
|
||||
case EDGE_TEMPLATE_DEFAULT_ARGUMENT:
|
||||
return EDGE_TEMPLATE_DEFAULT_ARGUMENT;
|
||||
case 0x2000:
|
||||
case EDGE_TEMPLATE_SPECIALIZATION_OF:
|
||||
return EDGE_TEMPLATE_SPECIALIZATION_OF;
|
||||
case 0x4000:
|
||||
case EDGE_TEMPLATE_MEMBER_SPECIALIZATION_OF:
|
||||
return EDGE_TEMPLATE_MEMBER_SPECIALIZATION_OF;
|
||||
case 0x8000:
|
||||
case EDGE_INCLUDE:
|
||||
return EDGE_INCLUDE;
|
||||
case 0x10000:
|
||||
case EDGE_IMPORT:
|
||||
return EDGE_IMPORT;
|
||||
case EDGE_AGGREGATION:
|
||||
return EDGE_AGGREGATION;
|
||||
case 0x20000:
|
||||
case EDGE_MACRO_USAGE:
|
||||
return EDGE_MACRO_USAGE;
|
||||
}
|
||||
|
||||
return EDGE_NONE;
|
||||
return EDGE_UNDEFINED;
|
||||
}
|
||||
|
||||
Edge::Edge(Id id, EdgeType type, Node* from, Node* to)
|
||||
@@ -141,53 +135,28 @@ void Edge::addComponentAggregation(std::shared_ptr<TokenComponentAggregation> co
|
||||
}
|
||||
}
|
||||
|
||||
void Edge::addComponentAccess(std::shared_ptr<TokenComponentAccess> component)
|
||||
{
|
||||
if (getComponent<TokenComponentAccess>())
|
||||
{
|
||||
// LOG_ERROR("TokenComponentAccess has been set before!");
|
||||
return;
|
||||
}
|
||||
else if (m_type != EDGE_MEMBER && m_type != EDGE_INHERITANCE)
|
||||
{
|
||||
LOG_ERROR("TokenComponentAccess can't be set on edge of type: " + getTypeString());
|
||||
}
|
||||
else
|
||||
{
|
||||
addComponent(component);
|
||||
}
|
||||
}
|
||||
|
||||
std::string Edge::getTypeString(EdgeType type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case EDGE_NONE:
|
||||
return "none";
|
||||
case EDGE_UNDEFINED:
|
||||
return "undefined";
|
||||
case EDGE_MEMBER:
|
||||
return "child";
|
||||
case EDGE_TYPE_OF:
|
||||
return "type_of";
|
||||
case EDGE_RETURN_TYPE_OF:
|
||||
return "return_type";
|
||||
case EDGE_PARAMETER_TYPE_OF:
|
||||
return "parameter_type";
|
||||
case EDGE_TYPE_USAGE:
|
||||
return "type_use";
|
||||
case EDGE_USAGE:
|
||||
return "use";
|
||||
case EDGE_CALL:
|
||||
return "call";
|
||||
case EDGE_INHERITANCE:
|
||||
return "inheritance";
|
||||
case EDGE_OVERRIDE:
|
||||
return "override";
|
||||
case EDGE_CALL:
|
||||
return "call";
|
||||
case EDGE_USAGE:
|
||||
return "use";
|
||||
case EDGE_TYPEDEF_OF:
|
||||
return "typedef";
|
||||
case EDGE_TEMPLATE_PARAMETER:
|
||||
return "template_parameter";
|
||||
case EDGE_TEMPLATE_ARGUMENT:
|
||||
return "template_argument";
|
||||
case EDGE_TYPE_ARGUMENT:
|
||||
return "type_argument";
|
||||
case EDGE_TEMPLATE_DEFAULT_ARGUMENT:
|
||||
return "template_default_argument";
|
||||
case EDGE_TEMPLATE_SPECIALIZATION_OF:
|
||||
@@ -196,6 +165,8 @@ std::string Edge::getTypeString(EdgeType type)
|
||||
return "template_member_specialization";
|
||||
case EDGE_INCLUDE:
|
||||
return "include";
|
||||
case EDGE_IMPORT:
|
||||
return "import";
|
||||
case EDGE_AGGREGATION:
|
||||
return "aggregation";
|
||||
case EDGE_MACRO_USAGE:
|
||||
@@ -215,12 +186,6 @@ std::string Edge::getAsString() const
|
||||
std::stringstream str;
|
||||
str << "[" << getId() << "] " << getTypeString() << ": \"" << m_from->getName() << "\" -> \"" + m_to->getName() << "\"";
|
||||
|
||||
TokenComponentAccess* access = getComponent<TokenComponentAccess>();
|
||||
if (access)
|
||||
{
|
||||
str << " " << access->getAccessString();
|
||||
}
|
||||
|
||||
TokenComponentAggregation* aggregation = getComponent<TokenComponentAggregation>();
|
||||
if (aggregation)
|
||||
{
|
||||
|
||||
+15
-21
@@ -18,27 +18,22 @@ public:
|
||||
typedef int EdgeTypeMask;
|
||||
enum EdgeType : EdgeTypeMask
|
||||
{
|
||||
EDGE_NONE = 0x0,
|
||||
EDGE_UNDEFINED = 0x0,
|
||||
EDGE_MEMBER = 0x1,
|
||||
EDGE_TYPE_OF = 0x2,
|
||||
EDGE_RETURN_TYPE_OF = 0x4, // unused: see Storage::addFunctionNode()
|
||||
EDGE_PARAMETER_TYPE_OF = 0x8, // unused: see Storage::addFunctionNode()
|
||||
EDGE_TYPE_USAGE = 0x10,
|
||||
EDGE_USAGE = 0x20,
|
||||
EDGE_CALL = 0x40,
|
||||
EDGE_INHERITANCE = 0x80,
|
||||
EDGE_OVERRIDE = 0x100,
|
||||
EDGE_TYPEDEF_OF = 0x200,
|
||||
EDGE_TEMPLATE_PARAMETER = 0x400, // unused since template parameters are children
|
||||
EDGE_TEMPLATE_ARGUMENT = 0x800,
|
||||
EDGE_TEMPLATE_DEFAULT_ARGUMENT = 0x1000,
|
||||
EDGE_TEMPLATE_SPECIALIZATION_OF = 0x2000,
|
||||
EDGE_TEMPLATE_MEMBER_SPECIALIZATION_OF = 0x4000,
|
||||
|
||||
EDGE_INCLUDE = 0x8000,
|
||||
|
||||
EDGE_AGGREGATION = 0x10000,
|
||||
EDGE_MACRO_USAGE = 0x20000,
|
||||
EDGE_TYPE_USAGE = 0x2,
|
||||
EDGE_USAGE = 0x4,
|
||||
EDGE_CALL = 0x8,
|
||||
EDGE_INHERITANCE = 0x10,
|
||||
EDGE_OVERRIDE = 0x20,
|
||||
EDGE_TEMPLATE_ARGUMENT = 0x40,
|
||||
EDGE_TYPE_ARGUMENT = 0x80,
|
||||
EDGE_TEMPLATE_DEFAULT_ARGUMENT = 0x100,
|
||||
EDGE_TEMPLATE_SPECIALIZATION_OF = 0x200,
|
||||
EDGE_TEMPLATE_MEMBER_SPECIALIZATION_OF = 0x400,
|
||||
EDGE_INCLUDE = 0x800,
|
||||
EDGE_IMPORT = 0x1000,
|
||||
EDGE_AGGREGATION = 0x2000,
|
||||
EDGE_MACRO_USAGE = 0x4000
|
||||
};
|
||||
|
||||
static int typeToInt(EdgeType type);
|
||||
@@ -62,7 +57,6 @@ public:
|
||||
|
||||
// Component setters
|
||||
void addComponentAggregation(std::shared_ptr<TokenComponentAggregation> component);
|
||||
void addComponentAccess(std::shared_ptr<TokenComponentAccess> component);
|
||||
|
||||
// Logging.
|
||||
static std::string getTypeString(EdgeType type);
|
||||
|
||||
@@ -164,25 +164,6 @@ void Graph::removeEdge(Edge* edge)
|
||||
m_edges.erase(it);
|
||||
}
|
||||
|
||||
bool Graph::removeNodeIfUnreferencedRecursive(Node* node)
|
||||
{
|
||||
if (!node->hasReferences())
|
||||
{
|
||||
Node* parent = node->getParentNode();
|
||||
|
||||
removeNode(node);
|
||||
|
||||
if (parent)
|
||||
{
|
||||
removeNodeIfUnreferencedRecursive(parent);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
Node* Graph::findNode(std::function<bool(Node*)> func) const
|
||||
{
|
||||
std::map<Id, std::shared_ptr<Node>>::const_iterator it = find_if(m_nodes.begin(), m_nodes.end(),
|
||||
|
||||
@@ -34,7 +34,6 @@ public:
|
||||
|
||||
void removeNode(Node* node);
|
||||
void removeEdge(Edge* edge);
|
||||
bool removeNodeIfUnreferencedRecursive(Node* node);
|
||||
|
||||
Node* findNode(std::function<bool(Node*)> func) const;
|
||||
Edge* findEdge(std::function<bool(Edge*)> func) const;
|
||||
|
||||
+53
-48
@@ -5,12 +5,13 @@
|
||||
#include "utility/logging/logging.h"
|
||||
|
||||
#include "data/graph/token_component/TokenComponentAbstraction.h"
|
||||
#include "data/graph/token_component/TokenComponentAccess.h"
|
||||
#include "data/graph/token_component/TokenComponentConst.h"
|
||||
#include "data/graph/token_component/TokenComponentStatic.h"
|
||||
#include "data/graph/token_component/TokenComponentFilePath.h"
|
||||
#include "data/graph/token_component/TokenComponentSignature.h"
|
||||
|
||||
const Node::NodeTypeMask Node::NODE_NOT_VISIBLE = Node::NODE_UNDEFINED | Node::NODE_NAMESPACE;
|
||||
const Node::NodeTypeMask Node::NODE_NOT_VISIBLE = Node::NODE_UNDEFINED | Node::NODE_NAMESPACE | Node::NODE_PACKAGE;
|
||||
|
||||
std::string Node::getTypeString(NodeType type)
|
||||
{
|
||||
@@ -18,14 +19,20 @@ std::string Node::getTypeString(NodeType type)
|
||||
{
|
||||
case NODE_UNDEFINED:
|
||||
return "undefined";
|
||||
case NODE_BUILTIN_TYPE:
|
||||
return "builtin_type";
|
||||
case NODE_TYPE:
|
||||
return "type";
|
||||
case NODE_NAMESPACE:
|
||||
return "namespace";
|
||||
case NODE_CLASS:
|
||||
return "class";
|
||||
case NODE_PACKAGE:
|
||||
return "package";
|
||||
case NODE_STRUCT:
|
||||
return "struct";
|
||||
case NODE_CLASS:
|
||||
return "class";
|
||||
case NODE_INTERFACE:
|
||||
return "interface";
|
||||
case NODE_GLOBAL_VARIABLE:
|
||||
return "global_variable";
|
||||
case NODE_FIELD:
|
||||
@@ -42,6 +49,8 @@ std::string Node::getTypeString(NodeType type)
|
||||
return "typedef";
|
||||
case NODE_TEMPLATE_PARAMETER_TYPE:
|
||||
return "template_parameter_type";
|
||||
case NODE_TYPE_PARAMETER:
|
||||
return "type_parameter";
|
||||
case NODE_FILE:
|
||||
return "file";
|
||||
case NODE_MACRO:
|
||||
@@ -60,33 +69,41 @@ Node::NodeType Node::intToType(int value)
|
||||
{
|
||||
switch (value)
|
||||
{
|
||||
case 0x2:
|
||||
case NODE_TYPE:
|
||||
return NODE_TYPE;
|
||||
case 0x4:
|
||||
case NODE_BUILTIN_TYPE:
|
||||
return NODE_BUILTIN_TYPE;
|
||||
case NODE_NAMESPACE:
|
||||
return NODE_NAMESPACE;
|
||||
case 0x8:
|
||||
case NODE_PACKAGE:
|
||||
return NODE_PACKAGE;
|
||||
case NODE_STRUCT:
|
||||
return NODE_STRUCT;
|
||||
case 0x10:
|
||||
case NODE_CLASS:
|
||||
return NODE_CLASS;
|
||||
case 0x20:
|
||||
case NODE_INTERFACE:
|
||||
return NODE_INTERFACE;
|
||||
case NODE_GLOBAL_VARIABLE:
|
||||
return NODE_GLOBAL_VARIABLE;
|
||||
case 0x40:
|
||||
case NODE_FIELD:
|
||||
return NODE_FIELD;
|
||||
case 0x80:
|
||||
case NODE_FUNCTION:
|
||||
return NODE_FUNCTION;
|
||||
case 0x100:
|
||||
case NODE_METHOD:
|
||||
return NODE_METHOD;
|
||||
case 0x200:
|
||||
case NODE_ENUM:
|
||||
return NODE_ENUM;
|
||||
case 0x400:
|
||||
case NODE_ENUM_CONSTANT:
|
||||
return NODE_ENUM_CONSTANT;
|
||||
case 0x800:
|
||||
case NODE_TYPEDEF:
|
||||
return NODE_TYPEDEF;
|
||||
case 0x1000:
|
||||
case NODE_TEMPLATE_PARAMETER_TYPE:
|
||||
return NODE_TEMPLATE_PARAMETER_TYPE;
|
||||
case 0x2000:
|
||||
case NODE_TYPE_PARAMETER:
|
||||
return NODE_TYPE_PARAMETER;
|
||||
case NODE_FILE:
|
||||
return NODE_FILE;
|
||||
case 0x4000:
|
||||
case NODE_MACRO:
|
||||
return NODE_MACRO;
|
||||
}
|
||||
|
||||
@@ -324,37 +341,6 @@ void Node::forEachNodeRecursive(std::function<void(const Node*)> func) const
|
||||
);
|
||||
}
|
||||
|
||||
bool Node::hasReferences() const
|
||||
{
|
||||
if (getLocationIds().size() > 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
bool hasChildrenWithReferences = false;
|
||||
size_t childNodeCount = 0;
|
||||
|
||||
forEachEdgeOfType(
|
||||
Edge::EDGE_MEMBER,
|
||||
[&](Edge* edge)
|
||||
{
|
||||
childNodeCount++;
|
||||
|
||||
if (!hasChildrenWithReferences && edge->getTo() != this && edge->getTo()->hasReferences())
|
||||
{
|
||||
hasChildrenWithReferences = true;
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
if (hasChildrenWithReferences || getEdges().size() > childNodeCount)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Node::isNode() const
|
||||
{
|
||||
return true;
|
||||
@@ -450,6 +436,19 @@ void Node::addComponentSignature(std::shared_ptr<TokenComponentSignature> compon
|
||||
}
|
||||
}
|
||||
|
||||
void Node::addComponentAccess(std::shared_ptr<TokenComponentAccess> component)
|
||||
{
|
||||
if (getComponent<TokenComponentAccess>())
|
||||
{
|
||||
LOG_ERROR("TokenComponentAccess has been set before!");
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
addComponent(component);
|
||||
}
|
||||
}
|
||||
|
||||
std::string Node::getTypeString() const
|
||||
{
|
||||
return getTypeString(m_type);
|
||||
@@ -460,6 +459,12 @@ std::string Node::getAsString() const
|
||||
std::stringstream str;
|
||||
str << "[" << getId() << "] " << getTypeString() << ": " << "\"" << getName() << "\"";
|
||||
|
||||
TokenComponentAccess* access = getComponent<TokenComponentAccess>();
|
||||
if (access)
|
||||
{
|
||||
str << " " << access->getAccessString();
|
||||
}
|
||||
|
||||
if (getComponent<TokenComponentStatic>())
|
||||
{
|
||||
str << " static";
|
||||
|
||||
+20
-16
@@ -11,6 +11,7 @@
|
||||
#include "data/name/NameHierarchy.h"
|
||||
|
||||
class TokenComponentAbstraction;
|
||||
class TokenComponentAccess;
|
||||
class TokenComponentConst;
|
||||
class TokenComponentStatic;
|
||||
class TokenComponentFilePath;
|
||||
@@ -22,25 +23,29 @@ class Node
|
||||
public:
|
||||
typedef int NodeTypeMask;
|
||||
enum NodeType : NodeTypeMask
|
||||
{
|
||||
{ // make sure that the value of 0x0 is not used here because it doesn't work for bitmasking.
|
||||
NODE_UNDEFINED = 0x1,
|
||||
NODE_TYPE = 0x2,
|
||||
NODE_BUILTIN_TYPE = 0x4,
|
||||
|
||||
NODE_NAMESPACE = 0x4,
|
||||
NODE_STRUCT = 0x8,
|
||||
NODE_CLASS = 0x10,
|
||||
NODE_GLOBAL_VARIABLE = 0x20,
|
||||
NODE_FIELD = 0x40,
|
||||
NODE_FUNCTION = 0x80,
|
||||
NODE_METHOD = 0x100,
|
||||
NODE_NAMESPACE = 0x8,
|
||||
NODE_PACKAGE = 0x10,
|
||||
NODE_STRUCT = 0x20,
|
||||
NODE_CLASS = 0x40,
|
||||
NODE_INTERFACE = 0x80,
|
||||
NODE_GLOBAL_VARIABLE = 0x100,
|
||||
NODE_FIELD = 0x200,
|
||||
NODE_FUNCTION = 0x400,
|
||||
NODE_METHOD = 0x800,
|
||||
|
||||
NODE_ENUM = 0x200,
|
||||
NODE_ENUM_CONSTANT = 0x400,
|
||||
NODE_TYPEDEF = 0x800,
|
||||
NODE_TEMPLATE_PARAMETER_TYPE = 0x1000,
|
||||
NODE_ENUM = 0x1000,
|
||||
NODE_ENUM_CONSTANT = 0x2000,
|
||||
NODE_TYPEDEF = 0x4000,
|
||||
NODE_TEMPLATE_PARAMETER_TYPE = 0x8000,
|
||||
NODE_TYPE_PARAMETER = 0x10000,
|
||||
|
||||
NODE_FILE = 0x2000,
|
||||
NODE_MACRO = 0x4000
|
||||
NODE_FILE = 0x20000,
|
||||
NODE_MACRO = 0x40000
|
||||
};
|
||||
|
||||
static std::string getTypeString(NodeType type);
|
||||
@@ -88,8 +93,6 @@ public:
|
||||
void forEachChildNode(std::function<void(Node*)> func) const;
|
||||
void forEachNodeRecursive(std::function<void(const Node*)> func) const;
|
||||
|
||||
bool hasReferences() const;
|
||||
|
||||
// Token implementation.
|
||||
virtual bool isNode() const;
|
||||
virtual bool isEdge() const;
|
||||
@@ -100,6 +103,7 @@ public:
|
||||
void addComponentStatic(std::shared_ptr<TokenComponentStatic> component);
|
||||
void addComponentFilePath(std::shared_ptr<TokenComponentFilePath> component);
|
||||
void addComponentSignature(std::shared_ptr<TokenComponentSignature> component);
|
||||
void addComponentAccess(std::shared_ptr<TokenComponentAccess> component);
|
||||
|
||||
// Logging.
|
||||
virtual std::string getTypeString() const;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include "data/graph/token_component/TokenComponentAccess.h"
|
||||
|
||||
std::string TokenComponentAccess::getAccessString(AccessType access)
|
||||
std::string TokenComponentAccess::getAccessString(AccessKind access)
|
||||
{
|
||||
switch (access)
|
||||
{
|
||||
@@ -10,38 +10,18 @@ std::string TokenComponentAccess::getAccessString(AccessType access)
|
||||
return "protected";
|
||||
case ACCESS_PRIVATE:
|
||||
return "private";
|
||||
case ACCESS_TEMPLATE:
|
||||
case ACCESS_DEFAULT:
|
||||
return "default";
|
||||
case ACCESS_TEMPLATE_PARAMETER:
|
||||
return "template parameter";
|
||||
case ACCESS_NONE:
|
||||
return "";
|
||||
case ACCESS_TYPE_PARAMETER:
|
||||
return "type parameter";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
int TokenComponentAccess::typeToInt(AccessType type)
|
||||
{
|
||||
return type;
|
||||
}
|
||||
|
||||
TokenComponentAccess::AccessType TokenComponentAccess::intToType(int value)
|
||||
{
|
||||
switch (value)
|
||||
{
|
||||
case 0x1:
|
||||
return ACCESS_PUBLIC;
|
||||
case 0x2:
|
||||
return ACCESS_PROTECTED;
|
||||
case 0x4:
|
||||
return ACCESS_PRIVATE;
|
||||
case 0x8:
|
||||
return ACCESS_TEMPLATE;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return ACCESS_NONE;
|
||||
}
|
||||
|
||||
TokenComponentAccess::TokenComponentAccess(AccessType access)
|
||||
TokenComponentAccess::TokenComponentAccess(AccessKind access)
|
||||
: m_access(access)
|
||||
{
|
||||
}
|
||||
@@ -55,7 +35,7 @@ std::shared_ptr<TokenComponent> TokenComponentAccess::copy() const
|
||||
return std::make_shared<TokenComponentAccess>(*this);
|
||||
}
|
||||
|
||||
TokenComponentAccess::AccessType TokenComponentAccess::getAccess() const
|
||||
AccessKind TokenComponentAccess::getAccess() const
|
||||
{
|
||||
return m_access;
|
||||
}
|
||||
|
||||
@@ -4,35 +4,24 @@
|
||||
#include <string>
|
||||
|
||||
#include "data/graph/token_component/TokenComponent.h"
|
||||
#include "data/parser/AccessKind.h"
|
||||
|
||||
class TokenComponentAccess
|
||||
: public TokenComponent
|
||||
{
|
||||
public:
|
||||
enum AccessType : int // todo: use normal numbers here. not 2^x
|
||||
{
|
||||
ACCESS_PUBLIC = 0x1,
|
||||
ACCESS_PROTECTED = 0x2,
|
||||
ACCESS_PRIVATE = 0x4,
|
||||
ACCESS_TEMPLATE = 0x8,
|
||||
ACCESS_NONE = 0x0
|
||||
};
|
||||
static std::string getAccessString(AccessKind access);
|
||||
|
||||
static std::string getAccessString(AccessType access);
|
||||
|
||||
static int typeToInt(AccessType type);
|
||||
static AccessType intToType(int value);
|
||||
|
||||
TokenComponentAccess(AccessType access);
|
||||
TokenComponentAccess(AccessKind access);
|
||||
virtual ~TokenComponentAccess();
|
||||
|
||||
virtual std::shared_ptr<TokenComponent> copy() const;
|
||||
|
||||
AccessType getAccess() const;
|
||||
AccessKind getAccess() const;
|
||||
std::string getAccessString() const;
|
||||
|
||||
private:
|
||||
const AccessType m_access;
|
||||
const AccessKind m_access;
|
||||
};
|
||||
|
||||
#endif // TOKEN_COMPONENT_ACCESS_H
|
||||
|
||||
Reference in New Issue
Block a user