Package com.google.crypto.tink.internal
Class PrimitiveConstructor<KeyT extends Key,PrimitiveT>
- java.lang.Object
-
- com.google.crypto.tink.internal.PrimitiveConstructor<KeyT,PrimitiveT>
-
public abstract class PrimitiveConstructor<KeyT extends Key,PrimitiveT> extends java.lang.ObjectCreate Primitive objects fromKeyobjects of a certain kind.This class should eventually be in Tinks public API -- however, it might still change before that. Note: Before making this public, the class name should be reconsidered. (Currently the desirable option "PrimitiveFactory" is unavailable because such a class already exists.)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfacePrimitiveConstructor.PrimitiveConstructionFunction<KeyT extends Key,PrimitiveT>A function which creates a Primitive object.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract PrimitiveTconstructPrimitive(KeyT key)static <KeyT extends Key,PrimitiveT>
PrimitiveConstructor<KeyT,PrimitiveT>create(PrimitiveConstructor.PrimitiveConstructionFunction<KeyT,PrimitiveT> function, java.lang.Class<KeyT> keyClass, java.lang.Class<PrimitiveT> primitiveClass)Creates a PrimitiveConstructor object.java.lang.Class<KeyT>getKeyClass()java.lang.Class<PrimitiveT>getPrimitiveClass()
-
-
-
Method Detail
-
constructPrimitive
public abstract PrimitiveT constructPrimitive(KeyT key) throws java.security.GeneralSecurityException
- Throws:
java.security.GeneralSecurityException
-
getKeyClass
public java.lang.Class<KeyT> getKeyClass()
-
getPrimitiveClass
public java.lang.Class<PrimitiveT> getPrimitiveClass()
-
create
public static <KeyT extends Key,PrimitiveT> PrimitiveConstructor<KeyT,PrimitiveT> create(PrimitiveConstructor.PrimitiveConstructionFunction<KeyT,PrimitiveT> function, java.lang.Class<KeyT> keyClass, java.lang.Class<PrimitiveT> primitiveClass)
Creates a PrimitiveConstructor object.This function should only be used by Primitives authors, that is, end users should almost certainly avoid using this function directly, and instead use their respective Primitive's
register()method.That being said, one typically creates a PrimitiveConstructor object by writing a function
This function can then be used to create aclass MyClass { private static MyPrimitive getPrimitive(MyKey key) throws GeneralSecurityException { ... } }PrimitiveConstructor:
-- and the resultingPrimitiveConstructor<MyKey, MyPrimitive> serializer = PrimitiveConstructor.create(MyClass::getPrimitive, MyKey.class, MyPrimitive.class);PrimitiveConstructorobject can in turn be registered in aPrimitiveRegistry.
-
-