
net.dongliu.prettypb.runtime.include.Extendable Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of prettypb-runtime Show documentation
Show all versions of prettypb-runtime Show documentation
Prettypb serialization runtime
The newest version!
package net.dongliu.prettypb.runtime.include;
import java.util.List;
import java.util.Map;
/**
* for proto message which have extensions
*
* @author Dong Liu
*/
public interface Extendable {
/**
* get extend field of this class
*
* @return
*/
Extendee getExtendee();
/**
* all the extension this message defined
* this is for internal use
*
* @return the extension ranges
*/
default List getExtensionRangeList() {
return getExtendee().getExtensionRangeList();
}
/**
* if extension ranges contains this tag
* this is for internal use
*
* @return true or false
*/
default boolean tagInExtensions(int tag) {
return getExtendee().tagInExtensions(tag);
}
/**
* if this message have the extension
*
* @return true or false
*/
default boolean hasExtension(ExtensionField field) {
return getExtendee().hasExtension(field);
}
/**
* get the extension value
*
* @param field not null
* @return extension by field. it not exists, return null
*/
default T getExtension(ExtensionField field) {
return getExtendee().getExtension(field);
}
/**
* get all extensions have been set
*
* @return all existed extensions
*/
default Map getAllExtensions() {
return getExtendee().getAllExtensions();
}
/**
* set the extension value
*
* @param field not null
* @param value the field's value
*/
default void setExtension(ExtensionField field, T value) {
getExtendee().setExtension(field, value);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy