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
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()
PMessageVariant
getVariant()
boolean
isAutoType()
boolean
isInnerType()
-
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:
isInnerType
in 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:
isAutoType
in 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:
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.
-
findFieldByPojoName
public PField<T> findFieldByPojoName(java.lang.String pojoName)
- Specified by:
findFieldByPojoName
in 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:
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()
- Overrides:
builder
in classPMessageDescriptor<T extends PMessage<T>>
-
-