version 1.9, 2002/07/31 15:45:25
|
version 1.10, 2002/08/19 17:43:23
|
|
|
char* q = p; | char* q = p; |
| |
if (!isalpha(*q)) | if (!isalpha(*q)) |
throw IllformedObjectName(objectName); |
throw MalformedObjectNameException(objectName); |
| |
q++; | q++; |
| |
|
|
// Check for a port number: | // Check for a port number: |
| |
if (!isdigit(*q)) | if (!isdigit(*q)) |
throw IllformedObjectName(objectName); |
throw MalformedObjectNameException(objectName); |
| |
while (isdigit(*q)) | while (isdigit(*q)) |
q++; | q++; |
|
|
if (*q != '/') | if (*q != '/') |
{ | { |
host.clear(); | host.clear(); |
throw IllformedObjectName(objectName); |
throw MalformedObjectNameException(objectName); |
} | } |
| |
p = ++q; | p = ++q; |
|
|
String namespaceName = String(p, colon - p); | String namespaceName = String(p, colon - p); |
if (!CIMNamespaceName::legal(namespaceName)) | if (!CIMNamespaceName::legal(namespaceName)) |
{ | { |
throw IllformedObjectName(objectName); |
throw MalformedObjectNameException(objectName); |
} | } |
nameSpace = namespaceName; | nameSpace = namespaceName; |
| |
|
|
char* equalsign = strchr(p, '='); | char* equalsign = strchr(p, '='); |
if (!equalsign) | if (!equalsign) |
{ | { |
throw IllformedObjectName(objectName); |
throw MalformedObjectNameException(objectName); |
} | } |
| |
*equalsign = 0; | *equalsign = 0; |
CIMName keyString(p); | CIMName keyString(p); |
| |
if (!CIMName::legal(keyString)) | if (!CIMName::legal(keyString)) |
throw IllformedObjectName(objectName); |
throw MalformedObjectNameException(objectName); |
| |
// Get the value part: | // Get the value part: |
| |
|
|
type = KeyBinding::REFERENCE; | type = KeyBinding::REFERENCE; |
| |
if (*p++ != '"') | if (*p++ != '"') |
throw IllformedObjectName(objectName); |
throw MalformedObjectNameException(objectName); |
| |
while (*p && *p != '"') | while (*p && *p != '"') |
{ | { |
|
|
} | } |
| |
if (*p++ != '"') | if (*p++ != '"') |
throw IllformedObjectName(objectName); |
throw MalformedObjectNameException(objectName); |
} | } |
else if (*p == '"') | else if (*p == '"') |
{ | { |
|
|
} | } |
| |
if (*p++ != '"') | if (*p++ != '"') |
throw IllformedObjectName(objectName); |
throw MalformedObjectNameException(objectName); |
} | } |
else if (toupper(*p) == 'T' || toupper(*p) == 'F') | else if (toupper(*p) == 'T' || toupper(*p) == 'F') |
{ | { |
|
|
| |
if (!(((strncmp(p, "TRUE", n) == 0) && n == 4) || | if (!(((strncmp(p, "TRUE", n) == 0) && n == 4) || |
((strncmp(p, "FALSE", n) == 0) && n == 5))) | ((strncmp(p, "FALSE", n) == 0) && n == 5))) |
throw IllformedObjectName(objectName); |
throw MalformedObjectNameException(objectName); |
| |
valueString.assign(p, n); | valueString.assign(p, n); |
| |
|
|
Sint64 x; | Sint64 x; |
| |
if (!XmlReader::stringToSignedInteger(p, x)) | if (!XmlReader::stringToSignedInteger(p, x)) |
throw IllformedObjectName(objectName); |
throw MalformedObjectNameException(objectName); |
| |
valueString.assign(p, n); | valueString.assign(p, n); |
| |
|
|
{ | { |
if (*p++ != ',') | if (*p++ != ',') |
{ | { |
throw IllformedObjectName(objectName); |
throw MalformedObjectNameException(objectName); |
} | } |
} | } |
} | } |
|
|
| |
if (gotHost && !gotNamespace) | if (gotHost && !gotNamespace) |
{ | { |
throw IllformedObjectName(objectName); |
throw MalformedObjectNameException(objectName); |
} | } |
| |
// Extract the class name: | // Extract the class name: |
|
|
{ | { |
if (!CIMName::legal(p)) | if (!CIMName::legal(p)) |
{ | { |
throw IllformedObjectName(objectName); |
throw MalformedObjectNameException(objectName); |
} | } |
| |
// ATTN: remove this later: a reference should only be able to hold | // ATTN: remove this later: a reference should only be able to hold |
|
|
String className = String(p, dot - p); | String className = String(p, dot - p); |
if (!CIMName::legal(className)) | if (!CIMName::legal(className)) |
{ | { |
throw IllformedObjectName(objectName); |
throw MalformedObjectNameException(objectName); |
} | } |
_rep->_className = className; | _rep->_className = className; |
| |