Class PInterfaceDescriptor<T extends PMessage<T>>
- java.lang.Object
-
- net.morimekta.providence.descriptor.PDeclaredDescriptor<T>
-
- net.morimekta.providence.descriptor.PMessageDescriptor<T>
-
- net.morimekta.providence.descriptor.PInterfaceDescriptor<T>
-
- All Implemented Interfaces:
java.lang.reflect.Type,PDescriptor
@Immutable public class PInterfaceDescriptor<T extends PMessage<T>> extends PMessageDescriptor<T>
The definition of a providence interface. This is a complete class, in order to minimize the need for generated code for interfaces.
-
-
Constructor Summary
Constructors Constructor Description PInterfaceDescriptor(java.lang.String programName, java.lang.String name, PField<T>[] fields, PMessageDescriptorProvider<?>... possibleTypes)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PMessageBuilder<T>builder()PField<T>findFieldById(int id)PField<T>findFieldByName(java.lang.String name)PField<T>findFieldByPojoName(java.lang.String pojoName)PField<T>[]getFields()java.util.List<PMessageDescriptor<?>>getPossibleTypes()PMessageVariantgetVariant()booleanisAutoType()booleanisInnerType()-
Methods inherited from class net.morimekta.providence.descriptor.PMessageDescriptor
equals, fieldForId, fieldForName, fieldForPojoName, getBuilderSupplier, getImplementing, getType, hashCode, isSimple
-
Methods inherited from class net.morimekta.providence.descriptor.PDeclaredDescriptor
getDefaultValue, getName, getProgramName, getQualifiedName, getTypeName, toString
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface net.morimekta.providence.descriptor.PDescriptor
getQualifiedName
-
-
-
-
Constructor Detail
-
PInterfaceDescriptor
public PInterfaceDescriptor(java.lang.String programName, java.lang.String name, PField<T>[] fields, PMessageDescriptorProvider<?>... possibleTypes)
-
-
Method Detail
-
isInnerType
public boolean isInnerType()
- Specified by:
isInnerTypein classPDeclaredDescriptor<T extends PMessage<T>>- Returns:
- Returns true if the type is an inner type. Meaning it is contained within another type or service.
-
isAutoType
public boolean isAutoType()
- Specified by:
isAutoTypein classPDeclaredDescriptor<T extends PMessage<T>>- Returns:
- Returns true if the type is generated automatically by means of something else, e.g. request and response types for services. Or is a built in type as part of providence itself.
-
getPossibleTypes
public java.util.List<PMessageDescriptor<?>> getPossibleTypes()
- Returns:
- Get a list of know possible types implementing this interface.
-
getVariant
@Nonnull public PMessageVariant getVariant()
- Specified by:
getVariantin classPMessageDescriptor<T extends PMessage<T>>- Returns:
- The struct variant.
-
getFields
@Nonnull public PField<T>[] getFields()
- Specified by:
getFieldsin classPMessageDescriptor<T extends PMessage<T>>- Returns:
- An unmodifiable list of fields that the struct holds.
-
findFieldByName
public PField<T> findFieldByName(java.lang.String name)
- Specified by:
findFieldByNamein classPMessageDescriptor<T extends PMessage<T>>- Parameters:
name- Name of field to get.- Returns:
- The field if present.
-
findFieldByPojoName
public PField<T> findFieldByPojoName(java.lang.String pojoName)
- Specified by:
findFieldByPojoNamein classPMessageDescriptor<T extends PMessage<T>>- Parameters:
pojoName- POJO name of field.- Returns:
- The field if present.
-
findFieldById
public PField<T> findFieldById(int id)
- Specified by:
findFieldByIdin classPMessageDescriptor<T extends PMessage<T>>- Parameters:
id- The ID of the field to get.- Returns:
- The field if present.
-
builder
@Nonnull public PMessageBuilder<T> builder()
- Overrides:
builderin classPMessageDescriptor<T extends PMessage<T>>
-
-