dogs_core library

Classes

APISchemaObjectMetaVisitor
CascadeItemType<T>
Defines the item type of the implementing class. The getItemType method in lyell_gen will consider T as the actual item type and treat it as if it is the type argument of a List, Future or a similar generic core types.
ClassValidator
Class level validator for annotations of ClassValidators.
ConverterSupplyingVisitor
DateTimeConverter
DogConverter for DateTime instances which encodes the timestamp as a Iso8601 string.
DefaultIterableConverter
DefaultListConverter
DefaultMapConverter
DefaultNativeCodec
DefaultSetConverter
DefaultStructureConverter<T>
DelegateQualifiedTypeTree<T, B>
DogBool
DogConverter<T>
DogDouble
DogEngine
Registry and interface for DogConverters, DogStructures and Copyables.
DogGraphValue
Graph node of the serialized DOG graph.
DogInt
DogJsonSerializer
DogList
DogMap
DogNative
DogNativeCodec
DogNull
DogSchema
DogSerializer
DogString
DogStructure<T>
Defines the structure of class T and provides methods for instance creation and data lookups. Also contains runtime instances of RetainedAnnotations used in T.
DogStructureConverterImpl<T>
DogStructureField
DogStructureProxy
Method proxy provider for DogStructures. A structure proxy must provided instantiation/"activation" for the object and property accessor methods for all fields defined by the structure. A get-all method for faster field value retrieval must also be provided.
DogVisitor<T>
DurationConverter
DogConverter for Duration instances which encode a duration as a Iso8601 string.
FieldValidator
Property level validator for annotations of DogStructureFields.
GeneratedEnumDogConverter<T extends Enum>
GraphSerializerMode<T>
ItemAssociatedTypeToken<SOURCE, ITEM>
Double type capture token for associated item types. Mainly useful for serialization or type mapping.
IterableTreeBaseConverterFactory
IterableTreeNativeOperation
LinkSerializer
ListTreeBaseConverter
ListTreeBaseConverterFactory
MapTreeBaseConverter
MapTreeBaseConverterFactory
MapTreeBaseNativeOperation
MemoryDogStructureProxy
Simple class-less implementation of DogStructureProxy, primarily for tests.
NativeRetentionConverter<T>
NativeSerializerMode<T>
NullExclusionVisitor
ObjectFactoryStructureProxy<T>
DogStructureProxy implementation for creating universal object factories.
OperationMode<T>
OperationModeCacheEntry<T extends OperationMode>
OperationModeRegistry
Optional<T>
Port of Java's Optional (https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html)
OptionalTreeBaseConverter
OptionalTreeBaseConverterFactory
OptionalTreeBaseNativeOperation
PolymorphicConverter
Polymorphic converter for simple polymorphic datastructures. Currently only supports a maximum depth of 1.
PropertyName
Overrides the name that will be used by the GeneratedDogConverter for this specific property. By default, the field name will be used.
PropertySerializer
Overrides the serializer that will be used by the GeneratedDogConverter for this specific property. By default, the field will be serialized using the convert associated with its type.
QualifiedTerminal<T>
QualifiedTypeTree<T, B>
QualifiedTypeTreeN<T, B>
RegistrationHook
RetainedAnnotation
Marker annotation to make an annotation accessible at runtime using RetainedAnnotationHolder implementations.
RetainedAnnotationContainer
Standard implementation of const RetainedAnnotationHolder.
RetainedAnnotationHolder
Abstract container of RetainedAnnotations.
Serializable
SetTreeBaseConverter
SetTreeBaseConverterFactory
StringKeyedMapVisitor
StructureGraphSerialization<T>
StructureHarbinger<T>
StructureMetadata
StructureNativeSerialization<T>
StructureNode
StructureOperationModeFactory<MODE_TYPE extends OperationMode>
StructureValidation<T>
TokenTypeTrees
TreeBaseConverterFactory
TypeCapture<T>
Abstract base class for using a generic type capture.
TypeContainer0
TypeContainer1<A>
TypeContainer2<A, B>
TypeContainer3<A, B, C>
TypeContainer4<A, B, C, D>
TypeContainer5<A, B, C, D, E>
TypeContainer6<A, B, C, D, E, F>
TypeContainer7<A, B, C, D, E, F, G>
TypeContainers
TypeToken<T>
Default implementation for a TypeCapture of type T.
TypeTree<BASE>
TypeTree0<T>
TypeTree1<BASE, ITEM>
TypeTree2<BASE, ITEM0, ITEM1>
TypeTree3<BASE, ITEM0, ITEM1, ITEM2>
TypeTreeN<BASE>
Uint8ListConverter
DogConverter for Uint8List instances which encodes the binary data as a base64 string using base64Encode.
UriConverter
DogConverter for Uri instances which encodes the uri into a string.
ValidationMode<T>

Enums

IterableKind
Common iterable kinds which are compatible with dogs.
StructureConformity

Mixins

Dataclass<T>
IterableTreeBaseConverterMixin
OperationMapMixin<T>
TypeCaptureMixin<T>
Mixin for adding the TypeCapture interface to classes.

Constants

beanIgnore → const _BeanIgnore
deepEquality → const DeepCollectionEquality
Static DeepCollectionEquality instance used by the dog library.
linkSerializer → const LinkSerializer
Manually marks a custom dog converter implementation for linking. The dogs_generator will then include an instance of this converter.
polymorphic → const _Polymorphic
Marks a property as polymorphic, meaning its value's type can vary.
serializable → const Serializable
Marks a class or enum as serializable. The dogs_generator will then generate a DefaultStructureConverter which also implements Copyable and Validatable. The generator will also generate an implementation of Builder for the given type with the suffix 'Builder' appended to the original class name. Annotated types must match following conditions:

Properties

dogs DogEngine
Static instance of DogEngine that will be initialised by invoking the generated initialiseDogs() method.
no setter
kCacheDataclassHashCodes bool
Changes if Dataclasses lazily cache their deep hashCode. Significantly speeds up high-volume comparisons between similar Dataclasses but increases memory overhead.
getter/setter pair
kWarnPolymorphicTerminalNode bool
Changes if polymorphic terminal nodes inferred for type trees print warnings on creation in debug mode.
getter/setter pair
structureOperationFactories Map<Type, StructureOperationModeFactory<OperationMode>>
getter/setter pair

Functions

adjustIterable<T>(dynamic value, IterableKind kind) → dynamic
Converts a value to the given IterableKind. If the value is a Iterable implementation, it will converted to the desired IterableKind. Trying to convert singular values to a iterable will result in an exception.
compareTypeHashcodes(Type a, Type b) int
fromJson<T>(String json) → T
Decodes this json to an T instance, using the DogConverter associated with T.
fromNative<T>(dynamic native) → T
Converts an a native value to an T instance, using the DogConverter associated with T. Input must follow the default DogNativeCodec implementation, DefaultNativeCodec.
project<T>(Object value, [Object? a, Object? b, Object? c]) → T
Creates a projection resulting in an instance of T. All input fields are dynamic and contain following:
registerStructureOperationFactory(StructureOperationModeFactory<OperationMode> factory) → void
toJson<T>(T value) String
Encodes this value to json, using the DogConverter associated with T.
toNative<T>(T value) → dynamic
Converts an T instance to a native value, using the DogConverter associated with T. Output follows the default DogNativeCodec implementation, DefaultNativeCodec.

Typedefs

EnumFromString<T> = T? Function(String)
EnumToString<T> = String Function(T?)
ProjectionTransformer = Map<String, dynamic> Function(Map<String, dynamic> data)

Exceptions / Errors

ValidationException