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);
     }
 }