private function forSignature($signature) { if (JavaSignatureUtil::isVoid($signature)) { $_class = new SimpleMappedClass(); $_class->setPrimitive(false); $_class->setSignature($signature); return $_class; } else { if (JavaSignatureUtil::isPrimitive($signature)) { $_class = new SimpleMappedClass(); $_class->setPrimitive(true); $_class->setSignature($signature); return $_class; } else { if (JavaSignatureUtil::isArray($signature)) { $_class = new SimpleMappedClass(); $_class->setPrimitive(true); $_class->setSignature($signature); $_class->setArray(true); $_class->setComponentType($this->loadMappedClass(JavaSignatureUtil::getSignatureForComponentTypeOfArray($signature))); return $_class; } else { require_once GWTPHP_DIR . '/maps/java/lang/SignatureParseException.class.php'; throw new SignatureParseException("Signature for not primitive or array type: " . $signature); } } } }
/** * * * @param string $signature * @throws SignatureParseException * @return string */ public static function getSignatureForComponentTypeOfArray($signature) { if (!JavaSignatureUtil::isArray($signature)) { require_once GWTPHP_DIR . '/maps/java/lang/SignatureParseException.class.php'; throw new SignatureParseException("Not an array signature: " . $signature); } //$second = $signature[1] ; if ($signature[1] == TypeSignatures::$OBJECT) { // [Ljava.lang.String; return substr($signature, -strlen($signature) + 2, strlen($signature) - 3); } else { return substr($signature, -strlen($signature) + 1); } }