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:
PDescriptor
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()
Get the builder for the given declared type.PField<T>
findFieldById(int id)
PField<T>
findFieldByName(java.lang.String name)
PField<T>[]
getFields()
java.util.List<PMessageDescriptor<?>>
getPossibleTypes()
PMessageVariant
getVariant()
-
Methods inherited from class net.morimekta.providence.descriptor.PMessageDescriptor
equals, fieldForId, fieldForName, getBuilderSupplier, getImplementing, getType, hashCode, isSimple
-
Methods inherited from class net.morimekta.providence.descriptor.PDeclaredDescriptor
getDefaultValue, getName, getProgramName, getQualifiedName, 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
-
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:
getVariant
in classPMessageDescriptor<T extends PMessage<T>>
- Returns:
- The struct variant.
-
getFields
@Nonnull public PField<T>[] getFields()
- Specified by:
getFields
in 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:
findFieldByName
in classPMessageDescriptor<T extends PMessage<T>>
- Parameters:
name
- Name of field to get.- Returns:
- The field if present.
-
findFieldById
public PField<T> findFieldById(int id)
- Specified by:
findFieldById
in 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()
Description copied from class:PDeclaredDescriptor
Get the builder for the given declared type.- Overrides:
builder
in classPMessageDescriptor<T extends PMessage<T>>
- Returns:
- The type specific builder provider.
-
-