test_class.declarator: TEST_BYTESTRING = ByteString.copyFromUtf8("Some text")
test_class.modifier: private static final
test_class.original_string: private static final ByteString TEST_BYTESTRING = ByteString.copyFromUtf8("Some text");
test_class.type: ByteString
test_class.var_name: TEST_BYTESTRING
test_class.file: java_src/src/test/java/com/google/crypto/tink/KeyTypeManagerTest.java
test_class.identifier: KeyTypeManagerTest
test_case.body: @Test
    public void getPrimitive_throwsForVoid() throws Exception {
      KeyTypeManager<AesGcmKey> keyManager = new TestKeyTypeManager();
      try {
        keyManager.getPrimitive(AesGcmKey.getDefaultInstance(), Void.class);
        fail();
      } catch (IllegalArgumentException e) {
        // expected
      }
    }
test_case.class_method_signature: KeyTypeManagerTest.getPrimitive_throwsForVoid()
test_case.full_signature: @Test public void getPrimitive_throwsForVoid()
test_case.identifier: getPrimitive_throwsForVoid
test_case.invocations: getPrimitive getDefaultInstance fail
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void getPrimitive_throwsForVoid()
focal_class.declarator: clazz
focal_class.modifier: private final
focal_class.original_string: private final Class<KeyProtoT> clazz;
focal_class.type: Class<KeyProtoT>
focal_class.var_name: clazz
focal_class.declarator: factories
focal_class.modifier: private final
focal_class.original_string: private final Map<Class<?>, PrimitiveFactory<?, KeyProtoT>> factories;
focal_class.type: Map<Class<?>, PrimitiveFactory<?, KeyProtoT>>
focal_class.var_name: factories
focal_class.declarator: firstPrimitiveClass
focal_class.modifier: private final
focal_class.original_string: private final Class<?> firstPrimitiveClass;
focal_class.type: Class<?>
focal_class.var_name: firstPrimitiveClass
focal_class.file: java_src/src/main/java/com/google/crypto/tink/KeyTypeManager.java
focal_class.identifier: KeyTypeManager
focal_class.class_method_signature: KeyTypeManager.KeyTypeManager(Class<KeyProtoT> clazz, PrimitiveFactory<?, KeyProtoT>... factories)
focal_class.full_signature: @SafeVarargs // Safe because we do not reference the array (see Effective Java ed. 3, Item 32). protected  KeyTypeManager(Class<KeyProtoT> clazz, PrimitiveFactory<?, KeyProtoT>... factories)
focal_class.identifier: KeyTypeManager
focal_class.modifiers: @SafeVarargs // Safe because we do not reference the array (see Effective Java ed. 3, Item 32). protected
focal_class.parameters: (Class<KeyProtoT> clazz, PrimitiveFactory<?, KeyProtoT>... factories)
focal_class.signature:  KeyTypeManager(Class<KeyProtoT> clazz, PrimitiveFactory<?, KeyProtoT>... factories)
focal_class.class_method_signature: KeyTypeManager.getKeyClass()
focal_class.full_signature: public final Class<KeyProtoT> getKeyClass()
focal_class.identifier: getKeyClass
focal_class.modifiers: public final
focal_class.parameters: ()
focal_class.return: Class<KeyProtoT>
focal_class.signature: Class<KeyProtoT> getKeyClass()
focal_class.class_method_signature: KeyTypeManager.getKeyType()
focal_class.full_signature: public abstract String getKeyType()
focal_class.identifier: getKeyType
focal_class.modifiers: public abstract
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getKeyType()
focal_class.class_method_signature: KeyTypeManager.getVersion()
focal_class.full_signature: public abstract int getVersion()
focal_class.identifier: getVersion
focal_class.modifiers: public abstract
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getVersion()
focal_class.class_method_signature: KeyTypeManager.keyMaterialType()
focal_class.full_signature: public abstract KeyMaterialType keyMaterialType()
focal_class.identifier: keyMaterialType
focal_class.modifiers: public abstract
focal_class.parameters: ()
focal_class.return: KeyMaterialType
focal_class.signature: KeyMaterialType keyMaterialType()
focal_class.class_method_signature: KeyTypeManager.parseKey(ByteString byteString)
focal_class.full_signature: public abstract KeyProtoT parseKey(ByteString byteString)
focal_class.identifier: parseKey
focal_class.modifiers: public abstract
focal_class.parameters: (ByteString byteString)
focal_class.return: KeyProtoT
focal_class.signature: KeyProtoT parseKey(ByteString byteString)
focal_class.class_method_signature: KeyTypeManager.validateKey(KeyProtoT keyProto)
focal_class.full_signature: public abstract void validateKey(KeyProtoT keyProto)
focal_class.identifier: validateKey
focal_class.modifiers: public abstract
focal_class.parameters: (KeyProtoT keyProto)
focal_class.return: void
focal_class.signature: void validateKey(KeyProtoT keyProto)
focal_class.class_method_signature: KeyTypeManager.getPrimitive(KeyProtoT key, Class<P> primitiveClass)
focal_class.full_signature: public final P getPrimitive(KeyProtoT key, Class<P> primitiveClass)
focal_class.identifier: getPrimitive
focal_class.modifiers: public final
focal_class.parameters: (KeyProtoT key, Class<P> primitiveClass)
focal_class.return: P
focal_class.signature: P getPrimitive(KeyProtoT key, Class<P> primitiveClass)
focal_class.class_method_signature: KeyTypeManager.supportedPrimitives()
focal_class.full_signature: public final Set<Class<?>> supportedPrimitives()
focal_class.identifier: supportedPrimitives
focal_class.modifiers: public final
focal_class.parameters: ()
focal_class.return: Set<Class<?>>
focal_class.signature: Set<Class<?>> supportedPrimitives()
focal_class.class_method_signature: KeyTypeManager.firstSupportedPrimitiveClass()
focal_class.full_signature: final Class<?> firstSupportedPrimitiveClass()
focal_class.identifier: firstSupportedPrimitiveClass
focal_class.modifiers: final
focal_class.parameters: ()
focal_class.return: Class<?>
focal_class.signature: Class<?> firstSupportedPrimitiveClass()
focal_class.class_method_signature: KeyTypeManager.keyFactory()
focal_class.full_signature: public KeyFactory<?, KeyProtoT> keyFactory()
focal_class.identifier: keyFactory
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: KeyFactory<?, KeyProtoT>
focal_class.signature: KeyFactory<?, KeyProtoT> keyFactory()
focal_method.body: public final <P> P getPrimitive(KeyProtoT key, Class<P> primitiveClass)
        throws GeneralSecurityException {
      @SuppressWarnings("unchecked") //  factories maps Class<P> to PrimitiveFactory<P, KeyProtoT>.
      PrimitiveFactory<P, KeyProtoT> factory =
          (PrimitiveFactory<P, KeyProtoT>) factories.get(primitiveClass);
      if (factory == null) {
        throw new IllegalArgumentException(
            "Requested primitive class " + primitiveClass.getCanonicalName() + " not supported.");
      }
      return factory.getPrimitive(key);
    }
focal_method.class_method_signature: KeyTypeManager.getPrimitive(KeyProtoT key, Class<P> primitiveClass)
focal_method.full_signature: public final P getPrimitive(KeyProtoT key, Class<P> primitiveClass)
focal_method.identifier: getPrimitive
focal_method.invocations: get getCanonicalName getPrimitive
focal_method.modifiers: public final
focal_method.parameters: (KeyProtoT key, Class<P> primitiveClass)
focal_method.return: P
focal_method.signature: P getPrimitive(KeyProtoT key, Class<P> primitiveClass)